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



执行下面尝试使用客户端模式连接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)

我如何解决这个问题,以便我可以成功地运行代码?

这是我们在.binding文件或DEV-WEST文件中遇到问题时出现的异常,我们在其中配置MQ客户机信息,如SSP-FLOW。VERICHECK_HOST_NAME = 113.130.234.174即检查所有这些区域,这些是由于异常而导致的缺陷区域。

后来我发现这是由于权限问题。当使用客户端模式连接到MQ时,可以使用权限设置配置MQ,例如允许的客户端ip;在我前面的例子中,机器没有被添加到允许列表中;

而另一个运行良好的应用实际上是使用绑定模式而不是客户端模式。它被绑定到一个允许的用户id

我也遇到过同样的问题。这是在没有通道或MQ Queuemanager xml或Websphere MQ安装上的一些设置的情况下完成的。这可能会有所帮助。

最新更新