dou*_*lep 21 weblogic java-ee weblogic-10.x
默认情况下,WebLogic在15分钟(600秒)后杀死卡住的线程,这由StuckThreadMaxTime参数控制.但是,我找不到关于如何定义"卡住"的更多细节.特别:
wait()的方法?别的什么?我的用例是通过权限系统下载大文件.由于用户需要进行身份验证并具有查看文件的权限,因此我无法(或至少不知道如何)将其留给简单的HTTP服务器,例如Apache.而且由于文件可能很大,下载(至少在理论上)可能需要超过15分钟.
Jos*_*seK 22
Weblogic的确实不杀后的阻塞线程StuckThreadMaxTime.它不能这样做,消息只是一个状态信息,所以你(即管理员)知道线程已经超过10分钟(600秒= 10分钟,而不是15分钟)
这是一个可配置的值.
当线程开始处理服务器内的请求时,计时器启动.线程不会被杀死,但实际上会继续处理,直到操作结束.所以在你的情况下,你不需要担心线程被杀死,它只是告诉你所花费的时间 - 你在这个用例中知道.
它适用于所有线程AFAIK - 任何生成的线程也将在相同的规则下运行.
恕我直言,Weblogic(或任何应用程序服务器)不是存储和提供大文件的地方.这理想地适用于Web服务器层 - 我们使用可以运行文件下载servlet的SunOne.在您的情况下,您需要Tomcat和您的Apache来优化它.
小智 7
WLS10 WorkManager文档可能会引起一些真正的头痛.请参阅http://blogs.oracle.com/jamesbayer/2010/01/work_manager_leash_for_slow_js.html,了解如何在weblogic.xml中为webapp定义WorkManager并分配特定servlet以使用它的分步示例.
添加到该示例,您可以添加<ignore-stuck-threads>true</ignore-stuck-threads>到<work-manager>定义中,该定义应该防止为该WorkManager工作的线程针对失败的服务器状态进行计数.
| 归档时间: |
|
| 查看次数: |
32435 次 |
| 最近记录: |