为了账号安全,请及时绑定邮箱和手机立即绑定

Wildfly 10.1.0 Final Remoting 端点任务线程不断增长

Wildfly 10.1.0 Final Remoting 端点任务线程不断增长

天涯尽头无女友 2021-08-19 21:31:11
我们使用的是 Wildfly 10.1.0 Final。我们遇到了由于线程不断增长导致的 OutOfMemoryError。在检查了线程转储之后。我们发现有数千个远程处理“端点”任务-N线程。什么是远程处理“端点”任务 N线程?它们是由工作远程创建的吗?重启服务器后,发现一开始只有16个线程:远程处理“端点”任务 1 ~ 远程处理“端点”任务 16。服务器运行数天或数月后,可能会有成百上千的 Remoting 线程:下面列出了线程转储的片段。在这个线程转储中,有几个不同编号的“远程处理“端点”任务 11”。其他任务(例如任务 1 到任务 16)也是如此。所有这些线程除了等待什么都不做。我发现“远程处理”端点任务“线程是由“xnio”创建的。我发现 xnio 有一个问题与我们的场景非常相似:https://issues.jboss.org/browse/XNIO-285它说这个问题已在“xnio 3.6.0.Beta1”中修复。不幸的是,Wildfly 10.1.0 使用的是 xnio 3.4.0。当我尝试升级到 xnio 3.6.5 时,我得到了 org/wildfly/common/context/Contextual 的 java.lang.NoClassDefFoundError。升级包含类“org/wildfly/common/context/Contextual”的 wildfly-common-1.4.0.Final.jar 后,NoClassDefFoundError 仍然存在。有没有其他方法可以防止远程处理“端点”任务线程增长?
查看完整描述

2 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

我发现远程处理“端点”任务线程是由javax.management.remote.JMXConnector创建的。我们打开了一些 javax.management.remote.JMXConnector 来访问其他服务器中的 MBean。但没有关闭它们。关闭这些 JMXConnector 实例后,线程就消失了。

javax.management.remote.JMXConnector 使用 xnio 与 MBean 通信。它在打开时会创建一个 XnioWorker,而 XnioWorker 会创建Remoting “端点”任务线程。所以问题不是由EJB引起的。


查看完整回答
反对 回复 2021-08-19
  • 2 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信