Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

MDB listener stop automatically

413 views
Skip to first unread message

sangeet...@nordstrom.com

unread,
Jan 24, 2008, 1:32:13 PM1/24/08
to
We are using WAS 6.0.2.19 standalone version and there are 6 MDBs deployed listening to Websphere MQ 5.3 CSD11 and Tibco queues.
Sometimes the MDB listeners stop automatically for some unknown reason. If I manually start them they come back up and MDB process messages but sometimes they just cannot start with manual restarts also and I have to bounce the WAS. After bouncing WAS also its not guaranteed that listener will start.Does it have to do with the poison message or how error handling is done within MDB? This happens in our production environment with both Tibco and MQ queues.
Is there some container/MDB specific setting which I am missing?
We set the max retry count in WAS console to 6. In MQ we configured a back out queue with threshold as "1" to orginal queue.
is it triggered by expired messages sitting in queue?
Any clue will be helpful.
Thanks

David Currie

unread,
Jan 28, 2008, 6:13:56 AM1/28/08
to
If you set the backout count below the max retry count then you should
never see the listener port stop due to retrying messages - they will
always go to the backout queue first. The listener port would then only
stop due to lack of connectivity to the queue manager. The logs should
tell you why the listener port is stopping.

Regards,
David

sangeet...@nordstrom.com

unread,
Jan 28, 2008, 5:13:41 PM1/28/08
to
I am getting the following messages from the MDB which connects to the Tibco JMS queue. I have not setup retry count here but its been done for the MDB listeners listening to the MQ.
I dont know how to setup backout queue in tibco world.Our tibco admins say the error handling should be done inside the application even if its poison message.
Any clues on this..

David Currie

unread,
Jan 29, 2008, 6:05:55 AM1/29/08
to
Can't help you on the Tibco side and you seem to have missed the
"following messages" from your post.

David

sangeet...@nordstrom.com

unread,
Jan 29, 2008, 12:43:33 PM1/29/08
to
Here is the error message:
[1/28/08 11:24:31:268 PST] 00000035 ServerSession W WMSG0031E: Exception processing JMS Message for MDB MCRRequestCapture, JMSDestination jms/MCOrdCaptureQueueIn : com.ibm.ejs.container.UnknownLocalException:
Caused by: com.ibm.ws.exception.WsEJBException
at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapException(LocalExceptionMappingStrategy.java:167)
at com.ibm.ejs.container.LocalExceptionMappingStrategy.setUncheckedException(LocalExceptionMappingStrategy.java:301)
at com.ibm.ejs.container.EJSDeployedSupport.setUncheckedLocalException(EJSDeployedSupport.java:462)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:98)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:479)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
Caused by: java.lang.StackOverflowError

[1/28/08 11:24:31:271 PST] 00000035 ServerSession W WMSG0036E: Maximum message delivery retry count of 0 reached for MDB MCRRequestCapture, JMSDestination jms/MCOrdCaptureQueueIn, MDBListener stopped
[1/28/08 11:24:31:282 PST] 00000040 MDBListenerIm I WMSG0043I: MDB Listener MCOrdCaptureListener stopped for JMSDestination jms/MCOrdCaptureQu

Ben_

unread,
Jan 29, 2008, 2:14:24 PM1/29/08
to
> Here is the error message:
> [1/28/08 11:24:31:268 PST] 00000035 ServerSession W WMSG0031E: Exception
> processing JMS Message for MDB MCRRequestCapture, JMSDestination
> jms/MCOrdCaptureQueueIn : com.ibm.ejs.container.UnknownLocalException:
> Caused by: com.ibm.ws.exception.WsEJBException
> at
> com.ibm.ejs.container.LocalExceptionMappingStrategy.mapException(LocalExceptionMappingStrategy.java:167)
> at
> com.ibm.ejs.container.LocalExceptionMappingStrategy.setUncheckedException(LocalExceptionMappingStrategy.java:301)
> at
> com.ibm.ejs.container.EJSDeployedSupport.setUncheckedLocalException(EJSDeployedSupport.java:462)
> at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:98)
> at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
> at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:479)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
> Caused by: java.lang.StackOverflowError

Is there no stacktrace here between the "caused by" clause and the
"MDBListener stopped" message ?

sangeet...@nordstrom.com

