Author |
Message
|
philexm |
Posted: Fri Jun 08, 2012 11:08 am Post subject: remote Q and local Q listeners conflicted in oneWAS instance |
|
|
Newbie
Joined: 08 Jun 2012 Posts: 8
|
Our Application is running on Websphere server V7.0.21 and need to connect to a local MQ server (V7.0.1.5) and another remote MQ server (V7.0.1.5) at the same time. The current issue:
if only enable local Q listener, JMS message can be retrieved successfully by MDB, but if enable remote Q listener at the same time, the local Q listener MDB will keep throw Null Pointer Exception but Remote Q listener is still retrieving jms message fine. it appears like the remote Q listener is conflicted with local Q listener somehow. please help to find out the root cause.
this is the exception from Local Q listener when invoking "onMessage"
[code][5/9/12 11:31:01:660 CDT] 00000052 SibMessage W [:] CWSJY0003W: JMSCC0110: An exception '
Message : java.lang.NullPointerException
Class : class java.lang.NullPointerException
Stack : java.lang.System.arraycopy(System.java:-2)
: com.ibm.msg.client.wmq.v6.jms.internal.MQSession.consume(MQSession.java:1934)
: com.ibm.msg.client.wmq.v6.jms.internal.MQSession.loadMessageReference(MQSession.java:4429)
: com.ibm.msg.client.jms.internal.JmsSessionImpl.consume(JmsSessionImpl.java:2996)
: com.ibm.msg.client.jms.internal.JmsSessionImpl.run(JmsSessionImpl.java:2657)
: com.ibm.mq.jms.MQSession.run(MQSession.java:862)
: com.ibm.ejs.jms.JMSSessionHandle.run(JMSSessionHandle.java:1045)
: com.ibm.ejs.jms.listener.ServerSession.connectionConsumerOnMessage(ServerSession.java:1076)
: com.ibm.ejs.jms.listener.ServerSession.onMessage(ServerSession.java:746)
: com.ibm.ejs.jms.listener.ServerSession.dispatch(ServerSession.java:712)
: sun.reflect.GeneratedMethodAccessor64.invoke(null:-1)
: sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
: java.lang.reflect.Method.invoke(Method.java:597)
: com.ibm.ejs.jms.listener.ServerSessionDispatcher.dispatch(ServerSessionDispatcher.java:44)
: com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:100)
: com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:136)
: com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:567)
: com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604)
' was caught while processing a message for delivery to a message driven bean.
[5/9/12 11:31:01:662 CDT] 00000052 LocalExceptio E CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "onMessage" on bean "BeanId(BISDispatcher_6080_55#BISDispatcherEJB.jar#InternalBISServiceDispatchMDB, null)". Exception data: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.ibm.ejs.jms.listener.ServerSessionDispatcher.dispatch(ServerSessionDispatcher.java:44)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:100)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:136)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:567)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604)
Caused by: java.lang.NullPointerException
at java.lang.System.arraycopy(Native Method)
at com.ibm.msg.client.wmq.v6.jms.internal.MQSession.consume(MQSession.java:1934)
at com.ibm.msg.client.wmq.v6.jms.internal.MQSession.loadMessageReference(MQSession.java:4429)
at com.ibm.msg.client.jms.internal.JmsSessionImpl.consume(JmsSessionImpl.java:2996)
at com.ibm.msg.client.jms.internal.JmsSessionImpl.run(JmsSessionImpl.java:2657)
at com.ibm.mq.jms.MQSession.run(MQSession.java:862)
at com.ibm.ejs.jms.JMSSessionHandle.run(JMSSessionHandle.java:1045)
at com.ibm.ejs.jms.listener.ServerSession.connectionConsumerOnMessage(ServerSession.java:1076)
at com.ibm.ejs.jms.listener.ServerSession.onMessage(ServerSession.java:746)
at com.ibm.ejs.jms.listener.ServerSession.dispatch(ServerSession.java:712)
... 8 more
[5/9/12 11:31:01:664 CDT] 00000052 LocalTranCoor E WLTC0017E: Resources rolled back due to setRollbackOnly() being called.[/code] |
|
Back to top |
|
 |
exerk |
Posted: Fri Jun 08, 2012 11:14 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
Which of your duplicate posts would you like me to remove? _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
philexm |
Posted: Fri Jun 08, 2012 11:35 am Post subject: |
|
|
Newbie
Joined: 08 Jun 2012 Posts: 8
|
exerk wrote: |
Which of your duplicate posts would you like me to remove? |
pls remove another short post. Thanks |
|
Back to top |
|
 |
