MQJMS2005 исключение не удалось создать MQQueueManager - PullRequest
1 голос
/ 20 февраля 2012

В моем GetJMSMessage я использовал это:

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();

Это работает, когда я запускаю свой класс как отдельное приложение. Однако, когда я развернул свой проект в Weblogic 10, он выдал ошибку JMSException. IBM MQ развернут удаленно, и у меня нет к нему доступа.

Ошибка трассировки стека: javax.jms.JMSException:

MQJMS2005: failed to create MQQueueManager for 'hostname:queuemanager'
at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:644) 
at com.ibm.mq.jms.MQConnection.createQM(MQConnection.java:2567) 
at com.ibm.mq.jms.MQConnection.createQMNonXA(MQConnection.java:1912) 
at com.ibm.mq.jms.MQQueueConnection.<init>(MQQueueConnection.java:161) 
at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:202)
at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:121) 
at com.ibm.mq.jms.MQQueueConnectionFactory.createConnection(MQQueueConnectionFactory.java:1038)

Что вызывает эту ошибку и как я могу это исправить? и почему эта ошибка возникает только при развертывании проекта на моем локальном сервере?

1 Ответ

8 голосов
/ 01 марта 2012

При использовании JMS, и вы получаете исключение, но не знаете причину, вы можете часто находить дополнительную информацию в одном или нескольких связанных исключениях, которые вы можете увидеть примерно так:

System.out.println(jmsex);
Throwable innerException = jmsex.getLinkedException();
if (innerException != null) {
  System.out.println("Inner exception(s):");
}
while (innerException != null) {
  System.out.println(innerException);
  innerException = innerException.getCause();
}

Эти внутренние / связанные исключения, скорее всего, содержат код причины MQ.

В вашем случае следует надеяться, что это даст некоторые подсказки о том, почему не удалось установить соединение.Например, имя администратора очередей неверно, менеджер очередей не запущен, внутренняя проблема в клиенте ...

Если вы нашли больше информации, но все еще пытаетесь понять, что идет не так, как надо, опубликуйте детали, которые вы найдете, и я могу попытаться посоветовать дальше.

...