0

我正在使用 XMS .NET 客户端 7.5 版本连接到 WebSphere 的多实例队列管理器。

并异步接收消息并订阅异常侦听器以接收 WMQ 连接上发生的任何异常。

为了测试队列管理器故障转移场景,我们终止了现有连接并关闭了活动队列管理器实例并启动了备用实例。在此操作过程中,连接的 XMS 客户端会调用附加的异常侦听器。Exception Listener方法里面的逻辑,重启连接。然后我们很好,我们再次开始在队列中接收消息。

但是,当多实例队列管理器中存在的所有 2 个实例(在我们的案例中为 2)一起重新启动时,我们没有看到调用了 Exception Listener 方法。因此,尽管队列中存在消息,但我们没有任何消息。

(后来我们关闭客户端应用程序并重新启动,然后我们开始接收消息。)

有了这个我的问题是:

  1. 这是我描述的场景中发生的例外情况吗?

  2. 如果是,即使在这种情况下,如何才能调用异常侦听器方法。我需要在 XMSC 类的连接工厂上设置任何设置吗?

  3. 还有我的最后一个问题。特定的 .NET XMS 客户端和一般的 JMS 客户端如何知道连接仍然有效?

4

1 回答 1

1

默认情况下,XMS .NET 将尝试重新连接 30 分钟。如果在 30 分钟内没有建立连接,MQRC_RECONNECT_FAILED则会抛出异常 with 并且不再进行尝试。请看这里。在这种情况下,应用程序需要再次发出连接调用。

关于您的问题 #3:最好拨打电话,例如发送或接收。如果没有与队列管理器的连接,则会抛出异常。应用程序处理该异常并再次发出连接调用。

于 2016-01-22T16:10:59.180 回答