5 Replies Latest reply on Oct 7, 2009 11:00 AM by Daniel Bevenius

    Oracle AQ integration problem

    Stanislav Zelivinski Newbie

      Oracle AQ integration problem.

      I need to read Oracle AQ queue from JBOSS ESB. I created new project and configured it per quickstart oracle-aq read me instruction. When I am trying to deploy my ESB project that's what I am getting:

      12:08:57,615 ERROR [URLDeploymentScanner] Incomplete Deployment listing:

      --- MBeans waiting for other MBeans ---
      ObjectName: jboss.esb:deployment=TransactionManagerESB.esb
      State: FAILED
      Reason: java.lang.NoSuchMethodError: oracle.jms.AQjmsFactory.getXAConnectionFactory(Ljavax/sql/XADataSource;)Ljavax/jms/XAConnectionFactory;
      I Depend On:
      jboss.esb:deployment=jbossesb.esb
      jboss.esb.quickstart.destination:service=Queue,name=tran_Manager_Request_gw
      jboss.esb.quickstart.destination:service=Queue,name=tran_Manager_Request_esb

      --- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
      ObjectName: jboss.esb:deployment=TransactionManagerESB.esb
      State: FAILED
      Reason: java.lang.NoSuchMethodError: oracle.jms.AQjmsFactory.getXAConnectionFactory(Ljavax/sql/XADataSource;)Ljavax/jms/XAConnectionFactory;
      I Depend On:
      jboss.esb:deployment=jbossesb.esb
      jboss.esb.quickstart.destination:service=Queue,name=tran_Manager_Request_gw
      jboss.esb.quickstart.destination:service=Queue,name=tran_Manager_Request_esb

      Can somebody telll me what Jar shall I use?

      Thanks a bunch,
      Stas

        • 1. Re: Oracle AQ integration problem
          Daniel Bevenius Master

           

          Can somebody telll me what Jar shall I use?

          Sounds like you have the wrong version of aqapi13.jar. Did you manage to get the the quickstart working or did you get the same error?

          Regards,

          /Daniel


          • 2. Re: Oracle AQ integration problem
            Stanislav Zelivinski Newbie

            Hi Daniel,

            Thanks for responding.

            I made some progress. The message now is read from Oracle but I have strange behavior on ESB side. That what I see in console:

            12:15:39,036 INFO [JmsConnectionPool] Received NamingException, refreshing context.
            12:15:40,035 WARN [MessageAwareListener] Error processing courier, backing off for 32000 milliseconds
            12:16:12,045 INFO [JmsConnectionPool] Received NamingException, refreshing context.
            12:16:13,044 WARN [MessageAwareListener] Error processing courier, backing off for 32000 milliseconds
            12:16:25,948 INFO [JmsConnectionPool] Received NamingException, refreshing context.
            12:16:25,948 INFO [ServiceInvoker] Unresponsive EPR: JMSEpr [ PortReference < <wsa:Address jms://localhost:1099/B/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.oracle.aq.password : aq/>, <wsa:ReferenceProperties jbossesb:java.naming.oracle.aq.instance : DCAPES/>, <wsa:ReferenceProperties jbossesb:java.naming.oracle.aq.server : 20.4.113.30/>, <wsa:ReferenceProperties jbossesb:java.naming.oracle.aq.schema : aq/>, <wsa:ReferenceProperties jbossesb:java.naming.oracle.aq.port : 1522/>, <wsa:ReferenceProperties jbossesb:java.naming.oracle.aq.user : aq/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost:1099/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:java.naming.oracle.aq.driver : thin/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : QueueConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] for message: header: [ ]
            12:16:25,964 INFO [ServiceInvoker] Delivering message [header: [ ]] to RDLVRQ.

            and this is exception from server log:

            2009-10-06 12:10:16,932 DEBUG [org.jboss.soa.esb.listeners.message.MessageAwareListener] Courier Exception
            org.jboss.soa.esb.couriers.CourierException: Unable to create Message Consumer
            at org.jboss.internal.soa.esb.couriers.JmsCourier.pickupPayload(JmsCourier.java:419)
            at org.jboss.internal.soa.esb.couriers.JmsCourier.pickup(JmsCourier.java:399)
            at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:228)
            at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:204)
            at org.jboss.soa.esb.listeners.message.MessageAwareListener.waitForEventAndProcess(MessageAwareListener.java:302)
            at org.jboss.soa.esb.listeners.message.MessageAwareListener.doRun(MessageAwareListener.java:258)
            at org.jboss.soa.esb.listeners.lifecycle.AbstractThreadedManagedLifecycle.run(AbstractThreadedManagedLifecycle.java:115)
            at java.lang.Thread.run(Thread.java:595)
            Caused by: org.jboss.soa.esb.couriers.CourierServiceBindException: Failed to get JMS Session from pool.
            at org.jboss.internal.soa.esb.couriers.JmsCourier.getJmsSession(JmsCourier.java:160)
            at org.jboss.internal.soa.esb.couriers.JmsCourier.createMessageConsumer(JmsCourier.java:497)
            at org.jboss.internal.soa.esb.couriers.JmsCourier.pickupPayload(JmsCourier.java:411)
            ... 7 more
            Caused by: javax.naming.NameNotFoundException: QueueConnectionFactory not bound
            at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
            at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
            at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
            at org.jnp.server.NamingServer.lookup(NamingServer.java:296)
            at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:585)
            at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
            at sun.rmi.transport.Transport$1.run(Transport.java:153)
            at java.security.AccessController.doPrivileged(Native Method)
            at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
            at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
            at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
            at java.lang.Thread.run(Thread.java:595)
            at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
            at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
            at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
            at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667)
            at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
            at javax.naming.InitialContext.lookup(InitialContext.java:351)
            at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.initConnection(JmsConnectionPool.java:509)
            at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.getSession(JmsConnectionPool.java:214)
            at org.jboss.internal.soa.esb.couriers.JmsCourier.getJmsSession(JmsCourier.java:158)
            ... 9 more
            2009-10-06 12:10:16,932 WARN [org.jboss.soa.esb.listeners.message.MessageAwareListener] Error processing courier, backing off for 80
            2009-10-06 12:10:19,557 DEBUG [org.jbpm.job.executor.JobExecutorThread] acquiring jobs for execution...

            I will greatly appreciate any help.

            • 3. Re: Oracle AQ integration problem
              Daniel Bevenius Master

               

              Caused by: javax.naming.NameNotFoundException: QueueConnectionFactory not bound
              at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
              at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
              at org.jnp.server.NamingServer.getObject(NamingServer.java:543)

              Can you check that you have a connection factory bound with the name QueueConnectionFactory by using the jmx-console (http://localhost:8080/jms-console)?
              This would be configured in deploy/jboss-messaging.sar/connection-factories-service.xml if you are running JBoss AS 4.2.3 and using JBoss Messaging.

              Regards,

              /Daniel

              • 4. Re: Oracle AQ integration problem
                Stanislav Zelivinski Newbie

                Daniel,

                Thanks a lot for response.

                I changed QueueConnectionFactory to ConnectionFactory yesterday and now it is working. Somebody needs to change the
                jbossesb-4.5.GA\samples\quickstarts\helloworld_action\oracle-aq\jboss-esb.xml file in order to reflect connection factory that is in the default server configuration binded in JNDI tree.

                Stas

                • 5. Re: Oracle AQ integration problem
                  Daniel Bevenius Master

                  Hi Stas,

                  glad to hear you have this working!


                  Somebody needs to change the
                  jbossesb-4.5.GA\samples\quickstarts\helloworld_action\oracle-aq\jboss-esb.xml file in order to reflect connection factory that is in the default server configuration binded in JNDI tree.

                  I'll make sure this is updated. Thanks for letting us know.

                  Regards,

                  /Daniel