WSO2 - EI 6.2.0 - Настройка базы данных Oracle AQ JMS с EI для публикации / приема сообщений в / из Oracle AQ JMS - PullRequest
0 голосов
/ 25 октября 2018

Это Радхакришнан и новичок в мире WSO2.Хотелось бы настроить Oracle AQ JMS с EI, чтобы EI мог принимать / публиковать сообщения из Oracle AQ JMS.

Выполнена конфигурация для axis2.xml и написан прокси для приема сообщения из Oracle AQ JMS.

Теперь, когда мы публикуем в Oracle AQ JMS, мы получаем ошибку ниже, и у кого-нибудь есть предложения / ценные входные данные?

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)

Вот фрагмент кода:

<?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 Ответ

0 голосов
/ 30 октября 2018

Год назад я столкнулся с подобной проблемой, и мы исправили, используя следующие конфигурации.

Мы настроили фабрику соединений (AqQueueConnectionFactory) в 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 -->

Мынеобходимо перезапустить сервер после изменения axis2.xml и добавления следующего файла jar (aqapi-10.1.3.1.jar и его зависимостей) в папку lib.

В разделе Proxy, Parameters мы определилиКонфигурация очереди, которую прокси-сервер слушает.

   <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>

Как указано выше в axis2.xml, мы включили oracleaq как единое целое, если транспорт прокси-сервера.

После вышеуказанной настройкиГотово, мы можем слушать очереди / темы из Oracle AQ без каких-либо проблем.

Спасибо.

...