当前位置: 代码迷 >> WebSphere >> Java写的MQ客户端创设queuemanager失败(MQ部署在远程机器上)
  详细解决方案

Java写的MQ客户端创设queuemanager失败(MQ部署在远程机器上)

热度:1105   发布时间:2016-05-02 06:22:55.0
Java写的MQ客户端创建queuemanager失败(MQ部署在远程机器上)
用的client mode,原来一直在同一台机器测试,都是好用的,发消息都能送到queue里头。最近要开始部署了,mq和数据库放在一台服务器上,websphere application server放在另一台服务器上,在websphere administrative console里头创建queue connection factory,测试是可以连接上mq的,但是我在我本地测试机器上有个java写的queue消息发送小程序,
代码如下
MQQueueConnectionFactory m_MQQConnFactory = new com.ibm.mq.jms.MQQueueConnectionFactory();

try {
m_MQQConnFactory.setHostName(host);
m_MQQConnFactory.setQueueManager(queueManager);
m_MQQConnFactory.setPort(port);
m_MQQConnFactory.setChannel(channelName);

m_MQQConnFactory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
m_MQQConnFactory.setFailIfQuiesce(JMSC.MQJMS_FIQ_YES);

// Make sure CCSID, otherwise it will not connect to MQ.
m_MQQConnFactory.setCCSID(ccsid);

QueueConnection m_QConn = m_MQQConnFactory.createQueueConnection();
。。。。
运行到上面createQueueConnection这里出错,出现如下错误
javax.jms.JMSException: MQJMS2005: failed to create MQQueueManager for 'x.x.x.x:XXX_QM'
        at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:614)
        at com.ibm.mq.jms.MQConnection.createQM(MQConnection.java:2549)
        at com.ibm.mq.jms.MQConnection.createQMNonXA(MQConnection.java:1899)
        at com.ibm.mq.jms.MQQueueConnection.<init>(MQQueueConnection.java:176)
        at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:196)
        at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:114)

原来mq装在本地,这个程序一直好用的。请问如何解决这个问题?
------解决方案--------------------
你的程序所在 windows 用户与MQ 所在windows 用户域有关系吗?你现在是用当前 windows 用户访问目标用户 MQ,用户凭证可能有关联的,你在程序的机器上换一个 windows 用户登录,这个 windows 用户在目标机器上也存在。另外测试 TCP 设置是否都是真实的 IP 而不是 localhost 这样的参数。

------解决方案--------------------
1, 查看QueueManager有没有起动 2, 查看侦听端口有没有起动 3, 查看有没有中间有防火墙阻断了端口通信。
  相关解决方案