1

This is Radhakrishnan and new to WSO2 world. Would like to configure the Oracle AQ JMS with EI so that EI can consume/publish messages from Oracle AQ JMS.

Configuration for axis2.xml has been done and written a Proxy to consume message from Oracle AQ JMS.

Now when we are publishing to Oracle AQ JMS we are getting below error and anybody has suggestion/valuable inputs?

Caused by: javax.naming.NameNotFoundException: Name [dynamicQueues//RIB_AQ_USER.ETEXTPAYTERM] is not bound in this Context. Unable to find [dynamicQueues].
        at org.apache.naming.NamingContext.lookup(NamingContext.java:825)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:173)
        at org.wso2.carbon.context.internal.CarbonContextDataHolder$CarbonInitialJNDIContext.lookup(CarbonContextDataHolder.java:709)

Here is the code snippet:

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="RMSPayTermOutToRMSProxy"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <log level="full"/>
         <property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
         <property name="FORCE_SC_ACCEPTED" scope="axis2" value="true"/>
         <send>
            <endpoint>
               <address format="pox"
                        uri="jms2:/RIB_AQ_USER.ETEXTPAYTERM?transport.jms.ConnectionFactoryJNDIName=JMSSenderTopicConnectionFactory"/>
            </endpoint>
         </send>
      </inSequence>
   </target>
   <parameter name="serviceType">proxy</parameter>
   <description/>
</proxy>

1 Answers1

1

I have faced a similar problem a year ago, and we fixed using the below configurations.

We have configured the Connection Factory(AqQueueConnectionFactory) in axis2.xml

<!-- Oracle AQ Listener Start-->
<transportReceiver name="oracleaq" class="org.apache.axis2.transport.jms.JMSListener">
   <parameter name="AqQueueConnectionFactory" locked="false">
      <parameter name="java.naming.factory.initial" locked="false">oracle.jms.AQjmsInitialContextFactory</parameter>
      <parameter name="db_url" locked="false">jdbc:oracle:thin:@hostname:port:schema</parameter>
      <parameter name="java.naming.security.principal" locked="false">username</parameter>
      <parameter name="java.naming.security.credentials" locked="false">password</parameter>
      <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
      <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
   </parameter>
   <parameter name="AqTopicConnectionFactory" locked="false">
      <parameter name="java.naming.factory.initial" locked="false">oracle.jms.AQjmsInitialContextFactory</parameter>
      <parameter name="db_url" locked="false">jdbc:oracle:thin:@hostname:port:schema</parameter>
      <parameter name="java.naming.security.principal" locked="false">username</parameter>
      <parameter name="java.naming.security.credentials" locked="false">password</parameter>
      <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter>
      <parameter name="transport.jms.ConnectionFactoryType" locked="false">topic</parameter>
   </parameter>
</transportReceiver>
<!-- Oracle AQ Listener End -->

We have to restart the server after changing the axis2.xml and adding the following jar file (aqapi-10.1.3.1.jar and its dependencies) in the lib folder.

In the Proxy, Parameters section, we defined the Queue configuration to which the Proxy listens to.

   <parameter name="transport.jms.DestinationType">queue</parameter>
   <parameter name="transport.jms.Destination">Queues/QueueName</parameter>
   <parameter name="transport.jms.ContentType">
      <rules xmlns="">
         <jmsProperty>contentType</jmsProperty>
         <default>application/xml</default>
      </rules>
   </parameter>
   <parameter name="transport.jms.ConnectionFactory">AqQueueConnectionFactory</parameter>

AS stated above in the axis2.xml, we enabled the oracleaq as one if the transport of the proxy.

Once the above setup is done, we can listen to the queues/topics from Oracle AQ without any issues.

Thanks.

  • Thanks Prabakaran.Yes whatever you have provided configuration details for axis2.xml and Jar files were already done. Version we are using EI 6.2.0. We also able to listen to the AQ JMS topic with Proxy service but not publish message to AQ JMS topic in Proxy service. The error reported for that. Also if you use Inbound Endpoint for listening to AQ JMS topic is not working. By the way I am from Hosur and working in TechM. How about you? – Radhakrishnan Meiyappan Nov 01 '18 at 18:12
  • Hi Radhakrishnan, I haven’t sent messages to topic as we just listened to them, also didn’t use inbound endpoints. I’m from Coimbatore and working in a startup at Hyderabad :) – Prabakaran Thodithot Sembiyan Nov 03 '18 at 02:11
  • Nice to Prabakaran and I am from Gobi. We have sorted out the issue with the help of WSO2 support. Here is my whatsApp no: 8971501000 and can you ping me. – Radhakrishnan Meiyappan Nov 09 '18 at 14:29