【发布时间】:2018-02-08 16:39:15
【问题描述】:
我正在尝试使用 JMS 和客户端通道定义表 (CCDT) 连接到 IBM MQ。当我单独指定 MQ 属性时,我能够成功连接到 QueueManager。 但是当我尝试使用 CCDT 文件时,我得到了以下异常。
由于客户端通道定义表 (CCDT) 用于确定客户端应用程序用于连接到队列管理器的通道定义,因此我没有设置 QueueManager 名称。
ERROR> com.ssc.ach.mq.JMSMQReceiver[main]: errorMQJMS2005: failed to create MQQueueManager for ''
javax.jms.JMSException: MQJMS2005: failed to create MQQueueManager for ''
at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:586)
at com.ibm.mq.jms.MQConnection.createQM(MQConnection.java:2110)
at com.ibm.mq.jms.MQConnection.createQMNonXA(MQConnection.java:1532)
at com.ibm.mq.jms.MQQueueConnection.<init>(MQQueueConnection.java:150)
at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:174)
at com.ibm.mq.jms.MQQueueConnectionFactory.createConnection(MQQueueConnectionFactory.java:1066)
我使用.setCCDTURL(ccdt); 方法设置CCDT URL。
private MQQueueConnectionFactory mqQueueConnectionFactory = new MQQueueConnectionFactory();
mqQueueConnectionFactory.setCCDTURL(ccdt);
queueConnection = mqQueueConnectionFactory.createConnection(username, pwd);
当我尝试使用以下配置而不是 CCDT 文件连接时,它会连接到 MQ。
mqQueueConnectionFactory.setHostName(host);
mqQueueConnectionFactory.setChannel(channel);
mqQueueConnectionFactory.setPort(port);
mqQueueConnectionFactory.setQueueManager(qManager);
mqQueueConnectionFactory.setTransportType(1);
我是否需要设置 setQueueManager 以及 CCDT 文件,正如异常所说的 failed to create MQQueueManager for ''
【问题讨论】:
-
您在频道表中定义的 CLNTCONN 频道的
QMNAME字段中有什么内容?您是否在频道表中只定义了一个频道? -
在 TAB 文件中,我看到加密的数据和主机名、端口号、通道名称
-
你安装了什么版本的mq客户端?
-
我们正在使用 MQ 8
标签: java jms message-queue ibm-mq