异常后的 Websphere MQ isConnected 变量

Websphere MQ isConnected variable after exception

我使用 C# 控制台应用程序来放置和读取 MQ 的消息.. 当应用程序启动时,它会与 MQ 连接一次,然后应该始终保持连接。 该程序每 30 秒运行一次并检查新消息是否在队列或数据库中(将它们放入队列中)并检查 isConnected 变量是否为真。

谢谢!

为了回答您的确切问题,对于使用 MQQueue 的基本 .net 应用程序(非 XMS)put/get,如果您从底层 API 调用中得到某些错误的 return 代码这表示存在连接问题,MQ 将为您尝试 MQBACK 和 MQDISC,这将导致连接句柄无效(IsConnected 将 return false)并引发异常。但是,如果在这些 return 代码之外发生异常,则不会尝试对连接执行任何操作。

基本上,您不应该编写依赖于此行为的应用程序,因为最简单的答案是,如果您遇到与连接或队列管理器质量相关的异常,则始终断开连接。例如,无可用消息等类型的异常并不意味着您需要断开连接,但连接断开显然需要断开连接。在已经断开的连接上调用断开连接没有任何坏处。