5 Replies Latest reply: Oct 15, 2012 7:01 PM by Arik RSS

    Unable to receive message from an Asynchronous service - BPEL

    kiransaravi
      Hi

      I had developed a simple asynchronous BPEL Composite that takes in two parameters(firstName, lastName) and returns back fullName.
      I had used a wait activity(for 30 seconds) in the BPEL , after which the two inputs are concatenated, and returned finally. I could test this successfully thru EM, and check the response in the Flow Trace.

      The problem is occuring when I'm using this async service in another BPEL.
      In another BPEL(which is synchronous), i wanted to use this service, so I used an invoke activity to invoke it, and receive activity to get the response.
      But, I'm not getting the final response. Instead, getting the following error after some time(defenitely longer than 30 seconds which is the wait for the async service. Trace given at last)
      I think the problem is with the correlation of the response with the req, but the documentation says correlation is automatically enforced with ws-addressing and no need to correlate seperately. So, I haven't done anything extra for correlation. I tried with both transaction properties of BPEL (required and requiresNew), but none could solve. Please help me in this

      I checked the flow trace, and it is stopping after the async service invocation activity.
      Here is the BPEL Flow Trace

      ReceiveAsyncResp (pending)
      Waiting for the expiry time "9/20/12 4:55 PM".
      Waiting for "callback" from "FullNameAsyncService". Asynchronous callback.
      The transaction was rolled back. The work performed for bpel instance "310002" was rolled back, but the audit trail has been saved for this instance.If this is a sync request, please resubmit the request from the client. If it is an async request, please recover from the recovery console by resubmitting the invoke message.The transaction was rolled back. The work performed for bpel instance "310002" was rolled back, but the audit trail has been saved for this instance.If this is a sync request, please resubmit the request from the client. If it is an async request, please recover from the recovery console by resubmitting the invoke message


      Here is the log message(highlighted for easy readability)
      -------------------------------------------------------------------
      [2012-09-20T16:53:33.718+05:30] [soa_server1] [NOTIFICATION] [] [oracle.integration.platform.blocks.tenant] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [WEBSERVICE_PORT.name: BPELProcessForAsyncUsage_pt] [APP: soa-infra] [composite_name: UsingAsyncService] [J2EE_MODULE.name: fabric] [component_instance_id: 310002] [component_name: BPELProcessForAsyncUsage] [J2EE_APP.name: soa-infra] [WEBSERVICE.name: bpelprocessforasyncusage_client_ep] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] NM or Event does not contain property, apps.context.header or fabric.enterpriseId
      [2012-09-20T16:54:19.453+05:30] [soa_server1] [ERROR] [] [oracle.soa.bpel.engine.delivery] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [WEBSERVICE_PORT.name: BPELProcessForAsyncUsage_pt] [APP: soa-infra] [composite_name: UsingAsyncService] [J2EE_MODULE.name: fabric] [J2EE_APP.name: soa-infra] [WEBSERVICE.name: bpelprocessforasyncusage_client_ep] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] No response found for the reply for conversation id urn:9B8F42F0031511E2BFF01541EF21AC0F
      [2012-09-20T16:54:19.812+05:30] [soa_server1] [NOTIFICATION] [] [oracle.wsm.agent.WSMAgent] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [WEBSERVICE_PORT.name: BPELProcessForAsyncUsage_pt] [APP: soa-infra] [composite_name: UsingAsyncService] [J2EE_MODULE.name: fabric] [J2EE_APP.name: soa-infra] [WEBSERVICE.name: bpelprocessforasyncusage_client_ep] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] Message Type is normalized, exiting agent.processFault()
      [2012-09-20T16:54:19.812+05:30] [soa_server1] [NOTIFICATION] [] [oracle.wsm.agent.WSMAgent] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [WEBSERVICE_PORT.name: BPELProcessForAsyncUsage_pt] [APP: soa-infra] [composite_name: UsingAsyncService] [J2EE_MODULE.name: fabric] [J2EE_APP.name: soa-infra] [WEBSERVICE.name: bpelprocessforasyncusage_client_ep] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] Message Type is normalized, exiting agent.processFault()
      [2012-09-20T16:54:19.812+05:30] [soa_server1] [NOTIFICATION] [] [oracle.integration.platform.blocks.tenant] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [WEBSERVICE_PORT.name: BPELProcessForAsyncUsage_pt] [APP: soa-infra] [composite_name: UsingAsyncService] [J2EE_MODULE.name: fabric] [J2EE_APP.name: soa-infra] [WEBSERVICE.name: bpelprocessforasyncusage_client_ep] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] NM or Event does not contain property, apps.context.header or fabric.enterpriseId
      [2012-09-20T16:54:20.312+05:30] [soa_server1] [ERROR] [OWS-04086] [oracle.webservices.service] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [APP: soa-infra] [composite_name: UsingAsyncService] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] javax.xml.rpc.soap.SOAPFaultException: *Waiting for response has timed out. The conversation id is null. Please check the process instance for detail.[[*
           at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.generateSoapFaultException(WebServiceEntryBindingComponent.java:1193)
           at oracle.integration.platform.blocks.soap.WebServiceEntryBindingComponent.processIncomingMessage(WebServiceEntryBindingComponent.java:971)
           at oracle.integration.platform.blocks.soap.FabricProvider.processMessage(FabricProvider.java:113)
           at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:1187)
           at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:1112)
           at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:581)
      ....................
      ]]
      [2012-09-20T16:54:20.421+05:30] [soa_server1] [ERROR] [OWS-04115] [oracle.webservices.service] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0:2] [APP: soa-infra] [composite_name: UsingAsyncService] [TARGET: /Farm_soa_domain/soa_domain/soa_server1/soa-infra] [TARGET_TYPE: oracle_soainfra] An error occurred for port: FabricProvider: javax.xml.rpc.soap.SOAPFaultException: Waiting for response has timed out. The conversation id is null. Please check the process instance for detail..
      [2012-09-20T16:54:20.500+05:30] [AdminServer] [ERROR] [] [oracle.webservices.jaxws] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0] [APP: em] [TARGET: /Farm_soa_domain/soa_domain/AdminServer/em] [TARGET_TYPE: j2ee_application] Error while invoking endpoint "http://ravi:8001/soa-infra/services/Partition4MrPai/UsingAsyncService/bpelprocessforasyncusage_client_ep" from client; Security Subject: Administrators
      [2012-09-20T16:54:20.531+05:30] [AdminServer] [NOTIFICATION] [] [oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0] [APP: em] [TARGET: /Farm_soa_domain/soa_domain/AdminServer/em] [TARGET_TYPE: j2ee_application] Dispatch.invoke failed.Exception stack trace written to trace file.
      [2012-09-20T16:54:20.578+05:30] [AdminServer] [ERROR] [EM-00453] [oracle.sysman.emas.model.wsmgt.WSTestModel] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0] [APP: em] [TARGET: /Farm_soa_domain/soa_domain/AdminServer/em] [TARGET_TYPE: j2ee_application] Failed to invoke operation
      [2012-09-20T16:54:20.578+05:30] [AdminServer] [ERROR] [EM-00453] [oracle.sysman.emas.view.wsmgt.WSView] [host: rsavirig-idc] [nwaddr: 10.10.10.10] [tid: [ACTIVE].ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: 3f3d2d8955322f32:3a1f20bc:139e2cf6c4c:-8000-0000000000000280,0] [APP: em] [TARGET: /Farm_soa_domain/soa_domain/AdminServer/em] [TARGET_TYPE: j2ee_application] Failed to invoke operation
        • 1. Re: Unable to receive message from an Asynchronous service - BPEL
          Arik
          Hi,

          First of all check this process without the wait activity.
          Verify: 1. The asynch process delivery property is set to asynch.persist. 2. The synch process transaction property is set to requireNew.
          If it still doesn't work, post your process or send it to my mail.
          (Correlation set is not the issue here)

          Arik
          • 2. Re: Unable to receive message from an Asynchronous service - BPEL
            Sunil907-Oracle
            You need to implement correlation id for invoke/receive activity then only you can get response back to your BPEL.
            • 3. Re: Unable to receive message from an Asynchronous service - BPEL
              SantoshHemashekar
              Hi,

              If the correlation doesn't work then you can increase SyncMaxWaitTime which is by default 45 sec. The SyncMaxWaitTime property can be set through BPEL console.
              i.e Soa-infra-->SoaAdministration-->BPEL properties and search SyncMaxWaitTime and set to mores than 45 sec.
              • 4. Re: Unable to receive message from an Asynchronous service - BPEL
                kiransaravi
                Hi All
                Thanks for the reply.

                Making the transaction property of my sync process as requiresNew solved the problem.
                But why is this? Why not the transaction property required for the consuming BPEL not working?

                I went through the transaction and fault semantics (http://docs.oracle.com/cd/E21764_01/integration.1111/e10224/soa_transactions.htm) but could not understand.

                Also, the same happened when using fault management framework. There also, transaction property of BPEL processes as required did not work, but requiresNew worked.

                Can you please explain me a bit on this.

                Regards
                RaviKiran.
                • 5. Re: Unable to receive message from an Asynchronous service - BPEL
                  Arik
                  RaviKiran,

                  I agree that the explanation oracle provided in the attach link, is a bit confusing. The main goal there is to describe the behavior of processes, when there is a need to combine, or split the transactions within those processes (or in some cases the processes themselves).
                  The thing is - The default transaction for a synchronous process is requiresNew. That was until version 11.1.1.6. On this last version, you are asking to enter a Transaction parameter when creating a new synchronous bpel process. The default value being prompt is required and that's what causing the problem – You automatically accept the default.
                  The assumption is, that developing bpel processes, should come with understanding of all those behaviors.
                  The problem for my understanding is that some of those behaviors were not so cleared until now.

                  Arik