OSB Async Reponse

Hi ,
We have a requirement where BPEL is Async Process .OSB calls async BPEL process which works fine for request line.Where as for response from the Async BPEL is not able to catch in OSB Proxy service.
we went for Async BPEL since at first instant of request we will send directly output response with acknowledgement in OSB.Mean while BPEL wil proces the records insertion into DB using storeproc since it takes time to process the response from the SP we want to send reply(response) to proxy service later.
Don eon http protocol.
Please help us to provide solution or clue for the requirement scenario in OSB .
Edited by: olety on Oct 19, 2011 5:00 AM

Hi ,
Please provide us solution to resolve this issue..
Any Updates or clues ...............

Similar Messages

  • Newbie - OSB async req-res

    Hi,
    Can someone please point to some resource to learn OSB asynchronous reqest-response pattern?
    Thanks in advance
    Rohit

    Thanks Eric,
    Sorry, I should have been more specific. I am looking for an example of JMS request/response using correlation id
    Thank you,
    Rohit

  • WS-ReliableMessaging using OSB WS protocol

    Hi All,
    We have a requirement to implement WSRM in OSB.
    Our invocation pattern is
    BPEL(Async)=> OSB(ASync)=>External APP(Sync)
    We have chosen WS protocol and WSRM policies for both proxy and business services.
    What I obseved is BS is sending WSRM payload to target application which is unwanted.
    Obviously target application doesn't understand WSRM payload.BS has to discard this handshaking command and send ack to PS WSRM layer.
    Anybody has worked on this WSRM in OSB?
    BS is sending below payload to target application
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
    <wsa:To xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://soa.part.com:7201/soa-infra/services/default/Order/orderimport_client_ep</wsa:To>
    <wsa:FaultTo xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
    <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
    </wsa:FaultTo>
    <wsa:MessageID xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">uuid:AdminServer:72c210997f83a732:-3e03b3bf:134156f2f57:-64e8</wsa:MessageID>
    <wsa:Action xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence</wsa:Action>
    <wsa:ReplyTo xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
    <wsa:Address>http://osb.part.com:7101/alsb/ws/_async/AsyncResponseService</wsa:Address>
    <wsa:ReferenceParameters xmlns:serviceidentity="http://www.bea.com/ServiceIdentity"><serviceidentity:ServiceIdentity xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:serviceidentity="http://www.bea.com/ServiceIdentity">
    <serviceidentity:ServerName>AdminServer</serviceidentity:ServerName>
    <serviceidentity:ServiceName>weblogic.wsee.conversation.msg.cluster.service</serviceidentity:ServiceName>
    </serviceidentity:ServiceIdentity>
    </wsa:ReferenceParameters>
    </wsa:ReplyTo>
    </env:Header>
    *<env:Body xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm">*
    *<wsrm:CreateSequence>*
    *<wsrm:AcksTo xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm"><wsa:Address>http://osb.part.com:7101/alsb/ws/_async/AsyncResponseService</wsa:Address>*
    *<wsa:ReferenceParameters xmlns:serviceidentity="http://www.bea.com/ServiceIdentity">*
    *<serviceidentity:ServiceIdentity xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility">*
    *<serviceidentity:ServerName>AdminServer</serviceidentity:ServerName>*
    *<serviceidentity:ServiceName>weblogic.wsee.conversation.msg.cluster.service</serviceidentity:ServiceName>*
    *</serviceidentity:ServiceIdentity></wsa:ReferenceParameters></wsrm:AcksTo>*
    *</wsrm:CreateSequence>*
    *</env:Body>*
    </env:Envelope>
    Regards,
    Praveen
    Edited by: Venkat K.V on Dec 20, 2011 4:10 AM

    The 8.1 version of reliable messaging does not conform to the WS-ReliableMessaging specification, as that specification was not available at the time of 8.1 development. The next major release of WLS will contain a full WS-ReliableMessaging implementation.

  • File -- IDOC scenario using XI 3.0

    Hi
       I tried out a simple flat file to IDOC scenario using XI as the middleware and tried to post documents of type CREMAS03 on the backend R/3 system.
    Now, I see that there is an IDOC number generated in the XI layer by the IDOC adapter. This IDOC number is seen under <SAP:DOCNUM>XXXXXXXXXX</SAP:DOCNUM>in the
    Response-->IDOCOUTBOUND section of the pipeline in SXMB_MONI
    According to SAP documentation :
    <b>To enable you to select IDocs in the target system later on, the system transfers the message GUID and the IDoc number in the ARCKEY field of the IDoc control record.</b>
    Now, I do find the XI msgid given as arckey in the control record of the Inbound in the target R/3 backend system. But I cannot find the XI IDOC number being cross referenced in the control record of the IDOC in the R/3 backend.
    1.Is there a way to cross reference the IDOC number in XI with the IDOC number in the R/3 backend ( we have two different IDOC numbers, right ) i.e a IDOC number to IDOC number cross referencing in this File-->IDOC inbound into the R/3 system scenario involving XI
    2. In the XI box, do we get as a part of async.reponse from the R3 system, the IDOC number that is created within the R3 system ? This would serve directly as a cross reference. Or do we have to indirectly query EDIDC table in the R/3 backend with the arckey value = msgid in XI - to retrieve the IDOC number created in the R3 backend ?
    Thank you in advance for your time.

    Hi,
    Pls look into following link about Acknowledgement.
    http://help.sap.com/saphelp_nw04/helpdata/en/f4/8620c6b58c422c960c53f3ed71b432/content.htm
    Pls note that , you can't get/receive the Acknowledgement for Sender File Adapter. Because File System acts as an Async system. But you can get the Idoc response and you can write it into another file. For this you need to use BPM.
    Hope this helps..
    Regards,
    Moorthy

  • How can I monitor async requests in OSB

    Hello everybody,
    I have to set an async with response call to my legacy application. But as OSB does not support async calls with response yet, I'll use this approach described here: http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/jpdtransport/transport.html#wp1102152 that tells me to set up one proxy that will make the request to the legacy application, and another proxy to handle the callback (my application will call this one manually when it finishes the process).
    But, doing this, I'll have two distinct transactions, two distinct proxies, and no "natural" correlation between them. I need to set some correlation that allows me to create one SLA alert when the requisition takes more than X minutes. I already thought on sending the transaction id ($messageID) to my legacy application and have it returned to the response proxy. But doing this, I would still have no link between the information (when started, etc) of request proxy.
    Well, that is what I need to get done. Some way on measuring the execution time (in SLA Alerts) of my service. How this could be done?
    Thanks a lot guys.

    I have to set an async with response call to my legacy application. But as OSB does not support async calls with response yet, I'll use this approach described here: http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/jpdtransport/transport.html#wp1102152 that tells me to set up one proxy that will make the request to the legacy application, and another proxy to handle the callback (my application will call this one manually when it finishes the process).
    But, doing this, I'll have two distinct transactions, two distinct proxies, and no "natural" correlation between them. I need to set some correlation that allows me to create one SLA alert when the requisition takes more than X minutes. I already thought on sending the transaction id ($messageID) to my legacy application and have it returned to the response proxy. But doing this, I would still have no link between the information (when started, etc) of request proxy.
    Well, that is what I need to get done. Some way on measuring the execution time (in SLA Alerts) of my service. How this could be done?What would be the transport of communication with legacy system (JMS)?
    1) OSB is efficient in stateless point to point invocation/message enrichment but this problem appears to be use case in orchestration which is better addressed by BPEL.
    2) SLA alerts in OSB are designed to work at a single proxy level. Using SLA alert framework in OSB for your use case is not possible.
    3) At other level OSB also does not expose metrics (http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/jmx_monitoring/concepts.html) that will allow you to do this type of correlation using external java program.
    My two cents
    Manoj

  • Osb 10.3 sync async bridge

    Hello guys,
    For a client I need to bridge a synchronous client call to a asynchronous business server.
    The OSB manual briefly mentions it is possible in 2 lines:
    "In sync-async bridging, a synchronous client issues a request to an asynchronous provider. For this pattern, Oracle Service Bus provides the capability to publish a message on one JMS queue and configure a second JMS queue for the response, with a timeout value for
    listening for the response. This type of service appears as a synchronous service to the service consumer."
    But I have no clue how to do it. And I dont find any additional information.
    I hope someone can set me on the right path.
    Regards,
    Alex

    hi,
    [Re: BPM SA bridge timeout;
    might be some help.
    Siddhesh

  • Defining Multiple operations for async calls in OSB

    Hi,
    I have three Asynchronous BPEL processes- BPELProcessA, BPELProcessB and BPELProcessC
    I am trying to invoke BPELProcessB and BPELProcessC from BPELProcessA through an OSB Proxy service. I want to use a single proxy service to make calls to BPELProcessB and BPELProcessC from BPELProcessA . To do this I defined multiple operations in the wsdl of the proxy service. This is not working
    But I am able to implement the following
    1. If BPELProcessB and BPELProcessC are Synchronous, I am able to invoke BPELProcessB and BPELProcessC by defining multiple operations in the proxy service wsdl
    2. I am able to invoke and receive response from 1 Asynchronous BPEL process by defining 1 operation in the proxy service wsdl. I followed the approach described at [http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/bpelpmtransport/transport.html#wp1111338]. Does this mean for each asynchronous BPEL, I need a separate pair of OSBs for each async process ( 1 for request and 1 for callback)?
    Has anyone tried invoking multiple asynchronous processes by defining multiple operations in the wsdl?
    Kindly request every to give inputs

    Hi Eric
    Below is the flow and error we are getting:
    ProcessA is calling ProcessB and ProcessC through common OSB. In OSB we have created individual business services for ProcessB and ProcessC.I am using common Proxy service for calling these two Business Services using different operations.I have created one callback business service and Proxy service for ProcessA.
    I am successfully able to call BPEL processes, ProcessB and ProcessC, but during callback client activity these two BPEL processes are failing with below error and ProcessA is going in waiting on receive activity state:
    nested exception is:ORABPEL-00000
    Exception not handled by the Collaxa Cube system.
    An unhandled exception has been thrown in the Collaxa Cube system. The exception reported is: "ORABPEL-08010
    Failed get operation definition.
    Failed to get the WSDL operation definition of "onResult" in portType "{http://xmlns.oracle.com/AsyncBPELProcess}AsyncBPELProcessCallback".
    Please verify that operation "onResult" is defined in portType "{http://xmlns.oracle.com/AsyncBPELProcess}AsyncBPELProcessCallback".
         at com.collaxa.cube.ws.wsdl.WSDLUtils.getOperation(WSDLUtils.java:216)
         at com.collaxa.cube.ws.wsdl.WSDLUtils.getOperation(WSDLUtils.java:208)
         at com.collaxa.cube.ws.wsdl.WSDLManager.isOneWayOperation(WSDLManager.java:517)
         at com.collaxa.cube.engine.core.BaseCubeProcess.getOperationType(BaseCubeProcess.java:735)
         at com.collaxa.cube.engine.delivery.DeliveryHandler.getOperationType(DeliveryHandler.java:778)
         at com.collaxa.cube.engine.delivery.DeliveryHandler.post(DeliveryHandler.java:71)
         at com.collaxa.cube.ws.WSIFInvocationHandler.invokeLocalService(WSIFInvocationHandler.java:1338)
         at com.collaxa.cube.ws.WSIFInvocationHandler.invoke(WSIFInvocationHandler.java:287)
         at com.collaxa.cube.ws.WSInvocationManager.invoke2(WSInvocationManager.java:528)
         at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:248)
         at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__invoke(BPELInvokeWMP.java:829)
         at com.collaxa.cube.engine.ext.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:412)
         at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:199)
         at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3714)
         at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1657)
         at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:220)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:317)
         at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5787)
         at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1089)
         at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:589)
         at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:421)
         at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at com.evermind.server.ejb.interceptor.joinpoint.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:35)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:31)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.Subject.doAs(Subject.java:396)
         at com.evermind.server.ThreadState.runAs(ThreadState.java:695)
         at com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:34)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:50)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
         at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
         at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
         at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
         at CubeDeliveryBean_LocalProxy_4bin6i8.handleInvoke(Unknown Source)
         at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:141)
         at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:58)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
         at java.lang.Thread.run(Thread.java:595)
    Exception: ORABPEL-08010
    Failed get operation definition.
    Failed to get the WSDL operation definition of "onResult" in portType "{http://xmlns.oracle.com/AsyncBPELProcess}AsyncBPELProcessCallback".
    Please verify that operation "onResult" is defined in portType "{http://xmlns.oracle.com/AsyncBPELProcess}AsyncBPELProcessCallback".
    Handled As: com.collaxa.cube.CubeException

  • OSB: Proxy to proxy publish async

    Hi
    PS_1 publishes data to PS_2 (PS_2 wsdl has no outbound so it is asynch)
    I googled and I found following at http://victor-jan.blogspot.in/2012/06/osb-publish-routing-and-service-callout.html:
    Publish: Used for Request only scenarios where you don't expect a response back. The nature of Publish action (sync or async) will depend upon the target service you are invoking.
    Invoking an external service through a business service, then Publish action with Quality of Service(QoS) as "Best Effort" (default) will work like fire and forget and thread won't get blocked (async call).
    Invoking a local proxy service (proxy with transport protocol as "local") from another proxy using publish action then it would be a blocking call (synchronus call) and thread will get blocked untill the processing of local proxy finishes.
    The same information on multiple threads on forum.
    I changed proxy service PS_2 protocol to http and tested by publishing from PS_1.
    Then Created a business service over PS_2 and published from PS_1 to BS_2.
    All in vain. So is it that Proxy service to Proxy service Publish is IMPOSSIBLE in OSB?
    Can anyone confirm?
    Thanks and Regards
    Swapnil Kharwadkar

    Swapnil,
    Publish call will be blocking if QoS is set as Exactly-Once.
    If QoS is Best-Effort and target endpoint is a one-way proxy service then it is a blocking call (source proxy waits for target proxy message flow completion) and if QoS is Best-Effort and target endpoint is a request-response proxy service then control returns back to source proxy as soon as Request pipeline of target proxy message flow completes.
    Regards,
    Anuj

  • BPEL async calls OSB which calls BPEL async

    In this scenario, I use the bpel-10g transport with an opmn ULR to call the back-end BPEL process. The bpel-10g transport seems to be the only way to include the callback address. I'm getting an error like this:
    <fault><remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message transmission failure, response code: 500</summary>
    </part></remoteFault></fault>
    What must be done to correctly connect the back-end async BPEL process from OSB?
    Are there any tricks which must be used to connect the front-end async BPEL process to the OSB as well?
    I'm using OSB 10gR3 and BPEL 10.1.3.4.

    Hi ,
    Please provide us solution to resolve this issue..
    Any Updates or clues ...............

  • OSB can we make it Async

    Hi,
    Can you please let us know how to create an Async call in OSB? I believe it only supports Sync type of MEP so are there any workarounds? Appreciate your help....
    Thanks,
    SathyaP

    Hi,
    Hope this link helps you.
    http://download.oracle.com/docs/cd/E14571_01/doc.1111/e15866/soa.htm#BABECFDC
    Section 24.2.2
    Regards,
    Rahul

  • OSB Calling Async Service

    hi all,
    We have a requirement to call an external async service from OSB. Can anyone please point to the recommended approach.
    I have looked at the below example, but this talks about 'soa-transport', where as we are more interested in 'http' transport as this is an external web service. Can we follow the same approach for our use-case as well?
    http://www.xenta.nl/blog/2010/03/23/oracle-service-bus-invoke-asynchronous-webservices/
    We are using FMW PS4 throughout.
    Regards,
    Krishna

    Krishna,
    You are referring to the right link - http://www.xenta.nl/blog/2010/03/23/oracle-service-bus-invoke-asynchronous-webservices/
    You may implement async WS call in OSB by following the approach mentioned here.
    Regards,
    Anuj

  • How to do Async call in OSB message flow

    I am calling a service from OSB layer synchronously and when this service gives a response, I am forming another request with this response and storing it in a variable now I want to call another service asynchronously by using this variable. Service call out is not supporting one way call.
    Please suggest a suitable way to do this.

    Use publish action. It is designed fire and forget type of use-cases
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/modelingmessageflow.html
    Manoj

  • OSB and async BPEL Process

    Hi all,
    I have a problem configuring the osb to use an asynchronous bpel process.
    Made the following steps:
    1.) Created one Proxy Service for invoking the bpel process
    2.) Created one Proxy Service for callback
    3.) Created one Business Service which has the following config:
    General Configuration      
    Service Type: Web Service [...]
    Transport Configuration
    Protocol: bpel-10g
    Load Balancing Algorithm: none
    Endpoint URI      
    opmn://STSCHROE-de:6003/home/orabpel/eudlr/Antrag_pruefen
    Retry Count 0
    Retry Iteration Interval 30
    Retry Application Errors Yes
    BPEL-10G Transport Configuration      
    Role      Asynchronous Client
    Callback Proxy      EUDLR/ProxyService/AntragPruefenCallbackGateway
    Service Account EUDLR/BusinessService/SOA Suite
    Suspend Transaction? No
    Dispatch policy      default
    Products:
    Oracle Service Bus 10gR3
    Oracle SOA Suite 10.1.3.3.1
    Problem:
    I get the following Error, when I execute the proy service:
    The invocation resulted in an error: java.lang.reflect.UndeclaredThrowableException.
    The consolte window tells the following error
    22.01.2009 13:10:14 oracle.j2ee.rmi.RMIMessages EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER
    WARNUNG: Exception returned by remote server: {0}
    com.evermind.server.rmi.RMIConnectionException: Disconnected: com.oracle.bpel.client.AbstractIdentifier; local class incompatible: stream classdesc serialVersionUID = -4389351842028223514, local class serialVersionUID = 3174123903773674079
    at com.evermind.server.rmi.RmiCallQueue.notifyQueuedThreads(RmiCallQueue
    .java:70)
    at com.evermind.server.rmi.RMIClientConnection.notifyQueuedThreads(RMICl
    ientConnection.java:208)
    at com.evermind.server.rmi.RMIClientConnection.resetState(RMIClientConne
    ction.java:147)
    at com.evermind.server.rmi.RMIConnection.receiveDisconnect(RMIConnection
    .java:236)
    at com.evermind.server.rmi.RMIClientConnection.receiveDisconnect(RMIClie
    ntConnection.java:176)
    at com.evermind.server.rmi.RMIConnection.handleOrmiCommand(RMIConnection
    .java:208)
    at com.evermind.server.rmi.RMIClientConnection.processReceivedCommand(RM
    IClientConnection.java:276)
    at com.evermind.server.rmi.RMIConnection.handleCommand(RMIConnection.jav
    a:152)
    at com.evermind.server.rmi.RMIConnection.listenForOrmiCommands(RMIConnec
    tion.java:127)
    at com.evermind.server.rmi.RMIConnection.run(RMIConnection.java:107)
    at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExec
    utor.java:830)
    at java.lang.Thread.run(Thread.java:619)
    Is there a solution for this problem?

    You need to follow below steps...
    add a java parameter to the OSB server. Go to domains\osb_domain\bin folder and edit the setDomainEnv file and add this line to this file. set JAVA_PROPERTIES=-Dplatform.home=%WL_HOME% -Dwls.home=%WLS_HOME% -Dweblogic.home=%WLS_HOME% -Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0
    Step 2 is to replace the bpel jars in the bpel transport ear. Go folder osb_10.3\lib\transports and open bpel10gtransport.ear and replace the following jar files orabpel.jar, orabpel-common.jar , xmlparserv2.jar and oc4jclient.jar with the ones you can find in the soa suite 10.1.3 home.

  • Async call in OSB

    Hi,
    Our requirement is when the front end calls the proxy service, the proxy service should call the back end web service and give the response to front end service, This can be achieved.
    But the other requirement is in case if the back end service is down .. we need to keep on retrying till the back end is UP and then send the response back to front end(Or we can send the response when the front end calls again) . But the front end will not wait for the response. Front end will fire and forget. its proxy service responsibility to keep on trying for the back end service to be up and store/send the response to front end.
    Can we achieve this in OSB 11g? Or we need to go for BEPL.
    Please post the steps to achive this.

    As already being stated by @vladodias, OSB is better fit for stateless designs. If you need to keep the response until a later poll comes, you may be better off with BPEL.
    But not necessary.
    Consider this design:
    1. Front end calls OSB.
    2. OSB generates an unique token for the request and saves this request into an JMS queue. The token is stored into a header.
    3. OSB returns the token to the caller. Caller saves it locally for future poll and closes the connection.
    4. A JMS proxy transactionally reads the message from the queue (along with the token) and calls the backend service.
    5. If the backend service is down, the transaction is rolled back, and the message is returned back to the queue for retry later (retry period is configured on the queue).
    6. If the backend is up, the message is placed into a persistent storage using the token as a key. The storage is not JMS queue, because OSB proxies cannot programmatically read queues with filter, and also cannot read the queues on demand. So the store should be a database. (You cannot use disk as a store in a cluster unless the disk is also shared).
    7. Front end calls OSB with the token.
    8. OSB checks the persistent store and, if the response with the given token is found, sends it back to the the caller.
    Now, you may notice that front-end always initiates the call, i.e. there is no callbacks. I do not like callbacks in OSB designs, makes a mess when you get more than one consumer. However, you may implement it, too -- i.e in step 6, instead of persisting the message, just do an outbound call to the front-end application.
    Also, this design is always asynchronous. You may improve it by trying to do a synchronous call to backend first, and only if it is down, switch into asynchronous mode.
    P.S. If you're not familiar with using JMS/transactions with OSB, read my post: Transactions in OSB. Reliable Messaging.
    P.P.S. You can also use JMS queue as a persistent store for the responses, but then you'll have to use a Java callout that connects to the queue with a filter (by token) to extract the only message.

  • Calling two Business service using split join in osb

    Hi,
    While trying to call two business service using Split Join in osb i am getting selection failure message in Bpel em console. i am using invoke activity to invoke the BS and assign to assign the input. in the assign i am assigning *$request.payload/input* to input.payload . In the em console i am getting input like this
    receiveInput
    Jun 19, 2012 5:05:45 PM Received "process" call from partner "bpelprocess1_client"
    <payload>
    <inputVariable>
    <part name="payload">
    <client:process>xxxxx</client:process>
    </part>
    </inputVariable>
    Assign (pending)
    Jun 19, 2012 5:05:48 PM Error in evaluate <from> expression at line "65". The result is empty for the XPath expression : "/client:process/client:input".
    <payload>
    <client:process>xxxxxx</client:process>
    Jun 19, 2012 5:05:48 PM The following exception occurred while attempting to execute operation copy at line 63
    <payload>
    <bpelFault>
    <faultType>0</faultType>
    <selectionFailure/>
    </bpelFault>
    Jun 19, 2012 5:05:57 PM "BPELFault" has not been caught by a catch block.
    Jun 19, 2012 5:06:00 PM The transaction was rolled back. The work performed for bpel instance "650002" 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.
    Can anyone help on this?
    Thanks in Advance...

    maybe this one helps a bit, it's the same pattern
    http://www.xenta.nl/blog/2011/07/03/oracle-service-bus-implementing-aggregator-pattern-by-use-of-split-join/
    if you're using a dynamic split join easiest way is to do something like
    assing <yourresponse/> to $response
    at this moment your assign an empty placeholder to the response variable
    now you go into the for-each looping and for each iteration you need to insert the response of your bpel call in the $response variable
    so in the looping as last step you add something like
    insert $mybpelresponse/rootelement into $response/yourresponse
    with the insert it will insert the reponse 1..x times into the $response variable (so actually aggregating all the responses for you)

Maybe you are looking for