Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Problem in message Invocation using MDB Listener

SA-24742

Summary



After the deployment of a custom MDB module, user is getting the error message below in WebSphere log file.
The newly deployed MDB Listener is not receiving messages from the JMS Destination.

 

Error Messages



[6/14/16 16:55:25:617 BST] 00000148 SibMessage W [:] CWSJY0003W: MQJCA4004: Message delivery to an MDB 'prpc_j2ee14_ws#yourModule.jar#yourMDB[email protected])' failed with exception: 'nested exception is: java.lang.RuntimeException: Problem during method invocation (onMessage)'.
[6/14/16 16:55:26:088 BST] 00000148 ActivationSpe I J2CA0524I: The Message Endpoint for ActivationSpec jms/yourDestination (com.ibm.mq.connector.inbound.ActivationSpecImpl) and MDB Application prpc_j2ee14_ws#yourModule.jar#yourMDB is deactivated.
[6/14/16 16:55:26:091 BST] 00000148 SibMessage W [:] CWWMQ0007W: The message endpoint prpc_j2ee14_ws#yourModule.jar#yourMDB has been paused by the system. Message delivery failed to the endpoint more than 0 times. The last attempted delivery failed with the following error: com.ibm.ejs.container.UnknownLocalException: nested exception is: java.lang.RuntimeException: Problem during method invocation (onMessage)
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethod(AppServerBridgeToPega.java:279)
at com.pega.pegarules.internal.etier.mdb.PRJMSListenerBoot.onMessage(PRJMSListenerBoot.java:91)
at com.ibm.ejs.container.WASMessageEndpointHandler.invokeJMSMethod(WASMessageEndpointHandler.java:138)
at com.ibm.ws.ejbcontainer.mdb.MessageEndpointHandler.invokeMdbMethod(MessageEndpointHandler.java:1146)
at com.ibm.ws.ejbcontainer.mdb.MessageEndpointHandler.invoke(MessageEndpointHandler.java:844)
at com.sun.proxy.$Proxy26.onMessage(Unknown Source)
at com.ibm.mq.connector.inbound.MessageEndpointWrapper.onMessage(MessageEndpointWrapper.java:131)
at com.ibm.mq.jms.MQSession$FacadeMessageListener.onMessage(MQSession.java:133)
at com.ibm.msg.client.jms.internal.JmsSessionImpl.run(JmsSessionImpl.java:2799)
at com.ibm.mq.jms.MQSession.run(MQSession.java:958)
at com.ibm.mq.connector.inbound.ASFWorkImpl.doDelivery(ASFWorkImpl.java:97)
at com.ibm.mq.connector.inbound.AbstractWorkImpl.run(AbstractWorkImpl.java:231)
at com.ibm.ejs.j2c.work.WorkProxy$RunWork.run(WorkProxy.java:281)
at java.security.AccessController.doPrivileged(AccessController.java:390)
at javax.security.auth.Subject.doAs(Subject.java:494)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:133)
at com.ibm.ejs.j2c.work.WorkProxy$RunWork.run(WorkProxy.java:284)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:63)
at com.ibm.ejs.j2c.work.WorkProxy.run(WorkProxy.java:666)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)
Caused by: java.lang.RuntimeException: Problem during method invocation (onMessage)
... 20 more
Caused by: javax.ejb.EJBException: Unable to locate implementation of PegaRULES Engine class for EngineBMT
at com.pega.pegarules.session.internal.engineinterface.etier.mdb.PRJMSListener.callEngine(PRJMSListener.java:200)
at com.pega.pegarules.session.internal.engineinterface.etier.mdb.PRJMSListener.init(PRJMSListener.java:175)
at com.pega.pegarules.session.internal.engineinterface.etier.mdb.PRJMSListener.onMessage(PRJMSListener.java:122)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)


Steps to Reproduce

  1. Update the PRPC EAR file with the newly created MDB module.
  2. Deploy the modified EAR file.
  3. Restart the system.
  4. Check the Webshpere log file.


Root Cause



A previous error, introduced by the custom deployment process adopted, caused an incorrect deployment of the StateLess Session Bean (EngineBMT in this case) necessary for the proper functioning of the message driven bean at runtime. 
Hence the SLSB reference resolution of the bean required by the MDB failed at runtime.


Note that the EngineBMT SLSB is referenced in this case because the newly created JMS MDB Listener was configured to use, Bean managed transactions.
The same error could have involved the SLSB EngineCMT if the new MDB had been configured to use Container Managed Transactions.

Resolution

Perform the PRPC EAR deployment as described in the Pega Platform Installation Guide for your version of PRPC and the platform making sure it is applied correctly and without any errors in the logs.

​Deploy the custom MDB JMS Listener as described in the following PDN article:

 https://pdn.pega.com/node/136721

Suggest Edit

Published July 2, 2016 - Updated October 8, 2020

Did you find this content helpful? Yes No

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us