我们目前在Java中有处理多个(有时是大)文件批处理作业。这些作业可能需要一些时间才能运行。我们直接在JVM中运行这些文件,使用继续在循环中运行的Java线程。(处理文件,然后等待一段时间)。
现在,我工作的公司希望在Weblogic应用服务器上运行这些作业。不是因为它更好,而是因为这是公司的标准平台。
我看到的一个潜在问题是,BEA weblogic监视所有线程,默认情况下,运行时间超过10分钟的线程是卡住的线程,这可能会导致服务器处于失败状态。
在BEA Weblogic中执行此操作的最佳实践是什么?
发布于 2009-04-02 10:29:40
BEA Weblogic仅监控特定时间内的请求线程。对于由请求处理代码生成的线程,则不会。我们在Weblogic中使用了Quartz (来自OpenSymphony)调度程序来调度过去需要3-4个小时才能完成的任务。
发布于 2009-07-09 16:16:05
Weblogic服务器提供了WorkManagers,它支持更长的线程运行时间,并针对长时间的工作进行了优化(一般来说,它们是一个围绕着好的旧ThreadPools的框架)。对于WorkManagers,您可以定义MaxThreadStuckTime,在此时间之后,线程将被视为卡住或可能被终止。
https://stackoverflow.com/questions/709169
复制相似问题