Support Article

Failed to start Pega application with JMS MDB Listener on JBoss

SA-26800

Summary



Unable to bring up Pega application server when JMS MDB listener is configured in JBoss. 


Error Messages



2016-08-10 21:31:45,101 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 84) MSC000001: Failed to start service jboss.deployment.subunit."prpc_j2ee14_jboss61JBM.ear"."prbeans.jar".component.PRAsync.START: org.jboss.msc.service.StartException in service jboss.deployment.subunit."prpc_j2ee14_jboss61JBM.ear"."prbeans.jar".component.PRAsync.START: java.lang.RuntimeException: com.ibm.mq.connector.DetailedResourceAdapterInternalException: MQJCA1011: Failed to allocate a JMS connection., error code: MQJCA1011 An internal error caused an attempt to allocate a connection to fail. See the linked exception for details of the failure.
at org.jboss.as.ee.component.ComponentStartService$1.run(ComponentStartService.java:57) [jboss-as-ee-7.5.6.Final-redhat-2.jar:7.5.6.Final-redhat-2]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_77]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_77]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_77]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_77]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_77]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)


Steps to Reproduce



Whenever trying to bring up Pega application server with JMS MDB listener configuration. Pega app is installed as EAR on JBoss.


Root Cause



A defect or configuration issue in the operating environment.

Resolution



Make the following change to the operating environment: 

Follow the steps of generating prbeans_DD for JBoss EAP 6.x server. Then modify the generated jboss-ejb3.xml as follows:


1. Add the attribute xmlns:mdb="urn:resource-adapter-binding" in the element <jboss:ejb-jar> (which is near the top of the xml document)
2. Add the following segment after </:s-security> element:

    
        <mdb:resource-adapter-binding>
           <ejb-name>replace with your ejb name</ejb-name>
           <mdb:resource-adapter-name>wmq.jmsra.rar</mdb:resource-adapter-name>
           </mdb:resource-adapter-binding>    

 3. Add the following MQ specific settings under your own message-driven bean element:
      
            <activation-config>
                <activation-config-property>
                    <activation-config-property-name>destination</activation-config-property-name>
                    <activation-config-property-value>replace with your queue name</activation-config-property-value>
                </activation-config-property>
                <activation-config-property>
                    <activation-config-property-name>destinationType</activation-config-property-name>
                    <activation-config-property-value>javax.jms.Queue</activation-config-property-value>
                </activation-config-property>
                <activation-config-property>                
                    <activation-config-property-name>useJNDI</activation-config-property-name>
                    <activation-config-property-value>false</activation-config-property-value>
                </activation-config-property>
                <activation-config-property>                
                    <activation-config-property-name>hostName</activation-config-property-name>
                    <activation-config-property-value>replace with your host ip</activation-config-property-value>
                </activation-config-property>
                <activation-config-property>    
                    <activation-config-property-name>port</activation-config-property-name>
                    <activation-config-property-value>replace with your port</activation-config-property-value>
                </activation-config-property>
                <activation-config-property>    
                    <activation-config-property-name>queueManager</activation-config-property-name>
                    <activation-config-property-value>replace with your queue manager</activation-config-property-value>
                </activation-config-property>
                <activation-config-property>                    
                    <activation-config-property-name>channel</activation-config-property-name>
                    <activation-config-property-value>replace with your channel</activation-config-property-value>
                </activation-config-property>
                <activation-config-property>                    
                    <activation-config-property-name>transportType</activation-config-property-name>
                    <activation-config-property-value>CLIENT</activation-config-property-value>                    
                </activation-config-property>
            </activation-config>     
4. Update prbeans.jar with the updated jboss-ejb3.xml modified from step 1 to step 3.
5. Update 
prpc_j2ee14_jboss61JBM.ear with the modified prbeans.jar from step 4.
6. Redeploy the ear from step 5.

 

Published August 15, 2016 - Updated September 7, 2016

Have a question? Get answers now.

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