I was trying to connect to a Oracle Advanced Queue with camel according
to the doc at:

http://activemq.apache.org/jms-bridge-with-oracle-aq.html
(the dsl of my route follows)

The queue has been created on OAS with data type SYS.AQ$_JMS_MESSAGE and
enqueing and dequeueing activated.

As soon as I send a message (from activemq web frontend), I receive:

2010-02-08 10:02:07,755 | WARN  | Execution of JMS message listener
failed |
org.springframework.jms.listener.DefaultMessageListenerContainer |
DefaultMessageListenerContainer-1
java.lang.AbstractMethodError:
oracle.jms.AQjmsQueueConnectionFactory.createConnection(Ljava/lang/String;Ljava/lang/String;)Ljavax/jms/Connection;
        at
org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter.doCreateConnection(UserCredentialsConnectionFactoryAdapter.java:174)
        at
org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter.createConnection(UserCredentialsConnectionFactoryAdapter.java:149)
        at
org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:184)
[... many more ...]

I think I'm missing something.

First of all, which jar should be copied in /lib directory? From howto I
read aqapi13.jar, but in oracle relese I find many more:
aqapi11_g.jar
aqapi12.jar
aqapi_g.jar
aqapi11.jar
aqapi13_g.jar
aqapi.jar
aqapi12_g.jar
aqapi13.jar
which one do I choose (oracle version is 9.0.2.0.40)?

then: are other jar necessary (oc4j, for instance, I believe not, but I
have no idea)?

Actually docs describes reading messages from a OAS queue, while I'm
writing. Does it make any difference?

Just for reference, I attach my camel route (inside apache activemq 5.3):

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
        <route>
            <from uri="atcm:oracle.to"/>
            <to uri="oracle:CORRELA_FROM"/>
        </route>
</camelContext>

 <bean id="atcm"
class="org.apache.activemq.camel.component.ActiveMQComponent" >
        <property name="connectionFactory">
          <bean class="org.apache.activemq.ActiveMQConnectionFactory">
            <property name="brokerURL"
value="vm://localhost?create=false&amp;waitForStart=10000" />
            <property name="userName" value="${activemq.username}"/>
            <property name="password" value="${activemq.password}"/>
          </bean>
        </property>
    </bean>

    <bean id="requiredBeanForOracleAq"
class="org.apache.activemq.ActiveMQConnectionFactory" />

    <bean id="connectionFactoryOracleAQQueue"
class="oracle.jms.AQjmsFactory" factory-method="getQueueConnectionFactory">
        <constructor-arg index="0">

<value>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=my_ip)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=my_db)(SERVER=DEDICATED)))</value>
        </constructor-arg>
        <constructor-arg index="1" type="java.util.Properties">
            <value></value>
        </constructor-arg>
    </bean>

    <bean id="oracleQueueCredentials"
class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
        <property name="targetConnectionFactory"
ref="connectionFactoryOracleAQQueue" />
        <property name="username">
            <value>super</value>
        </property>
        <property name="password">
            <value>secret</value>
        </property>
    </bean>

   <bean id="oracle" class="org.apache.camel.component.jms.JmsComponent">
        <property name="connectionFactory" ref="oracleQueueCredentials" />
   </bean>
</beans>

Can you please point me to other docs?

Thank you for your help!

Francesco

Reply via email to