1

我有一个现有的 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;
        //}

    }
}
4

1 回答 1

1

是的,您需要将 MQ 客户端升级到 v7.1。此级别的 MQ 客户端将与 MQ v701 队列管理器一起使用。

于 2013-02-14T17:24:25.430 回答