Support Article
JMS MDB Listener Error
SA-1450
Summary
PRPC 63 SP1 JMS MDB Listener with ‘replyTo’ is deployed on Weblogic 10.3.5 and queue that PRPC JMS MDB listening to is on Sonic MQ 8.5.1.15 - with a WebLogic 10.3.5 foreign JMS. When the response connection is created during JMS MDB listener initialization below exception is thrown.
‘Caused by: javax.jms.JMSException: [JMSPool:169823]Failure occured on createQueueConnection. Unexpected return type.: java.lang.ClassCastException: weblogic.deployment.jms.PooledConnection_progress_message_jimpl_xa_XAConnection cannot be cast to javax.jms.QueueConnection’.
Error Messages
--------------------------------
2014-07-15 17:30:43,070 [] [ STANDARD] [ ] ( services.jms.JMSListener) ERROR - Failed to send error report to 'ReplyTo' destination,
com.pega.pegarules.pub.services.ServiceException: Failed to intialize response connection(create response connection step)
at com.pega.pegarules.integration.engine.internal.services.jms.JMSListener.initMDBResponseConnection(JMSListener.java:933)
at com.pega.pegarules.integration.engine.internal.services.jms.JMSListener.handleException(JMSListener.java:1392)
at com.pega.pegarules.integration.engine.internal.services.jms.JMSListener.runOnce(JMSListener.java:694)
at com.pega.pegarules.integration.engine.internal.services.jms.JMSListenerServant.invoke(JMSListenerServant.java:110)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(EngineImpl.java:312)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:263)
at com.pega.pegarules.session.internal.engineinterface.etier.ejb.EngineBean.invokeEngine(EngineBean.java:221)
at sun.reflect.GeneratedMethodAccessor202.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:349)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:390)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingException(PRBootstrap.java:412)
at com.pega.pegarules.internal.etier.ejb.EngineBeanBoot.invokeEngine(EngineBeanBoot.java:168)
at com.pega.pegarules.internal.etier.ejb.EngineBMT_h449u3_ELOImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:39)
at com.pega.pegarules.internal.etier.ejb.EngineBMT_h449u3_ELOImpl.invokeEngine(Unknown Source)
at com.pega.pegarules.session.internal.engineinterface.etier.mdb.PRJMSListener.callEngine(PRJMSListener.java:205)
at com.pega.pegarules.session.internal.engineinterface.etier.mdb.PRJMSListener.onMessage(PRJMSListener.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:349)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:390)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:439)
at com.pega.pegarules.internal.etier.mdb.PRJMSListenerBoot.onMessage(PRJMSListenerBoot.java:91)
at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:574)
at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:477)
at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:379)
at progress.message.jimpl.Session.deliver(Session.java:3080)
at progress.message.jimpl.Session.run(Session.java:2483)
at progress.message.jimpl.Session$SessionThread.run(Session.java:2875)
Caused by: javax.jms.JMSException: [JMSPool:169823]Failure occured on createQueueConnection. Unexpected return type.: java.lang.ClassCastException: weblogic.deployment.jms.PooledConnection_progress_message_jimpl_xa_XAConnection cannot be cast to javax.jms.QueueConnection
at weblogic.deployment.jms.JMSExceptions.getJMSException(JMSExceptions.java:29)
at weblogic.deployment.jms.PooledConnectionFactory.createQueueConnection(PooledConnectionFactory.java:202)
at com.pega.pegarules.integration.engine.internal.services.jms.JMSListener.initMDBResponseConnection(JMSListener.java:921)
... 32 more
Steps to Reproduce
Configure the JMS MDB listener with Sonic MQ 8.5.1.15 & Consume a JMS message.
Root Cause
PRPC is using JMS 1.0.2 API and Sonic MQ is using JMS 1.1 which does not support backward compatiblity.
Resolution
HFIX-9850 was provided to upgrade PRPC JMS API to 1.1.
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.