我有一个使用ActiveMQ和NMS互相交谈的C#发布者和订阅者。一切正常,除非我无法知道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/

10-15 16:02