.net IBM.XMS中的重新连接设置

.net IBM.XMS中的重新连接设置,.net,ibm-mq,xms,.net,Ibm Mq,Xms,我们在IBM.XMS中是否具有与Tibco中相同的功能,可以进行重新连接尝试计数,重新连接尝试延迟,重新连接尝试超时设置 我将在.NET应用程序中使用IBM.XMS向IBM MQ发送/接收消息。如果出于某种原因IBM MQ宕机,我相信这些设置将允许.NET应用程序尝试重新连接,从而避免应用程序中的任何崩溃 更新 我在网上得到一些信息。使用此选项,我使用以下选项: oConFactory.SetIntProperty(XMSC.WMQ_CLIENT_RECONNECT_OPTIONS, XMSC.

我们在IBM.XMS中是否具有与Tibco中相同的功能,可以进行
重新连接尝试计数
重新连接尝试延迟
重新连接尝试超时
设置

我将在.NET应用程序中使用IBM.XMS向IBM MQ发送/接收消息。如果出于某种原因IBM MQ宕机,我相信这些设置将允许.NET应用程序尝试重新连接,从而避免应用程序中的任何崩溃

更新

我在网上得到一些信息。使用此选项,我使用以下选项:

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));

但这是行不通的。我一停止队列管理器,代码就被破坏了。有什么建议吗?

有!但请使用MQ客户端和QMgr的现代版本。功能性和稳定性大大提高,包括使用客户端重新连接功能的能力。请参阅:

相关和重要的主题包括:

  • -本机连接到MQ的不同方式
  • -描述MQ对.Net托管连接和非托管连接的使用及其差异
前面的链接来自v7.5文档。如果您需要v8.0文档(强烈建议使用截至本文撰写之时最新的v8.0 QMgr和客户端),请转到

IBM已经发布了一个功能齐全、不过期的产品,名为“如果您需要在个人工作站上使用QMgr进行测试”

这是客户端库附带的,但如果您只需要客户端libs,只需下载独立客户端即可。转到并查找类似MC[vr]的名称。之后命名应该是直观的。是V8.0客户端,是v7.5客户端,等等


如果您需要下载WMQ Explorer,请按以下方式选择。在这种情况下,我强烈建议将其解压缩到Explorer Dropins文件夹。

您没有提到如何停止队列管理器。如果使用
endmqm
命令停止队列管理器,则不会发生重新连接。您需要使用
endmqm-r
停止队列管理器。
-r
选项通知客户端应用程序重新连接。如果您正在使用
MQ资源管理器
,则在停止队列管理器时,选择
停止队列管理器
面板上的
选项“指示可重新连接的客户端重新连接”

感谢Rob,您提供的链接与.NET的IBM MQ类相关。我正在使用IBM.XMS(用于.NET的消息服务客户端)。我们如何在IBM.XMS中实现同样的功能?我在上获得了一些信息,但它不起作用。是否有一些与使用IBM.XMS重新连接相关的工作示例?什么是“它不工作”?在这种情况下,“它”是什么?链接页面指出,可以在程序、托管对象、CCDT和client.ini文件中进行重新连接设置,如果设置了这些设置的倍数,则有一个优先顺序。要说它不起作用,需要知道每个地方的设置。(我来自密苏里州-在我相信你之前,你必须向我展示它是否设置在给定的位置,所以我总是想看到所有的位置。)Rob,我指的是我在问题后面添加的代码片段。当我从MQ Explorer停止队列管理器时,它不工作。我听从了沙石的建议,它正在发挥作用。但我也需要它在其他方面发挥作用(见我对沙希帖子的评论)。有办法吗?如果QMgr被管理员关闭,MQ会认为这是故意的,并要求管理员故意指定-r。但是,如果它崩溃,客户端将重新连接。我只能假设通过Windows对话框跳转服务被解释为故意关闭,不会触发该行为。您是否尝试过从进程表中删除QMgr?请看。我只是从管理工具>服务中停止IBM MQ服务。所以我相信,只有当通过指定-r选项关闭QMgr时,客户端应用程序才会尝试重新连接。这是唯一的办法?根据沙希的回答,你是如何停止QMgr的?您是否尝试过使用
状态(非活动)
停止通道(假设它是客户端)而不是停止QMgr?我使用的是MQ Explorer。我会试试你的建议。当出现网络故障时,或者由于某种原因MQ服务正在重新启动时,情况是否会相同?Shashi,我尝试了您的建议(选择了“指示可重新连接的客户端重新连接”),结果成功了。但是,当我从服务重新启动MQ服务时,应用程序立即崩溃。崩溃是什么意思?理想情况下,应用程序应该在重新连接超时期间尝试重新连接,然后崩溃(生成未处理的异常),但它会立即崩溃,我停止服务的那一刻。你得到了什么未处理的异常?您是否在异常中获得MQRC 2009?停止MQ服务将停止队列管理器,这将被视为正常关闭。如果使用-r或突然终止停止队列管理器,则会发生重新连接。