我有一个现有的XMS .Net客户端应用程序,我正在尝试添加自动客户端重新连接功能。这是为了经常修复队列管理器中的应用程序断开问题,并要求应用程序服务回收以恢复与队列管理器的连接。 客户端版本是 版本:7.0.1.1 XMS客户端产品版本是 1.2.7.0
但我发现XMS .Net客户端版本1.2.7不支持属性XMSC_WMQ_CLIENT_RECONNECT_OPTIONS。 得到错误 “
IBM.XMS.XMSC'不包含的定义 'WMQ_CLIENT_RECONNECT_OPTIONS'
为了克服这一点,我相信XMS客户端必须至少是v2.1.0。 为了使用XMS客户端版本2.1.0,我必须将MQ客户端本身更新为v7.1,但我仍将与MQ v7.0.1队列管理器连接。从较高版本的客户端连接到较低版本的队列管理器是否有任何问题,或者我需要将队列管理器升级到版本7.1以使用XMS客户端中的自动客户端重新连接功能?
这个问题还有其他更好的解决方案吗?
请查找代码更改
public class MQConnectionFactory
{
private static IConnectionFactory cf = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ).CreateConnectionFactory();
public string WMQ_HOST_NAME { set { cf.SetStringProperty(XMSC.WMQ_HOST_NAME, value); } }
public int WMQ_PORT { set { cf.SetIntProperty(XMSC.WMQ_PORT, value); } }
public string WMQ_QUEUE_MANAGER { set { cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, value); } }
public string WMQ_CHANNEL { set { cf.SetStringProperty(XMSC.WMQ_CHANNEL, value); } }
//Adding Client Reconnecting Parameters
public int WMQ_CLIENT_RECONNECT { set { cf.SetIntProperty(XMSC.WMQ_CLIENT_RECONNECT_OPTIONS, XMSC.WMQ_CLIENT_RECONNECT);} }
public int WMQ_CLIENT_RECONNECT_TIMEOUT { set { cf.SetIntProperty(XMSC.WMQ_CLIENT_RECONNECT_TIMEOUT, 150);} }
public int WMQ_CONNECTION_MODE
{
set
{
if (value < 0)
value = XMSC.WMQ_CM_CLIENT_UNMANAGED;
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, value);
//set to non RFH header
//cf.SetIntProperty(XMSC.WMQ_TARGET_CLIENT, XMSC.WMQ_TARGET_DEST_MQ);
}
}
public IConnection CreateConnection()
{
//try
//{
return cf.CreateConnection();
//}
//catch (Exception e)
//{
// Console.WriteLine(e);
// return null;
//}
}
}
答案 0 :(得分:1)
是的,您需要将MQ客户端升级到v7.1。此级别的MQ客户端将与MQ v701队列管理器一起使用。