在我的Vb.net应用程序中,我正在使用IBM MQ v7.5托管客户端连接来连接到队列管理器。到目前为止,我已在.Config文件中提供了频道名称和主机名,并调用以下内容:
MQQueueManager(Qmanagername, Channel, Host)
但是现在我有一个带有频道详细信息的AMQCLCHL.TAB文件。如何让我的Vb.net应用程序使用AMQCLCHL.TAB文件中的通道名称和主机名。
答案 0 :(得分:1)
您需要让应用程序知道通道表文件的位置。 IBM Knowledge center显示可以使用托管客户端连接类型以三种方式完成此操作:
然后,您可以更改您的呼叫以删除频道和主机名,它将使用上述三种方式之一拾取您指定的频道表。
New MQQueueManager(Qmanagername)
更新以包含评论中的其他信息
如果您的应用程序在与队列管理器相同的服务器上运行,则默认情况下,如果您不强制它使用客户端模式,它将使用服务器绑定以非托管模式连接。这在Knowledge Center。
中有详细描述您可以通过设置环境变量NMQ_MQ_LIB来强制它进入客户端模式。
对于非托管MQ客户端模式,请使用NMQ_MQ_LIB=mqic.dll
对于托管客户端模式,请使用NMQ_MQ_LIB=managed
MQC.TRANSPORT_PROPERTY
哈希表属性也可用于强制它使用客户端模式。
非托管MQ客户端模式示例:
Hashtable properties = new Hashtable();
properties.Add(MQC.TRANSPORT_PROPERTY, "MQC.TRANSPORT_MQSERIES_CLIENT");
return new MQQueueManager(queueManagerName, properties);
托管MQ客户端模式示例:
Hashtable properties = new Hashtable();
properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED");
return new MQQueueManager(queueManagerName, properties);