使用客户端模式连接到IBM MQ时获取MQJMS2005异常

时间:2011-10-25 05:50:25

标签: jms ibm-mq mq

执行以下尝试使用客户端模式连接WebSphere MQ QueueManager的代码我得到 MQJMS2005 异常

MQQueueConnectionFactory cf = new MQQueueConnectionFactory();
cf.setPort(port);
cf.setHostName(host);
cf.setChannel(channel);
cf.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
cf.setQueueManager(queuemanager);

conn = (MQQueueConnection)cf.createQueueConnection();

我使用com.ibm.mq.jar,com.ibm.mqjms.jar,dhbcore.jar,jmscommon.jar和j2ee.jar。

我认为这可能与权限有关,因为当连接到另一个主机/端口/通道/队列管理器/队列时,相同的代码可以在另一台机器上正常工作

堆栈跟踪如下:

javax.jms.JMSException: MQJMS2005: failed to create MQQueueManager for 'host:queuemanager'
at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:644)
at com.ibm.mq.jms.MQConnection.createQM(MQConnection.java:2591)
at com.ibm.mq.jms.MQConnection.createQMNonXA(MQConnection.java:1936)
at com.ibm.mq.jms.MQQueueConnection.<init>(MQQueueConnection.java:161)
at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:206)
at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:126)
at MQTest.init(MQTest.java:51)

如何对此进行故障排除,以便我可以成功运行代码?

3 个答案:

答案 0 :(得分:3)

这是我们在.binding文件或DEV-WEST文件中遇到问题的异常,我们正在配置MQ客户端信息,例如 SSP-FLOW.VERICHECK_HOST_NAME = 113.130.234.174即 检查所有这些区域,这些是缺陷区域,因为如果出现异常。

答案 1 :(得分:0)

我遇到了同样的问题。它与MQ Queuemanager xml或Websphere MQ安装中的通道或某些设置无关。 This可能有所帮助。

答案 2 :(得分:0)

后来我发现这是由于许可问题。 使用客户端模式连接到MQ时,可以使用权限设置(例如允许的客户端IP)配置MQ; 在我之前的情况下,机器未添加到允许列表中;

而其他应用程序正常运行实际上是使用绑定模式而不是客户端模式。 所以它绑定到一个允许的用户ID。