【问题标题】:Wildfly 10 - ActiveMQ Artemis is getting shutdown?Wildfly 10 - ActiveMQ Artemis 正在关闭?
【发布时间】:2025-12-07 23:25:01
【问题描述】:

操作系统:Windows

应用服务器:Wildfly 10

Java 版本:8

我们的应用程序在与互联网连接隔离的远程环境中运行(完全离线)。它将持续运行,直到任何新补丁交付到该服务器。在这种情况下,我们经常面临 ActiveMQ Artemis 服务器(在 Wildfly 10 中)的问题,从应用程序代码无法访问它似乎正在关闭。但请注意,Undertow 服务器可以很好地访问应用程序功能。

观察到如果服务器连续运行超过 30 天,则问题正在发生。目前,为了解决该问题,我们已被指示定期重启应用程序。但要寻找真正的根本原因以及如何解决它。

例外:

javax.jms.JMSException: Failed to create session factory
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:727)
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createQueueConnection(ActiveMQConnectionFactory.java:284)
at 
Caused by: ActiveMQNotConnectedException[errorType=NOT_CONNECTED message=AMQ119007: Cannot connect to server(s). Tried with all available servers.]
at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:778)
at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:724)
... 71 more

【问题讨论】:

  • Wildfly 日志中是否有任何内容表明 Artemis 实例存在问题?你能确认网络连接没有问题吗?
  • 已验证日志,问题与网络连接无关。应用程序正在使用 wildfly inbuild ActiveMQ 服务,所以希望网络不是问题
  • 这对我来说似乎是一个环境问题,因为一切正常运行了 30 天,然后停止工作,而且您没有提供任何证据表明 Artemis 实例实际上已停止。
  • 你确定 artemis 经纪人已经启动了吗?检查 wildfly 启动日志以验证 artemis 代理是否已启动。
  • @AwanBiru 它正在启动并处理消息并突然弹出一些时间间隔问题

标签: wildfly wildfly-10 activemq-artemis


【解决方案1】:

如果可能,请尝试使用单独的 activeMQ 服务器。

这可能是一些内存泄漏问题,因为 Wildfly 内置可能有一些堆未回收。

确保的唯一方法是检查内存使用日志和/或使用更多/更少的内存启动 Wildfly,以查看您的 30 天是否随内存增加或减少。

【讨论】:

    【解决方案2】:

    信息不足,也许 DEBUG 级别的日志会显示更多信息。此错误是由 Artemis JMS 客户端实现 (createConnectionInternal) 引发的。对 AMQ 代理的调用失败可能是因为:-

    1. Artemis 代理未启动。验证服务器日志以确保代理正确启动

    2. 消息传递子系统和连接器配置问题。在standalone.xml 或 domain.xml 中验证 Artemis 子系统配置。最好与 jboss admin 合作,以确保所有消息传递子系统正确且正常工作。

    【讨论】: