JMS MDB Listener behavior incorrect
In a multi-node Production environment, user has enabled JMS MDB listener only on one node. JMS messages were being queued to PRPC from an external system. MDB listener was processing the messages intermittently (Response Queue) and remaining messages were routed to Backout Queue. User do not see any errors or exceptions in the PegaRULES log file, System.out file in the current PRPC node.
Following exception traces were observed in other PRPC node(s) -
2014-09-30 22:54:47,591 [AResourceAdapter : 0] [ STANDARD] [ ] (tener.ListenerStateManagerImpl) ERROR - Failed to create MDB Listener, could not find Listener definition for Data-Admin-Connect-JMSMDBListener:MRIAcknowledgment.(com.pega.pegarules.integration.engine.internal.services.jms.JMSListener)
com.pega.pegarules.pub.PRException: Listener is not enabled for node: livlpscimw7
Steps to Reproduce
1. Create JMS MDB Listener, which process the messages from MQ.
2. Deploy the EAR with required config changes on all the nodes.
3. In a multi-node environment, enable JMS MDB Listener and run on one node.
Common application EAR file was deployed on all the nodes and hence the other nodes were trying to process the JMS messages. This was an expected behaviour of JMS MQ - when same EAR file was deployed across all the nodes, WebSphere MQ Service tries to send the messages to all the nodes and the nodes will try processing these messages.
Provided following suggestions -
1. enable JMS MDB Listener on all the PRPC nodes
2. deploy PRPC EAR file with the different settings in the ejb-jar.xml file.
User has enabled JMS MDB Listener on all the PRPC nodes and messages were getting processed without any issues.