我在Tomcat上有长期工作。这是一种数据转换,可以将数据库更新为新版本,以防万一。在我们的开发服务器上,它花了7个小时才能运行,但没有问题。每隔60秒,它会向浏览器发送一个进度消息,让您知道它仍在运行并保持连接状态。
然后,我尝试在另一台服务器上运行它,并在120分钟后失败,并出现异常“getAttribute:会话已失效”。我重新启动它,并在120分钟后再次失败,并显示相同的消息。它具有在某些关键点重新启动的功能,因此我在“第2部分”中将其启动,然后又在120分钟后失效。
我得出的结论是,服务器中的某项设置了120分钟的时间限制-由于程序错误连续3次完全相同的经过时间而导致死亡,这实在是太巧合了,尤其是在第三次运行时被不同的数据。
我们开发服务器上的Tomcat 设置为30,并且在该服务器上运行了7个小时没有问题,因此无论施加什么限制,我都不会这么认为。
关于什么让我失望的任何线索?我猜那里的地方还有另一种超时,但是我不知道那是什么。
最佳答案
您能否仅将作业作为后台,并让它更新资源以允许您轮询状态,而不是一直保持连接状态?
您可以使用线程轻松地做到这一点。