3 Replies Latest reply: Nov 22, 2012 3:25 AM by 975124 RSS

    Automator, JMS , QUEUE, ERROR "No transaction asociated with request"

    Lucas Andres Muñoz
      No transaction asociated with request.

      I have a little problem that may be someone know how to resolve it.
      I have in OSM a task that have inside 2 automator, an Xquery Sender to send a message to a queue and a Xquery Automator whit a External Event Receiver to catch the answer to the first automator.
      The configuration of the Xquery Sender pulg-in is:

      https://skydrive.live.com/view.aspx?cid=0624CA7AD0DD9981&resid=624CA7AD0DD9981%21616

      And the configuration of the Xquery Automator is:

      https://skydrive.live.com/view.aspx?cid=0624CA7AD0DD9981&resid=624CA7AD0DD9981%21616

      I have another autoTask that put a message in the same queue than this,
      JNDI: nca/jms/crm_input and the external Event receiver read the answer of this message in the same queue, with the JNDI: nca/jms/crm_output.
      When I execute the first task this send the JMS to the queue correctly, but when I try to response to this message weblogic put and error and this plug-in can´t consume the message.

      /////////////////////////////////////the error////////////////////////////////////////
      >
      java.sql.SQLException: ORA-01422: la recuperaci¾n exacta devuelve un n•mero mayo
      r de filas que el solicitado
      ORA-06512: en "ORDERMGMT.OM_AUTOMATION_PKG", lÝnea 53
      ORA-06512: en lÝnea 1

      at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.ja
      va:70)
      at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:1
      33)
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
      :206)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
      at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)
      at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.
      java:191)
      at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableSta
      tement.java:950)
      at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
      nt.java:1223)
      at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrep
      aredStatement.java:3386)
      at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStat
      ement.java:3487)
      at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStat
      ement.java:3858)
      at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePrepa
      redStatementWrapper.java:1374)
      at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.jav
      a:98)
      at com.mslv.oms.dataaccesslayer.CallableProxy.executeStatement(Unknown S
      ource)
      at com.mslv.oms.dataaccesslayer.a.execute(Unknown Source)
      at com.mslv.oms.dataaccesslayer.CallableProxy.execute(Unknown Source)
      at com.mslv.oms.automation.plugin.AutomationDispatcherImpl.getClusterReq
      uestContext(Unknown Source)
      at oracle.communications.ordermanagement.cluster.message.ClusterMessageH
      andlerBean.onMessage(Unknown Source)
      at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:46
      6)
      at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDL
      istener.java:371)
      at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:
      327)
      at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4585)
      at weblogic.jms.client.JMSSession.execute(JMSSession.java:4271)
      at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3747)
      at weblogic.jms.client.JMSSession.access$000(JMSSession.java:114)
      at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:509
      6)
      at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.jav
      a:21)
      at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
      at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)
      <13/07/2011 03:47:20 PM GMT-05:00> <Error> <oms> <BEA-000000> <core.logSQLExcept
      ion: SQL Exception 1.422 : ORA-01422: la recuperaci¾n exacta devuelve un n•mero
      mayor de filas que el solicitado
      ORA-06512: en "ORDERMGMT.OM_AUTOMATION_PKG", lÝnea 53
      ORA-06512: en lÝnea 1

      java.sql.SQLException: ORA-01422: la recuperaci¾n exacta devuelve un n•mero mayo
      r de filas que el solicitado
      ORA-06512: en "ORDERMGMT.OM_AUTOMATION_PKG", lÝnea 53
      ORA-06512: en lÝnea 1

      at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.ja
      va:70)
      at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:1
      33)
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
      :206)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
      Truncated. see log file for complete stacktrace
      >
      <13-jul-2011 3:47:20,952 GMT-05:00 PM> <ERROR> <plugin.AutomationDispatcherImpl>
      <ExecuteThread: '13' for queue: 'oms.automation'> <Error on creating cluster re
      quest context>
      com.mslv.oms.automation.AutomationException: Fail to find the automationContext
      for the JMS message due to
      at com.mslv.oms.automation.plugin.AutomationDispatcherImpl.getClusterReq
      uestContext(Unknown Source)
      at oracle.communications.ordermanagement.cluster.message.ClusterMessageH
      andlerBean.onMessage(Unknown Source)
      at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:46
      6)
      at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDL
      istener.java:371)
      at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:
      327)
      at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4585)
      at weblogic.jms.client.JMSSession.execute(JMSSession.java:4271)
      at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3747)
      at weblogic.jms.client.JMSSession.access$000(JMSSession.java:114)
      at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:509
      6)
      at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.jav
      a:21)
      at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
      at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)
      Caused by: com.mslv.oms.dataaccesslayer.ProxyException: ORA-01422: la recuperaci
      ¾n exacta devuelve un n•mero mayor de filas que el solicitado
      ORA-06512: en "ORDERMGMT.OM_AUTOMATION_PKG", lÝnea 53
      ORA-06512: en lÝnea 1
      Nested Exception: ORA-01422: la recuperaci¾n exacta devuelve un n•mero mayor de
      filas que el solicitado
      ORA-06512: en "ORDERMGMT.OM_AUTOMATION_PKG", lÝnea 53
      ORA-06512: en lÝnea 1
      Nested Exception: java.sql.SQLException: ORA-01422: la recuperaci¾n exacta devue
      lve un n•mero mayor de filas que el solicitado
      ORA-06512: en "ORDERMGMT.OM_AUTOMATION_PKG", lÝnea 53
      ORA-06512: en lÝnea 1

      at com.mslv.oms.dataaccesslayer.a.execute(Unknown Source)
      at com.mslv.oms.dataaccesslayer.CallableProxy.execute(Unknown Source)
      ... 13 more
      Caused by: java.sql.SQLException: ORA-01422: la recuperaci¾n exacta devuelve un
      n•mero mayor de filas que el solicitado
      ORA-06512: en "ORDERMGMT.OM_AUTOMATION_PKG", lÝnea 53
      ORA-06512: en lÝnea 1

      at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.ja
      va:70)
      at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:1
      33)
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
      :206)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
      at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)
      at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.
      java:191)
      at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableSta
      tement.java:950)
      at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
      nt.java:1223)
      at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrep
      aredStatement.java:3386)
      at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStat
      ement.java:3487)
      at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStat
      ement.java:3858)
      at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePrepa
      redStatementWrapper.java:1374)
      at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.jav
      a:98)
      at com.mslv.oms.dataaccesslayer.CallableProxy.executeStatement(Unknown S
      ource)
      ... 15 more
      <13/07/2011 03:47:20 PM GMT-05:00> <Error> <oms> <BEA-000000> <plugin.Automation
      DispatcherImpl: Error on creating cluster request context
      com.mslv.oms.automation.AutomationException: Fail to find the automationContext
      for the JMS message due to
      at com.mslv.oms.automation.plugin.AutomationDispatcherImpl.getClusterReq
      uestContext(Unknown Source)
      at oracle.communications.ordermanagement.cluster.message.ClusterMessageH
      andlerBean.onMessage(Unknown Source)
      at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:46
      6)
      at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDL
      istener.java:371)
      at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:
      327)
      Truncated. see log file for complete stacktrace
      com.mslv.oms.dataaccesslayer.ProxyException: ORA-01422: la recuperaci¾n exacta d
      evuelve un n•mero mayor de filas que el solicitado
      ORA-06512: en "ORDERMGMT.OM_AUTOMATION_PKG", lÝnea 53
      ORA-06512: en lÝnea 1
      Nested Exception: ORA-01422: la recuperaci¾n exacta devuelve un n•mero mayor de
      filas que el solicitado
      ORA-06512: en "ORDERMGMT.OM_AUTOMATION_PKG", lÝnea 53
      ORA-06512: en lÝnea 1
      Nested Exception: java.sql.SQLException: ORA-01422: la recuperaci¾n exacta devue
      lve un n•mero mayor de filas que el solicitado
      ORA-06512: en "ORDERMGMT.OM_AUTOMATION_PKG", lÝnea 53
      ORA-06512: en lÝnea 1

      at com.mslv.oms.dataaccesslayer.a.execute(Unknown Source)
      at com.mslv.oms.dataaccesslayer.CallableProxy.execute(Unknown Source)
      at com.mslv.oms.automation.plugin.AutomationDispatcherImpl.getClusterReq
      uestContext(Unknown Source)
      at oracle.communications.ordermanagement.cluster.message.ClusterMessageH
      andlerBean.onMessage(Unknown Source)
      at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:46
      6)
      Truncated. see log file for complete stacktrace
      java.sql.SQLException: ORA-01422: la recuperaci¾n exacta devuelve un n•mero mayo
      r de filas que el solicitado
      ORA-06512: en "ORDERMGMT.OM_AUTOMATION_PKG", lÝnea 53
      ORA-06512: en lÝnea 1

      at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.ja
      va:70)
      at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:1
      33)
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
      :206)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
      Truncated. see log file for complete stacktrace
      >
      <13-jul-2011 3:47:20,962 GMT-05:00 PM> <ERROR> <message.ClusterMessageHandlerBea
      n> <ExecuteThread: '13' for queue: 'oms.automation'> <Failed to process cluster
      request due to ClusterRequestContext = NULL>
      <13/07/2011 03:47:20 PM GMT-05:00> <Error> <oms> <BEA-000000> <message.ClusterMe
      ssageHandlerBean: Failed to process cluster request due to ClusterRequestContext
      = NULL>
      <13/07/2011 03:47:20 PM GMT-05:00> <Warning> <EJB> <BEA-010065> <MessageDrivenBe
      an threw an Exception in onMessage(). The exception was:
      java.lang.RuntimeException: No transaction associated with request.
      java.lang.RuntimeException: No transaction associated with request
      at oracle.communications.ordermanagement.cluster.message.ClusterMessageH
      andlerBean.onMessage(Unknown Source)
      at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:46
      6)
      at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDL
      istener.java:371)
      at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:
      327)
      at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4585)
      Truncated. see log file for complete stacktrace
      >
      <13/07/2011 03:47:20 PM GMT-05:00> <Warning> <EJB> <BEA-010216> <The Message-Dri
      ven EJB: CerrarPedidoAutoTask.CerrarPedidoAutoTask.obtenerMDB is throwing except
      ion when processing the messages. Delivery failed after 334 attempts. The EJB co
      ntainer will suspend the message delivery for 60 seconds before retry.>
      ////////////////////////////end of the error///////////////////////////////////////
      Thanks for you help. This problem took me 3 days trying to fix it and still wrong

      Regards.

      Lucas.
        • 1. Re: Automator, JMS , QUEUE, ERROR "No transaction asociated with request"
          user491422 - oracle
          Lucas;

          It looks like OSM is encountering this error as is tries to look up the correlation information for the response message.

          When OSM receives a message on a queue that is being listened on by an automation plugin, it uses the correlation information specified for the automation plugin to extract the relevant information from the incoming JMS message and use that to determine the task instance that send the original request that corresponds to this response.

          In your configuration you specified the default correlation behavior of using JMSCorrelationID which means that OSM will automatically generate a correlation id in the outbound message and then expect the same value to appear in the JMSCorrelationID on the response message. It is up to the sender of the response message (whatever logic is listening to your crm_input queue) to copy the JMSCorrelationID value from the message it receives from OSM to the message it returns to OSM via the crm_output queue.

          1. Use Design Studio to completely undeploy your cartridge. This will clear out any old/invalid correlation id values and give you a fresh start.
          2. Set redelivering values to appropriate numbers on your crm_input and crm_output queues (actually check them for all OSM queues). This will prevent you in testing mode from having the same message redelivered over and over again and just plugging up your logs. I would recommend while developing to set redelivery to 2 or 3 with a delay of 3 seconds. For load testing and production a value of 20 retries with 10 seconds between is more appropriate.
          3. You mentioned you "have another autoTask that put a message in the same queue than this". I'm not sure what queue you are referring to, but for now get rid of that automated task. One of the things that can confuse OSM is if you have multiple automation plugins listening for responses on the same queue and you do not have your message selectors setup correctly. Best to try getting this working without that extra automation plugin for now.
          4. Ensure the listener on crm_input is correctly copying the correlation id value as I described above.

          Let me know if the above helped.

          Thanks,

          Brian.
          • 2. Re: Automator, JMS , QUEUE, ERROR "No transaction asociated with request"
            Lucas Andres Muñoz
            Hi Brian;

            I dont Know why but I replace de Eclipse from I was doing Deploy and from where a I was sending the response to the queue and everything is working perfect Now. Thank's for your help again.

            Lucas.
            • 3. Re: Automator, JMS , QUEUE, ERROR "No transaction asociated with request"
              975124
              Hi Brian,

              I am facing the same issue, when I am using xml body property correlation

              if I am using any direct xpath, like /data/id--- I am getting the response in receiver.
              But if I am using any xpath function like concat(/data/id,'100'), the I am getting the issue.
              Please help on this.


              <22-Nov-2012 6:20:17,361 KST PM> <ERROR> <message.ClusterMessageHandlerBean> <ExecuteThread: '13' for queue: 'oms.automation'> <Failed to process clus
              ter request due to ClusterRequestContext = NULL>
              <Nov 22, 2012 6:20:17 PM KST> <Error> <oms> <BEA-000000> <message.ClusterMessageHandlerBean: Failed to process cluster request due to ClusterRequestCo
              ntext = NULL>
              <22-Nov-2012 6:20:17,384 KST PM> <ERROR> <message.ClusterMessageHandlerBean> <ExecuteThread: '14' for queue: 'oms.automation'> <Failed to process clus
              ter request due to ClusterRequestContext = NULL>
              <Nov 22, 2012 6:20:17 PM KST> <Error> <oms> <BEA-000000> <message.ClusterMessageHandlerBean: Failed to process cluster request due to ClusterRequestCo
              ntext = NULL>