项目已添加。键入字典:添加“主机名”键:c#

时间:2015-07-08 10:12:04

标签: c# ibm-mq

我正在尝试将消息推送到IBM MQ但是在添加HostName,channel和Port等属性时,我在没有停止的情况下继续调试时遇到错误

项目已添加。键入字典:添加“主机名”键:c#中的“主机名”。

我试图验证如下,

if (!MQEnvironment.properties.ContainsKey(strHost) && !MQEnvironment.properties.ContainsKey(intPort) && !MQEnvironment.properties.ContainsKey(strChannel))
                {

                    MQEnvironment.properties.Add("Hostname", strHost);
                    MQEnvironment.properties.Add("Port", intPort);
                    MQEnvironment.properties.Add("Channel", strChannel);
                    MQEnvironment.properties.Add(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES);
                }

上面的代码包含在我的MQ PutMessage方法中,我正在推送我的消息。

2 个答案:

答案 0 :(得分:2)

Yuk(并为将来的支持而头痛)。

  • 首先,MQEnvironment类是一个静态类,只能用于超级简单程序。 IBM MQ最佳实践是使用HashTable。

  • 其次,为什么不使用提供的MQ定义键名? (它将消除拼写错误)

  • 第三,您需要查看MQ知识中心以获取' TRANSPORT_PROPERTY'的正确MQ .NET值。请参阅here。 MQ .NET有4个有效值:

  

MQC.TRANSPORT_MQSERIES_BINDINGS - 作为服务器连接   MQC.TRANSPORT_MQSERIES_CLIENT - 作为非XA客户端连接   MQC.TRANSPORT_MQSERIES_XACLIENT - 作为XA客户端连接   MQC.TRANSPORT_MQSERIES_MANAGED - 作为非XA受管客户端连接

以下是编码的正确方法:

Hashtable qMgrProp = new Hashtable();
qMgrProp.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
qMgrProp.Add(MQC.HOST_NAME_PROPERTY, strHost);
qMgrProp.Add(MQC.PORT_PROPERTY, intPort);
qMgrProp.Add(MQC.CHANNEL_PROPERTY, strChannel);

MQQueueManager qMgr = new MQQueueManager(qMgrName, qMgrProp);

答案 1 :(得分:1)

看起来它已经ResultSet rs=stmt.executeQuery("select * from come2links.user_detailswhere uniquekeyfield='"+request.getParameter("recordId")+"';"; 已经存在,它是strHost。您需要将检查更改为:

"Hostname"