2012-05-02 93 views
0

我目前正在Quartz調度程序中運行服務器,然後定期重複調度。
這個進程在我的開發服務器上運行良好,但是當部署到生產環境時,它很好,但有時候發生異常時它會停止工作。我不知道是否因爲這個調度過程發生了異常,或者有其他的東西。
在計劃開始前2-3分鐘時間內總是發生異常。
石英調度程序在異常後無法正常工作[java.lang.IllegalStateException:HttpSession無效]

這是堆棧跟蹤。

java.lang.IllegalStateException: HttpSession is invalid 
    at weblogic.servlet.internal.session.SessionData.getInternalAttribute(SessionData.java:690) 
    at weblogic.servlet.internal.session.SessionData.getInternalAttribute(SessionData.java:685) 
    at weblogic.servlet.internal.session.JDBCSessionData.dbRefresh(JDBCSessionData.java:428) 
    at weblogic.servlet.internal.session.JDBCSessionData.getFromDB(JDBCSessionData.java:102) 
    at weblogic.servlet.internal.session.JDBCSessionContext.getSessionDataFromDB(JDBCSessionContext.java:240) 
    at weblogic.servlet.internal.session.JDBCSessionContext.getSessionInternal(JDBCSessionContext.java:220) 
    at weblogic.servlet.internal.session.SessionContext$SessionInvalidator.cleanupExpiredSessions(SessionContext.java:938) 
    at weblogic.servlet.internal.session.SessionContext$SessionInvalidator$1.run(SessionContext.java:894) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) 
    at weblogic.servlet.internal.session.SessionContext$SessionInvalidator.timerExpired(SessionContext.java:888) 
    at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273) 
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528) 
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) 
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) 

無論如何,我在開發和生產上都使用了WebLogic應用服務器。

回答

1

這可能是因爲當您嘗試從中讀取某些內容時,您的會話變得無效。您可以在此處執行的一件事是在配置文件中檢查會話超時條目。大多數情況下,您可能需要增加會話時間超值。