【问题标题】:ActiveMQ fails after 40 minutesActiveMQ 在 40 分钟后失败
【发布时间】: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


【解决方案1】:

这里的解决方案是在 wrapper.conf 文件中将以下内容设置为 false:

wrapper.java.additional.8=-Dorg.apache.activemq.UseDedicatedTaskRunner=false

我希望这可以帮助其他人。

【讨论】:

    猜你喜欢
    • 2018-03-12
    • 2018-09-27
    • 1970-01-01
    • 2015-04-15
    • 2018-01-19
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多