Search code examples
activemq-classicoracle-aq

ActiveMq and Oracle AQ bridge error


I am trying to extract messages from AQ into topic in ActiveMq. I followed this instructions: http://activemq.apache.org/jms-bridge-with-oracle-aq.html . But when I started ActiveMQ I got this error:

2015-09-02 12:33:18,269 | WARN  | Setup of JMS message listener invoker failed for destination 'event_queue' - trying to recover. Cause: JMS-137:  Payload factory must be specified for destinations with ADT payloads | org.apache.camel.component.jms.DefaultJmsMessageListenerContainer | Camel (camel) thread #1 - JmsConsumer[event_queue]

What is the reason for this error and how it can be solved?


Solution

  • Yes, I found solution. So, at first AQ supports messages of the following types:

    • • RAW Queues • Oracle Object (ADT) Type Queues • Java Message Service (JMS) Type Queues/Topics

    The reason for this error(JMS 137) is the ADT payload is not valid for using with ActiveMq. And if you are planning to make a bridge between ActiveMq and Oracle AQ you should use JMS Types. The other thing is that I could not find required aqjms.jar, I replaced it with aqapi.jar from jlib directory of my Oracle Client. Also beans tag attributes should be:

    <beans
      xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
      http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">