0

我目前正在我的 Web 应用程序中使用 Quartz 调度程序来在运行服务器后调度任务,然后定期重复它。
该过程在我的开发服务器中运行良好,但是当部署到生产环境时,它很好,但有时发生一些异常时它会停止工作。不知道异常是因为这个调度过程还是有别的原因。
异常总是发生在应该开始调度的 2-3 分钟之前。

这是堆栈跟踪。

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 应用程序服务器。

4

1 回答 1

1

这可能会发生,因为当您尝试从中读取某些内容时,您的会话变得无效。您可以在这里做的一件事是检查配置文件中的会话超时条目。很可能您需要增加会话超时值。

于 2012-05-02T05:40:15.413 回答