unread,
Jan 29, 2008, 2:26:06 PM1/29/08
to
Things were fine till Sunday(01/27) 1am when suddenly we started seeing this message in the log:
***************************
[1/25/08 19:02:04:071 PST] 000000ed ServletWrappe A SRVE0242I: [transferdtcui] [/transferdtcui] [/jsp/search/XfrSearchResult.jsp]: Initialization successful.
[1/25/08 19:02:07:572 PST] 00000087 ServletWrappe A SRVE0242I: [transferdtcui] [/transferdtcui] [/jsp/viewdetails/McrViewDetails.jsp]: Initialization successful.
[1/25/08 19:04:15:893 PST] 0000027d WSManagedConn W DSRA9010E: 'setPurgePolicy' is not supported on the WebSphere interface javax.resource.spi.ManagedConnectionFactory implementation.
[1/25/08 19:04:16:000 PST] 0000027d InternalOracl I DSRA8203I: Database product name : Oracle
[1/25/08 19:04:16:002 PST] 0000027d InternalOracl I DSRA8204I: Database product version : Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
[1/25/08 19:04:16:004 PST] 0000027d InternalOracl I DSRA8205I: JDBC driver name : Oracle JDBC driver
[1/25/08 19:04:16:006 PST] 0000027d InternalOracl I DSRA8206I: JDBC driver version : 10.2.0.1.0
[1/25/08 19:04:16:009 PST] 0000027d InternalOracl I DATA_STORE_HELPER_NAME
[1/25/08 19:04:16:011 PST] 0000027d WSRdbDataSour I DSRA8208I: JDBC driver type : ""
[1/27/08 1:00:53:905 PST] 00000279 FFDCJanitor I com.ibm.ws.ffdc.FFDCJanitor doCleanupIfNeeded FFDC0004I: FFDC log file management removed 4 of 4 files that have reached their configured maximum age
[1/27/08 1:00:53:932 PST] 00000279 ExceptionUtil E CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "onMessage" on bean "BeanId(DTCListener#DTCListener-ejb.jar#MCRRequestCapture, null)". Exception data: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.ibm.ejs.jms.listener.ServerSessionDispatcher.dispatch(ServerSessionDispatcher.java:37)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:91)

at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:479)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
Caused by: java.lang.StackOverflowError

[1/27/08 1:00:53:978 PST] 00000279 ServerSession W WMSG0031E: Exception processing JMS Message for MDB MCRRequestCapture, JMSDestination jms/MCOrdCaptureQueueIn : com.ibm.ejs.container.UnknownLocalException:

Caused by: com.ibm.ws.exception.WsEJBException
at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapException(LocalExceptionMappingStrategy.java:167)
at com.ibm.ejs.container.LocalExceptionMappingStrategy.setUncheckedException(LocalExceptionMappingStrategy.java:301)
at com.ibm.ejs.container.EJSDeployedSupport.setUncheckedLocalException(EJSDeployedSupport.java:462)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:98)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:479)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
Caused by: java.lang.StackOverflowError

[1/27/08 1:00:53:997 PST] 00000279 SystemOut O Trying to load 'sfd-sys-config.properties'
[1/27/08 1:00:53:997 PST] 00000279 SystemOut O Trying to load file as Stream.
[1/27/08 1:00:53:998 PST] 00000279 SystemOut O Trying to load resource as Stream.
[1/27/08 1:00:53:999 PST] 00000279 SystemOut O Got stream java.io.BufferedInputStream@83778c
[1/27/08 1:00:54:093 PST] 0000028d ExceptionUtil E CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "onMessage" on bean "BeanId(DTCListener#DTCListener-ejb.jar#MCRRequestCaptureDupOne, null)". Exception data: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.ibm.ejs.jms.listener.ServerSessionDispatcher.dispatch(ServerSessionDispatcher.java:37)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:91)


at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:479)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
Caused by: java.lang.StackOverflowError

[1/27/08 1:00:54:101 PST] 0000028d ServerSession W WMSG0031E: Exception processing JMS Message for MDB MCRRequestCaptureDupOne, JMSDestination jms/MCOrdCaptureQueueIn : com.ibm.ejs.container.UnknownLocalException:

Caused by: com.ibm.ws.exception.WsEJBException
at com.ibm.ejs.container.LocalExceptionMappingStrategy.mapException(LocalExceptionMappingStrategy.java:167)
at com.ibm.ejs.container.LocalExceptionMappingStrategy.setUncheckedException(LocalExceptionMappingStrategy.java:301)
at com.ibm.ejs.container.EJSDeployedSupport.setUncheckedLocalException(EJSDeployedSupport.java:462)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:98)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:127)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:479)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1471)
Caused by: java.lang.StackOverflowError

[1/27/08 1:00:54:104 PST] 0000028d ServerSession W WMSG0036E: Maximum message delivery retry count of 0 reached for MDB MCRRequestCaptureDupOne, JMSDestination jms/MCOrdCaptureQueueIn, MDBListener stopped
*******************
No other stack trace as such. Is it because the application isnt catching some exception properly?

Ben_

unread,
Jan 29, 2008, 3:08:29 PM1/29/08
to

sangeet...@nordstrom.com

unread,
Jan 29, 2008, 4:32:55 PM1/29/08
to
Thanks for all your help so far. Really appreciate it. I have opened PMR with IBM and waiting to hear from them. I will post the root cause of this issue if I can get to the bottom of it.

Brian S Paskin

unread,
Jan 30, 2008, 9:26:28 AM1/30/08
to
Hi, Since your count is 1 then when an exception is encountered and the listener stops. You should be handling your exceptions in the MDB to avoid the message being returned to the queue.

Randy Schnier

unread,
Jan 31, 2008, 11:53:08 AM1/31/08
to
CNTR0020 is the EJB container reporting to you that your EJB threw an exception that wasn't declared in the throws clause of the method being invoked. The message indicates that the code inside your MDB method is encountering some kind of problem (unrelated to the EJB container) and throwing an exception. You'll need to look at why the code inside your MDB is throwing an InvocationTargetException and fix that.

sangeet...@nordstrom.com

unread,
Jan 31, 2008, 1:33:23 PM1/31/08
to
The development team found an issue with the data they were passing on to the MDB which it couldnt handle. I will definitely post the exact details once I get them.<br />
Thanks to everybody whoever jumped in to help on this issue.
0 new messages