activemq - 如何使用 NMS 和 C# 识别 ActiveMQ 断开连接

标签 activemq

我有一个 C# 发布者和订阅者,它们使用 ActiveMQ 和 NMS 相互交谈。一切正常,除了我无法知道 ActiveMQ 何时出现故障。这对消费者来说尤其不利。他们停止获取数据,但除了数据停止显示这一事实之外,不会引发任何错误或事件。

有没有办法使用 NMS(特别是 Apache.NMS.IConnection 或 Apache.NMS.ISession 对象)

我从 Spring 下载了我正在使用的实现,但我没有使用任何特定的 spring 实现,我使用的所有内容都在 Apache.NMS 和 Apache.NMS.ActiveMQ 命名空间中。

最佳答案

好吧,自从提出这个问题以来已经很多了,但是现在您有几个可用的事件:

m_connection.ConnectionInterruptedListener += new ConnectionInterruptedListener(OnConnectionInterruptedListener);
m_connection.ConnectionResumedListener += new ConnectionResumedListener(OnConnectionResumedListener);
m_connection.ExceptionListener += new ExceptionListener(OnExceptionListener);

其中 m_connection 是一个 IConnection 对象。

通过这 3 个事件,您将能够找到您的经纪人何时关闭(以及其他有用的信息,例如何时恢复连接或他何时遇到异常)

注意:如果您处于故障转移模式,这些异常将被故障转移传输层吞并并与它们一起自动处理。因此,您将不会收到任何这些事件。

关于activemq - 如何使用 NMS 和 C# 识别 ActiveMQ 断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2030657/

相关文章:

configuration - 是否可以使用不在默认位置之一的配置文件启动 activemq?

node.js - 使用消息选择器时使用 nodejs 订阅 ActiveMQ STOMP?

java - ActiveMQ 与 Spring Boot。消息持久化不起作用

java - 为 JMS 发布者/消费者设置 clientID 的目的是什么?

activemq - Camel 路由 "to"特定的 websocket 端点

java - Camel序列化消息内容列表

spring activemq jmsTemplate.setTimeToLive 需要超过指定毫秒数的时间来删除消息

redis - redis 或 activemq 等服务是否也具有高可用性?

connection - javax.jms.JMSException : Channel was inactive for too long: localhost/127. 0.0.1:7676

java - 在 Activemq 队列中搜索特定消息