Vitor |
Posted: Fri Jun 08, 2012 11:35 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
This one has less information & I've locked it. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Fri Jun 08, 2012 11:39 am Post subject: Re: remote Q and local Q listeners conflicted in oneWAS inst |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
philexm wrote: |
Our Application is running on Websphere server V7.0.21 and need to connect to a local MQ server (V7.0.1.5) and another remote MQ server (V7.0.1.5) at the same time. |
Why? That's very anti-pattern. Typically if you need to obtain a message currently sitting on a remote queue manager, you have that queue manager forward to the message to the local one.
I would imagine that the error is because you're mixing connections to the 2 queue managers & the MDB doesn't expect that (because no one does it) _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
philexm |
Posted: Fri Jun 08, 2012 11:54 am Post subject: Re: remote Q and local Q listeners conflicted in oneWAS inst |
|
|
Newbie
Joined: 08 Jun 2012 Posts: 8
|
Vitor wrote: |
philexm wrote: |
Our Application is running on Websphere server V7.0.21 and need to connect to a local MQ server (V7.0.1.5) and another remote MQ server (V7.0.1.5) at the same time. |
Why? That's very anti-pattern. Typically if you need to obtain a message currently sitting on a remote queue manager, you have that queue manager forward to the message to the local one.
I would imagine that the error is because you're mixing connections to the 2 queue managers & the MDB doesn't expect that (because no one does it) |
We are not planing to forward remote Q msg to local Q instead of connecting to remote Q directly to retrieve msgs by MDB on Websphere. we had setup different JNDIs in Websphere JMS provider for remote QCF/Q and Local QCF/Q, and different MDBs to retrieve each of them. but 2 MDBs appear can not work if their listeners are up at the same time some how. we found some exact the same issue on IBM support website below, but they are not providing explicit solution that I am confused how to fix it. really appreciate your help.
http://www-304.ibm.com/support/docview.wss?uid=swg1IV13714 |
|
Back to top |
|
 |
Vitor |
Posted: Fri Jun 08, 2012 12:13 pm Post subject: Re: remote Q and local Q listeners conflicted in oneWAS inst |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
philexm wrote: |
We are not planing to forward remote Q msg to local Q instead of connecting to remote Q directly to retrieve msgs by MDB on Websphere. |
Yes, I understood that's what you're doing; what I asked was why you're doing it. What requirement are you meeting with this design? What are you not exploiting the power of the very expensive WMQ software you've bought but increasing the administrative effort & complexity of your MDBs?
An answer of "because that's what the client said to do" is not an answer.
philexm wrote: |
but they are not providing explicit solution. |
It looks pretty explicit to me. You either need to apply the APAR now, or wait until 7.1.0.9 is available and apply that (having confirmed the APAR was actually included).
Or you could revise your design to remove the need for simultanious local & remote connections. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
philexm |
Posted: Fri Jun 08, 2012 12:22 pm Post subject: Re: remote Q and local Q listeners conflicted in oneWAS inst |
|
|
Newbie
Joined: 08 Jun 2012 Posts: 8
|
Vitor wrote: |
philexm wrote: |
We are not planing to forward remote Q msg to local Q instead of connecting to remote Q directly to retrieve msgs by MDB on Websphere. |
Yes, I understood that's what you're doing; what I asked was why you're doing it. What requirement are you meeting with this design? What are you not exploiting the power of the very expensive WMQ software you've bought but increasing the administrative effort & complexity of your MDBs?
An answer of "because that's what the client said to do" is not an answer.
philexm wrote: |
but they are not providing explicit solution. |
It looks pretty explicit to me. You either need to apply the APAR now, or wait until 7.1.0.9 is available and apply that (having confirmed the APAR was actually included).
Or you could revise your design to remove the need for simultanious local & remote connections. |
The reason we are doing this: we just upgrade the application from WAS 6 to WAS 7, it's been this way in WAS 6 many years and works fine, but not on WAS 7. Customer does not expect the change on this now.
I know MQ PTF 7.1.0.9 is not available. but I am also not seeing any link I can get related APAR for downloading?? |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Jun 08, 2012 1:56 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
If you are using a "bindings" connection and a client connection, try using 2 client connections, i.e. connect to the local qmgr as well via a client connection and let us know how you fare with your mdbs...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
philexm |
Posted: Sat Jun 09, 2012 7:35 pm Post subject: |
|
|
Newbie
Joined: 08 Jun 2012 Posts: 8
|
fjb_saper wrote: |
If you are using a "bindings" connection and a client connection, try using 2 client connections, i.e. connect to the local qmgr as well via a client connection and let us know how you fare with your mdbs...  |
Yes, I did use binding mode for Local Q and Client Mode for Remote Q. Will try next monday to see. U got idea? |
|
Back to top |
|
 |
fjb_saper |
Posted: Sat Jun 09, 2012 10:32 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Just remembering that in "bindings" mode you're only allowed to connect to one qmgr at a time for the JVM...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|