Support Article
Issue in JMS-MDB-Listener implementation
SA-3606
Summary
The issue we are facing is explained below:-
As soon as there is a message in the queue, Pega is reading that message and we are able to process the work object. But recently we have noticed that every time incoming message comes in, the following exception is thrown in the logs.
Error Messages
2014-10-29 11:19:46,872 [ JMS-Thread-8004] [ STANDARD] [ ] ( services.jms.JMSListener) ERROR .CheckGMITradeUpdate - Caught java.lang.ClassCastException in listener CheckGMITradeUpdate
java.lang.ClassCastException: com.ibm.ws.naming.jndicos.CNContextImpl incompatible with javax.jms.ConnectionFactory
at com.pega.pegarules.integration.engine.internal.services.jms.JMSListener.initializeConnection(JMSListener.java:988)
at com.pega.pegarules.integration.engine.internal.services.jms.JMSListener.runPoller(JMSListener.java:739)
at com.pega.pegarules.integration.engine.internal.services.jms.JMSListener.run_(JMSListener.java:734)
at com.pega.pegarules.integration.engine.internal.services.listener.ServiceListenerBaseImpl.run(ServiceListenerBaseImpl.java:442)
at java.lang.Thread.run(Thread.java:736)
Steps to Reproduce
Receive a message via the JMS Listener
Root Cause
The root cause of this problem is a defect in customer application code/rules.
The EAR file was corrupt.
Also, the prbootstrap entry was changed from
"com.pega.pegarules.bootstrap.allclasses.datasource=java:comp/env/jdbc/PegaRULES"
to "com.pega.pegarules.bootstrap.allclasses.datasource=jdbc/PegaRULES".
Once we have deployed an EAR without this change, the JMS MDB listener is
working perfectly fine.
Resolution
This issue is resolved by making the following change to the PRPC operating environment:
prbootstrap entry was changed from
"com.pega.pegarules.bootstrap.allclasses.datasource=java:comp/env/jdbc/PegaRULES"
to "com.pega.pegarules.bootstrap.allclasses.datasource=jdbc/PegaRULES".
Published January 31, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.