java - 当 MDB 尝试连接到远程队列时,WebSphere 8 中出现异常

标签 java ejb ibm-mq websphere-8

当消息被放入队列中时,我们在 Websphere 8 中收到以下错误。

现在,如果我们重新启动服务器,队列中的所有消息都会正常工作。但是,在队列为空之后,当新消息被放入队列中时,它会工作一段时间,然后抛出以下错误。

对于为什么会发生这种情况有什么想法吗?

[2/7/13 20:20:41:363 PST] 0000001e LocalTranCoor E   WLTC0017E: Resources rolled back due to setRollbackOnly() being called.
[2/7/13 20:20:41:425 PST] 0000009a SibMessage    W   [:] CWSJY0003W: JMSCC0110: An exception '
                       Message : java.lang.NullPointerException
                         Class : class java.lang.NullPointerException
                         Stack : com.ibm.msg.client.wmq.v6.jms.internal.MQSession.consume(MQSession.java:1943)
                               : com.ibm.msg.client.wmq.v6.jms.internal.MQSession.loadMessageReference(MQSession.java:4442)
                               : com.ibm.msg.client.jms.internal.JmsSessionImpl.consume(JmsSessionImpl.java:3199)
                               : com.ibm.msg.client.jms.internal.JmsSessionImpl.run(JmsSessionImpl.java:2838)
                               : com.ibm.mq.jms.MQSession.run(MQSession.java:862)
                               : com.ibm.ejs.jms.JMSSessionHandle.run(JMSSessionHandle.java:1057)
                               : com.ibm.ejs.jms.listener.ServerSession.connectionConsumerOnMessage(ServerSession.java:1085)
                               : com.ibm.ejs.jms.listener.ServerSession.onMessage(ServerSession.java:755)
                               : com.ibm.ejs.jms.listener.ServerSession.dispatch(ServerSession.java:721)
                               : sun.reflect.GeneratedMethodAccessor22.invoke(null:-1)
                               : sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
                               : java.lang.reflect.Method.invoke(Method.java:611)
                               : com.ibm.ejs.jms.listener.ServerSessionDispatcher.dispatch(ServerSessionDispatcher.java:47)
                               : com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:98)
                               : com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:135)
                               : com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:580)
                               : com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1659)
' was caught while processing a message for delivery to a message driven bean.
[2/7/13 20:20:41:425 PST] 0000009a LocalExceptio E   CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "onMessage" on bean "BeanId(JBoomerang#JBoomerangEJB.jar#LNPGWStatusResponseMDB1, null)". Exception data: java.lang.reflect.InvocationTargetException
                at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
                at java.lang.reflect.Method.invoke(Method.java:611)
                at com.ibm.ejs.jms.listener.ServerSessionDispatcher.dispatch(ServerSessionDispatcher.java:47)
                at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:98)
                at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:135)
                at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:580)
                at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1659)
Caused by: java.lang.NullPointerException
                at com.ibm.msg.client.wmq.v6.jms.internal.MQSession.consume(MQSession.java:1943)
                at com.ibm.msg.client.wmq.v6.jms.internal.MQSession.loadMessageReference(MQSession.java:4442)
                at com.ibm.msg.client.jms.internal.JmsSessionImpl.consume(JmsSessionImpl.java:3199)
                at com.ibm.msg.client.jms.internal.JmsSessionImpl.run(JmsSessionImpl.java:2838)
                at com.ibm.mq.jms.MQSession.run(MQSession.java:862)
                at com.ibm.ejs.jms.JMSSessionHandle.run(JMSSessionHandle.java:1057)
                at com.ibm.ejs.jms.listener.ServerSession.connectionConsumerOnMessage(ServerSession.java:1085)
                at com.ibm.ejs.jms.listener.ServerSession.onMessage(ServerSession.java:755)
                at com.ibm.ejs.jms.listener.ServerSession.dispatch(ServerSession.java:721)
                ... 8 more

最佳答案

我同意你的观点,这看起来像是 IV13714 的匹配。查看该页面 ( http://www-01.ibm.com/support/docview.wss?uid=swg1IV13714 ),我可以看到 IBM 在 MQ 7.0.1.9 中提供了针对该问题的修复程序。

由于您处于 WAS 环境中,这意味着您需要升级到附带 MQ 7.0.1.9+ 的 WAS 8.0.0 版本。

IBM 在此详细说明此信息:http://www-01.ibm.com/support/docview.wss?uid=swg21248089

因此,将所有这些放在一起,看起来您需要升级到 WAS 8.0.0.5+

关于java - 当 MDB 尝试连接到远程队列时,WebSphere 8 中出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14769295/

相关文章:

java - 根据条件替换第一个和最后一个字符(哪种方法更快)?

java - JMS 在 jboss 5.x 中是否需要 hsqldb 文件?

jsf - 全局 JSF 异常处理程序无法捕获所有错误

java - WebSphere Application Server 7.0 在连接到 MQ 时忽略 Windows userId

Java:枚举的等价类

java - 如何使用Liferay从MySQL检索jsp中的数据?

java - 如何在 JFreeChart TimeSeries 图表上显示降雨指数和温度?

java - EJB内部Thread.sleep的解决方案

java - IBM MQ 和 Spring Integration - 安全设置

java - MQ何时抛出JMS异常 'MQJMS1022: failed to redirect message'?