繁体   English   中英

异常后的Websphere MQ isConnected变量

[英]Websphere MQ isConnected variable after exception

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

  • 但是,如果Put / Get中发生异常(2009-连接中断),会发生什么情况? 将isConnected自动设置为false吗?
  • 连接是否自动断开连接,还是必须在错误处理中调用Disconnect()?

谢谢!

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM