我使用C#控制台应用程序来放置和读取MQ的消息。当应用程序启动时,它与MQ连接一次,然后应始终保持该连接。该程序每30秒运行一次,检查新消息是否在队列或数据库中(将它们放入队列中),并检查isConnected变量是否为true。
谢谢!
为了回答您的确切问题,对于使用MQQueue进行放置/获取的基本.net应用程序(非XMS),如果您从底层API调用中获得了指示连接问题的CERTAIN错误返回码,则MQ将尝试使用MQBACK和MQDISC您将导致连接句柄失效(IsConnected将返回false)并引发异常。但是,如果在这些返回代码之外发生异常,则不会尝试对连接执行任何操作。
基本上,您不应该编写依赖于此行为的应用程序,最简单的答案是,如果遇到与连接或队列管理器的质量有关的异常,则始终断开连接。例如,没有可用消息等类型异常并不意味着您需要断开连接,但显然断开连接确实需要断开连接。在已经断开的连接上调用断开连接没有任何危害。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句