我正在编写一个C#客户端,它使用amqmdnet.dll使用以下结构连接到IBM Websphere MQ Manager:
_myQueueManager = new MQQueueManager(queueManagerName, properties);
在属性Hashtable中,我正在设置主机名,频道和队列管理器。现在,如何在客户端应用程序中使用自动重新连接功能?我们有IBM MQ多实例队列管理器HA配置。
基本上,我有四个终点,如果我的客户连接失败,我必须退回吗?
答案 0 :(得分:5)
根据the docs:
您可以提供主机名和端口列表作为参数 构造函数MQQueueManager(String queueManagerName,Hashtable 使用CONNECTION_NAME_PROPERTY。
例如:
ConnectionName = "fred.mq.com(2344),nick.mq.com(3746),tom.mq.com(4288)"; Hashtable Properties-new Hashtable(); properties.Add(MQC.CONNECTION_NAME_PROPERTY,ConnectionName); MQQueueManager qmgr=new MQQueue Manager("qmgrname",properties);
尝试连接时,连接名称列表为 按顺序处理。如果连接尝试第一个主机名 和端口失败,然后连接到第二对属性是 尝试。客户端重复此过程,直到成功为止 建立连接或列表已用尽。如果列表用尽, 一个适当的原因代码和完成代码返回给 客户申请。
请务必遵循Automatic client reconnection in .NET中的建议,以确保针对托管/非托管模式正确指定选项。