ActiveMQ Artemis 崩溃重新连接

问题描述 投票:0回答:1

我的 K8s pod 中的 ActiveMQ Artemis 2.32.0 由于某种原因不断崩溃。 崩溃并重新启动 Pod 后,我现有的客户端出现此异常:

org.apache.qpid.jms.exceptions.JmsConnectionFailedException: The JMS connection has failed: Transport connection remotely closed.`
org.apache.qpid.jms.provider.exceptions.ProviderFailedException: Transport connection remotely closed.

我正在使用此代码创建连接:

ConnectionFactory connectionFactory = new JmsConnectionFactory(activeMqAmpq);
Connection connection = connectionFactory.createConnection();

我没有看到任何方法来检查连接是否仍然处于活动状态或活动状态。我已经阅读过有关自动重新连接的内容,显然在崩溃后这是不可能的,因此我想知道连接是否仍然处于活动状态,如果不是,那么我可以在创建会话和发送消息之前重新连接。

jms activemq-artemis
1个回答
0
投票

JMS 不提供任何方法来检查连接是否处于活动状态。您应该简单地使用连接,如果抛出任何异常,那么您应该相应地处理它们(例如,在现有的

close()
上调用
Connection
并使用
ConnectionFactory
创建另一个)。

如果您碰巧使用

MessageListener
并因此等待回调(即不主动调用 JMS 方法),那么您应该使用
ExceptionListener
注册
Connection.setExceptionListener()

© www.soinside.com 2019 - 2024. All rights reserved.