当消息被放入队列中时,我们在 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/