4 Replies Latest reply: Feb 11, 2013 4:53 PM by Kathar RSS

    Customizing error message that goes to IP_IN_QUEUE

    Kathar
      We are reading IP_IN_QUEUE from soa composite to find out the errors happened at B2B processing and then going to B2B_InstanceMessage table to read the payload associated with the message id to find out the order number to determine the failed transaction.

      Is this the only way to go to B2B_InstanceMessage to get the order number to find out the failed transaction? Or is there a way to customize the error message going to IP_IN_QUEUE to send transaction specific id(like order number)? Thanks in advance.

      Kathar
        • 1. Re: Customizing error message that goes to IP_IN_QUEUE
          Anuj Dwivedi
          Kathar,
          is there a way to customize the error message going to IP_IN_QUEUE
          No, it cannot be customized as B2B generates it automatically as per a predefined format.
          Is this the only way to go to B2B_InstanceMessage to get the order number to find out the failed transaction?
          You should use xpath functionality of B2B 11g. In the document definition, under xpath tab, you may provide the xpath of Order number and at runtime B2B will evaluate the XPATH and store it's value in xpath_value column. So to get order number, you need not to query the payload. You may provide three xpath's at max for a doc def. You may refer -

          http://docs.oracle.com/cd/E23943_01/user.1111/e10229/b2b_documents.htm#CHDDBEHB

          It is also not recommended to query B2B_INSTANCEMESSAGE view directly from any application as it's definition may keep on changing over the release. You should use B2B INSTANCE MESSAGE java API instead -

          http://docs.oracle.com/cd/E23943_01/apirefs.1111/e18158/toc.htm

          Regards,
          Anuj
          • 2. Re: Customizing error message that goes to IP_IN_QUEUE
            Kathar
            Thanks Anuj, We are able to set the value xpath expression and retrieve it from our error handler. However we are not able to get the value through InstancemessageUtil API. We are using InstancemessageUtil API java code inside java embed activity in bpel. This java embed activity causes the bpel instance becomes "running" status forever and the following exception is reported in the log file:

            ORABPEL-02183

            JTA transaction is not in active state.
            bpel engine can not execute activities without an active transaction. please debug the invoked subsystem on why the tranasction is not in active status. the bpel instance id is "210,901".
            The reason was The execution of this instance "210901" for process "default/ErrorHandler!1.0*soa_8da8ab65-dea3-4948-b1c4-f6f320337f4b" is supposed to be in an active jta transaction, the current transaction status is "NO_TRANSACTION" .
            Consult the system administrator regarding this error.

            We increased the timeout settings but still we are getting the same error. Please help us.

            Thanks,
            Kathar
            • 3. Re: Customizing error message that goes to IP_IN_QUEUE
              Anuj Dwivedi
              Kathar,

              Can you paste the code here (as it is from java embedding activity)?

              Regards,
              Anuj
              • 4. Re: Customizing error message that goes to IP_IN_QUEUE
                Kathar
                Hi Anuj,
                Below is the code that i am using:

                try{  
                oracle.tip.b2b.utility.InstanceMessageUtil util = new oracle.tip.b2b.utility.InstanceMessageUtil();
                java.util.Vector v = util.getInstanceMessagesForMsgId("35343036383230303337363231373836");
                }catch(java.lang.Exception ex){
                ex.printStackTrace();
                }

                I am using b2b.jar and wlthint3client.jar; Not weblogic.jar.

                Thanks.

                Kathar