【问题标题】:How can I recognize ActiveMQ disconnect using NMS and C#如何使用 NMS 和 C# 识别 ActiveMQ 断开连接
【发布时间】:2011-01-03 02:12:39
【问题描述】:

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

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

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

【问题讨论】:

标签: activemq


【解决方案1】:

好吧,这个问题已经问了很久了,但现在你有几个可用的事件:

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

其中 m_connection 是一个 IConnection 对象。

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

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

【讨论】:

  • 如果我愿意,我将如何设置非故障转移模式?抱歉,使用 ActiveMQ 似乎很难发现一切。
猜你喜欢
  • 2011-01-05
  • 2020-04-23
  • 1970-01-01
  • 2020-06-09
  • 2016-08-21
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多