【发布时间】:2020-06-04 21:33:14
【问题描述】:
我在 Windows Server 2016(64 位)上安装了 ActiveMQ 5.15 版代理(名为 31969broker)。它已经工作了一年。连接到此服务器的 8 台对等计算机上有 8 个代理。当其中一台对等机器出现故障时,ActiveMQ 代理在此服务器上失败。每个对等点都有一个到这台机器的静态双工连接。它(31969broker)有 8 个类似的连接,每个节点一个。传输连接器是开放式的。
我进行了一项实验,其中对等方 MUSVRSLDSP1 处于离线状态并且流量非常少。我重新启动了 ActiveMQ 服务。 39 分钟后(以及下面的许多警告),它引发了异常。 'wrapper.log' 有:
INFO | jvm 1 | 2020/05/20 15:22:14 | WARN | Could not start network bridge between: vm://31969broker and: tcp://MUSVRSLDSP1:61616 due to: MUSVRSLDSP1
INFO | jvm 1 | 2020/05/20 15:22:22 | INFO | Establishing network connection from vm://31969broker to tcp://MUSVRSLDSP1:61616
INFO | jvm 1 | 2020/05/20 15:22:22 | Exception in thread "ActiveMQ BrokerService[31969broker] Task-6041" java.lang.OutOfMemoryError: unable to create new native thread
INFO | jvm 1 | 2020/05/20 15:22:22 | at java.lang.Thread.start0(Native Method)
INFO | jvm 1 | 2020/05/20 15:22:22 | at java.lang.Thread.start(Unknown Source)
INFO | jvm 1 | 2020/05/20 15:22:22 | at org.apache.activemq.thread.DedicatedTaskRunner.<init>(DedicatedTaskRunner.java:51)
INFO | jvm 1 | 2020/05/20 15:22:22 | at org.apache.activemq.thread.TaskRunnerFactory.createTaskRunner(TaskRunnerFactory.java:159)
INFO | jvm 1 | 2020/05/20 15:22:22 | at org.apache.activemq.transport.vm.VMTransport.getTaskRunner(VMTransport.java:328)
INFO | jvm 1 | 2020/05/20 15:22:22 | at org.apache.activemq.transport.vm.VMTransport.wakeup(VMTransport.java:249)
INFO | jvm 1 | 2020/05/20 15:22:22 | at org.apache.activemq.transport.vm.VMTransport.start(VMTransport.java:192)
INFO | jvm 1 | 2020/05/20 15:22:22 | at org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:64)
INFO | jvm 1 | 2020/05/20 15:22:22 | at org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:64)
INFO | jvm 1 | 2020/05/20 15:22:22 | at org.apache.activemq.broker.TransportConnection.start(TransportConnection.java:1066)
INFO | jvm 1 | 2020/05/20 15:22:22 | at org.apache.activemq.broker.TransportConnector$1$1.run(TransportConnector.java:218)
INFO | jvm 1 | 2020/05/20 15:22:22 | at java.lang.Thread.run(Unknown Source)
要使错误消失,我所要做的就是删除与违规对等方 (MUSVRSLDSP1) 的网络连接。但是我不能让一台机器的故障摧毁整个消息传递系统,而这正是发生的事情。如果内存不足错误是罪魁祸首,我该如何摆脱它?
任何帮助将不胜感激!
【问题讨论】:
-
OutOfMemoryError: unable to create new native thread消息“看起来正常”的方式是什么?我会说这是您问题的根本原因。 -
“正常”代理日志不应包含 OutOfMemoryError
-
我的经纪人与其他大约 10 人建立了联系。我删除了大部分,问题就消失了。我把它们都放回去了,但有两个,事情仍然很好。其中一个可疑的有记忆和其他问题(另一个被断电)所以我想我有我的答案。但是对等点的失败不应导致我的代理崩溃。
-
我已经编辑了问题并添加了详细信息。我仍然迫切需要帮助!
标签: activemq