线程 WebContainer 已保持活动状态 N 毫秒,此线程可能已挂起

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程 WebContainer 已保持活动状态 N 毫秒,此线程可能已挂起相关的知识,希望对你有一定的参考价值。

线程 WebContainer 已保持活动状态 N 毫秒,此线程可能已挂起


最近 Websphere 服务报错:

[16-3-3 13:58:13:949 CST] 00000046 ThreadMonitor W   WSVR0605W: 线程“WebContainer : 28”(0000005e)已保持活动状态 772374 毫秒,此线程可能已挂起。在服务器中共有 18 个线程可能处于挂起状态。


线程挂起的的原因还是很多的,大概以下几点,可慢慢尝试排除:

1、程序出现死循环,这个检查一下cpu使用率,要是Cpu使用率到达100%,就有可能这个原因;

2、程序所用之sql问题,长时间无返回导致线程挂起,检查一下数据库服务器是否有这样的session;

3、HeapSize设置问题,太小会导致垃圾回收频繁,导致反应过慢,这个也常常导致Cpu使用率极高,最后搞到java core dump了;调整的话Max HeapSize可以调到1G看看,前提是要看有多少内存了,如果只有2g你就不要乱来了。

4、有些人认为和线程池大小有关,看你的Log如果只有2个线程挂起就导致系统无法连接的话,可以尝试把最大线程提高点看看了,可以到 “应用程序服务器-》server_name-》线程池-》WebContainer ”去调整

5、如果生成了dump文件的话,就可以分析文件,更准确一些;


不过基本上来讲,调整参数可以减缓挂掉的频率,要彻底解决应该从应用程序着手


线程挂起的可能有很多,先用kill -3 杀一个java dump下来看看, 查找里面的 WebContainer : 28 在干什么,为什么会被挂起这么长时间,然后对具体的问题进行诊断。


以上是关于线程 WebContainer 已保持活动状态 N 毫秒,此线程可能已挂起的主要内容,如果未能解决你的问题,请参考以下文章

防止线程不必要的退出并使池保持活动状态

RestSharp:底层连接已关闭:服务器关闭了预期保持活动状态的连接

当活动崩溃时,进程保持活动状态,我无法杀死它

对“XXX::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们

类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们的问题的解决方法

对“xxx”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。 错误解决一例。(代码片段