使XMS .Net代码使用自动客户端重新连接功能

时间:2013-02-12 17:26:27

标签: .net client ibm-mq

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

    }
}

1 个答案:

答案 0 :(得分:1)

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