Support Article
Unable to connect to SOLACE JMS queue from Connect-JMS rule
SA-10008
Summary
You are unable to connect to SOLACE JMS queue from Connect-JMS rule in PRPC 6.2 SP2.
Error Messages
Category: Rule_Obj_Activity.ValidateInfrastructureConnectJMS.Rule_Connect_JMS.Action
Message: Rule-Connect-JMS: RULE-CONNECT-JMS RULE-CONNECT-JMS TEST #20150501T140536.098 GMT, JNDI lookup of JMS destination 'j2c/sendcorrinput' failed: javax.naming.NameNotFoundException: Context: test/clusters/myCluster, name: j2c/sendcorrinput: First component in name sendcorrinput not found. [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
Location:
Thrown:
javax.naming.NameNotFoundException: Context: test/clusters/myCluster, name: j2c/sendcorrinput: First component in name sendcorrinput not found. [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
at com.ibm.ws.naming.jndicos.CNContextImpl.mapNotFoundException(CNContextImpl.java:4378)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1807)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1762)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1513)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:645)
at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:166)
at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:180)
at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161)
at javax.naming.InitialContext.lookup(InitialContext.java:436)
at com.pegarules.generated.activity.ra_action_validateinfrastructureconnectjms_dbbcea0efbe598bf5c1dd4d1acd44bab.step2_circum0(ra_action_validateinfrastructureconnectjms_dbbcea0efbe598bf5c1dd4d1acd44bab.java:663)
Steps to Reproduce
1. Set up the JNDI server pointing to Solace JMS.
2. Create Connect-JMS using direct JNDI lookup. Mention the Connection factory in Service properties text box and the correct destination name in Request of the Service tab of Connect-JMS.
3. Click Test Connectivity button in Connect-JMS rule to observe the exception.
Root Cause
The root cause of this problem is defect/misconfiguration in the operating environment. The JNDI tree browser in PRPC only displayed the connection factory and not the destination queue, making it clear that the EJB binding for Solace JMS is missing inside the ibm-ejb-jar-bnd.xmi file. This file is shipped inside the PRPC EAR's prbeans.jar/META-INF folder.
Resolution
This issue is resolved by making the following change to the operating environment:
Add the below EJB binding to ibm-ejb-jar-bnd.xmi inside the PRPC EAR's prbeans.jar/META-INF folder for Session bean and MDB to integrate Solace JMS to PRPC 6.2 SP2.
<ejb-jar-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee
http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_0.xsd"
version="1.0">
<!-- ProducerSB (Session Bean) resources binding -->
<session name="ProducerSB">
<resource-ref name="myCF" binding-name="j2c/solaceCf" />
<resource-ref name="myReplyQueue" binding-name="j2c/sendcorrinput" />
</session>
<!-- ConsumerMDB (Message Driven Bean) activation specification binding -->
<message-driven name="ConsumerMDB">
<jca-adapter activation-spec-binding-name="JNDI/J2C/AS" />
</message-driven>
</ejb-jar-bnd>
Published June 12, 2015 - 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.