【发布时间】:2015-03-14 15:44:18
【问题描述】:
我正在从 Mq 版本 7.0 迁移到 7.5 。我可以使用 ejb - Message Driven Beans(MDBs) 通过入站队列接收消息,但是在处理消息后发布消息。我收到 IBM MQRC 2082 MQRC_UNKOWN_ALIAS_BASE_Q 异常。
这是我得到的例外:
原因:javax.jms.InvalidDestinationException: MQJMS2008: failed to 打开 MQ 队列“OFS.TIG_IND2NSE_MSG”。 在 com.ibm.msg.client.wmq.v6.jms.internal.MQQueueServices.getQueueOpenException(MQQueueServices.java:901) 在 com.ibm.msg.client.wmq.v6.jms.internal.MQQueueServices.getOutputQueue(MQQueueServices.java:727) 在 com.ibm.msg.client.wmq.v6.jms.internal.JMSServicesMgr.getOutputQueue(JMSServicesMgr.java:210) 在 com.ibm.msg.client.wmq.v6.jms.internal.MQSession.createQProducer(MQSession.java:3138) 在 com.ibm.msg.client.wmq.v6.jms.internal.MQSession.createProducer(MQSession.java:2863) 在 com.ibm.msg.client.wmq.v6.jms.internal.MQSession.createProducer(MQSession.java:2920) 在 com.ibm.msg.client.jms.internal.JmsSessionImpl.createProducer(JmsSessionImpl.java:1191) 在 com.ibm.msg.client.jms.internal.JmsXAQueueSessionImpl$1.createSender(JmsXAQueueSessionImpl.java:415) 在 com.ibm.mq.jms.MQQueueSession.createSender(MQQueueSession.java:148) 在 weblogic.deployment.jms.WrappedSession.createSender(WrappedSession.java:344) 在 com.tiger.gmfs.framework.jms.QUtil.getSender(QUtil.java:216) 在 com.tiger.gmfs.framework.jms.QUtil.sendMessage(QUtil.java:110)
我写的一段代码是: 这是我的 getSender 方法: 受保护的 QueueSender getSender() 抛出 JavaMessagingException, JMSException {
QueueSender sender = null;
queue = qsess.createQueue(qVO.getName());
sender = qsess.createSender(queue);
if (sender == null)
throw new JavaMessagingException("The queue sender is null.");
sender.setPriority(qVO.getPriority());
return sender;
}
这是我的 sendMessage 方法:
public void sendMessage(Message jmsMessage) throws JavaMessagingException,
JMSException {
QueueSender sender = null;
try {
sender = getSender();
sender.send(jmsMessage);
} catch (JMSException j) {
Exception l = j.getLinkedException();
if (l != null) {
JavaMessagingException be = new JavaMessagingException(
"JMSErrCode:" + l + " Code:" + j.getErrorCode()
+ " Message: " + jmsMessage, j);
throw be;
} else
throw new JavaMessagingException(j);
}catch(Exception e1){
System.out.println(e1);
}finally {
if (sender != null) {
sender.close();
TracingHelper.infoLog(QUtil.class, "sendMessage",
"Closed sender");
}
}
}
我应该在此处进行哪些更改才能使我的代码正常工作?
我在 jre 1.7 +weblogic 12c 中实现了相同的代码,运行良好,但是当我将其更改为 jre 1.6 + weblogic 11g 时,我收到此错误。
【问题讨论】:
-
您使用的 MQ 队列管理器的版本是什么?您在 weblogic 中使用的 MQ 客户端的版本是什么?您在使用 MQ JCA RA 吗?
-
MQ 客户端版本是 7.0 +Weblogic 11g +不,我们没有使用 MQ JCA RA
标签: java jakarta-ee jms ibm-mq weblogic11g