我们在IBM.XMS中是否具有Re-connection Attempt Count
,Re-connection Attempt Delay
,Re-connection Attempt Timeout
设置的功能,就像我们在Tibco中一样?
我将在.NET应用程序中使用IBM.XMS向/从IBM MQ发送/接收消息。如果由于某种原因IBM MQ出现故障,我相信这些设置将允许.NET应用程序尝试重新连接,从而避免应用程序中的任何崩溃。
更新
我在http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/xms_automatic_client_reconnection.htm收到了一些信息。使用这个我使用以下:
oConFactory.SetIntProperty(XMSC.WMQ_CLIENT_RECONNECT_OPTIONS, XMSC.WMQ_CLIENT_RECONNECT_Q_MGR);
oConFactory.SetStringProperty(XMSC.WMQ_CONNECTION_NAME_LIST, String.Format("{0}({1})", con.Host, con.Port));
oConFactory.SetIntProperty(XMSC.WMQ_CLIENT_RECONNECT_TIMEOUT, ((con.ReconnectTimeout.HasValue && con.ReconnectTimeout.Value != 0) ? con.ReconnectTimeout.Value : XMSC.WMQ_CLIENT_RECONNECT_TIMEOUT_DEFAULT));
但这不起作用。代码打破了我停止队列管理器的那一刻。有什么建议吗?
答案 0 :(得分:2)
是的!请使用现代版本的MQ客户端和QMgr。功能和稳定性得到极大改善,包括使用客户端重新连接功能的能力。请参阅:
Automatic client reconnection in .NET
相关且重要的主题包括:
前面的链接来自v7.5文档。如果您需要v8.0文档(强烈建议使用v8.0 QMgr和客户端,这是撰写本文时的最新内容),请转到here。
如果您需要在个人工作站上进行QMgr测试,IBM已发布了一个名为WebSphere MQ Advanced for Developers的全功能非过期产品。
随客户端库提供,但如果您只需要客户端库,只需下载独立客户端即可。转到SupportPacs landing page并查找MC [vr]等名称。之后命名应该是直观的。 SupportPac MQC8是V8.0客户端,MQC75是v7.5客户端等。
如果您需要WMQ Explorer下载,请选择SupportPac MS0T。在这种情况下,我强烈建议您获取MS0P并将其解压缩到Explorer Dropins文件夹。
答案 1 :(得分:2)
您没有提到如何停止队列管理器。如果使用endmqm <qm>
命令停止队列管理器,则不会重新连接。您需要使用endmqm -r <qm>
停止队列管理器。 -r
选项通知客户端应用程序重新连接。如果您使用MQ Explorer
,请在停止队列管理器时在"Instruct reconnectable clients to reconnect"
面板上选择Stop Queue Manager
选项。