Support Article
MDB listener does not read messages from queue
SA-85867
Summary
The JMS Message-Driven Bean (MDB) listener is configured and deployed onto the Websphere Application Server. While testing it through the JNDI server rule, user is able to enter messages onto the queue. The messages remain on the queue and are not consumed by the listener.
Error Messages
100[WebContainer:2][TABTHREAD1][][BEPSFND](essage.Rule_Connect_JMS.Action)ERROR an_host an_operator - Couldn't get messages from queue :javax.jms.IllegalStateException: Method stop not permitted
javax.jms.IllegalStateException: Method stop not permitted
at JMSCMUtils.methodNotPermittedException(JMSCMUtils.java:268)~[]
at JMSConnectionHandle.checkRestrictedMethod(JMSConnectionHandle.java:866)~[]
at JMSConnectionHandle.stop(JMSConnectionHandle.java:775)~[]
Steps to Reproduce
Enter JMS Message through the JNDI server rule.
Root Cause
The JMS MDB listener is configured with Container Managed Transaction. This transaction type must use the XA database driver.
Resolution
Perform the following local-change:
- Disable the Container Managed Transaction
- Regenerate the MDB jar file
- Redeploy the new MDB jar in the Websphere Application Server
Published October 16, 2019 - 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.