Async - Sync in BPM - Multiple Retries

I have an asyncronous interface from CRM which goes into BPM and makes a synchronous call into the destination application and expects a response. However if there is a connection failure from the HTTP adapter to the destination application, I want to try a further 10 times to try to get a connection at 2 minute intervals before failing the process and triggering an alert.
This part is working ok :
The first send fails and raise an exception (system exception) and the exception handler is invoked. In the exception handler branch I have set up a loop to try a resend at 2 minute intervals.
However when the first retry fails the process stops. I do not have a further exception handler branch for the retry block as I just wish to keep retrying at 2 minute intervals.
This leads me to believe that I need to have each retry in a block of its own and have an exception handler branch for each of the retries.
Can someone please confirm this is the case ?
This seems very inefficent to have to do it this way.
Does anyone have an alternative method to fufil this requirement of retrying a fixed number of times at a fixed interval ?
Note that I cannot use IS_RETRY_LIMIT in configuration as this is only for asynchronous processing. This is async - sync processing.
Thanks
Colin.

hi,
>>However when the first retry fails the process stops. >>I do not have a further exception handler branch for >>the retry block as I just wish to keep retrying at 2 >>minute intervals.
since this is a sychronous call, Xi wll only ry once and if hte call fails, i will mark he call as failed, tere is no way you can so a retry.
instead, i have a suggestion for you in terms of design. Make the http call asych with in the BPM. But establish a correlation using correlation editor. So have a send step and recieve step for recieving the response asychornously based on the corelation id.
now go to visual admin -> server -> SAP XI adapter yo will see retry interval and retry limit. here change these values to ur choice, default being 3 times afer 5 minutes.
by doing these changes you are ensuring that if the message fails the first time, Xi will put this message as waiting, and will retry to submit based on the setting u made to the XI adapter.
cheers,
naveen

Similar Messages

  • Async/Sync without BPM

    Hi Experts, Just wondering if this scenario is possible? Client Proxy (Async) -> Web Service (Sync) -> Server Proxy (Async) I've read some blogs about the bridge using module processor (RequestResponseBean/ResponseOnewayBean). But usually, I only see the sender being synchronous given that Async cannot be mapped to a Sync interface.The reason behind this scenario is to take advantage of the queueing mechanism of Async and to make the scenario loosely coupled. Do we have other ways to do this without BPM and coding? Thanks in advance.

    Hi Mark
    I think it's possible. You have to use request response bean in the receiver adapter.
    The response bean will trigger a new interface and you have to configure one more ICO to map
    that response to final async server proxy.
    Generic PI Async-Sync Bridge Configuration for Any Adapters
    You have to use virtual receiver for second scenario.

  • Async/ Sync without BPM where Async channels are different.

    Hi Guys,
    I've created a couple of async/ sync bridges without BPM for File to Web Service to File and for JMS to Web Service to JMS.
    Is it possible to use two different types of asynchronous communication channels when creating an async/ sync bridge? I've tried to create a File to Web Service to JMS queue, but it fails with the following error appearing on the File communication channel.
    Error: com.sap.aii.af.service.cpa.impl.exception.CPAObjectKeyException: Value of key must not be null: ObjectId
    All the best,
    John

    Hi John,
    Actually the fact that you get this error in the sender file CC makes me think is it purely related to the communication channel configuration. Try to make sure if your scenario works without the additional RequestResponseBean in the receiver (so as a simple Async scenario). When you have that one working, try to add the RequestResponseBean.
    Hope this helps,
    Greg

  • Idoc to SOAP Async - Sync - stuck @ bpm bridge

    Hi there,
    i'm implementing an SAP -
    Idoc / Async ---> PI -
    > Soap / Sync communication, the idea is that i update the Idoc Status back on erp using and status idoc, i got the whole scenenario working but the Async - Sync bridge part with the status idoc, i've been reading a lot but i cant seem to find a good tutorial that helps me implement the bridge, i found this tutorial :
    https://wiki.sdn.sap.com/wiki/display/XI/File-RFC-File%28Without%20BPM%29
    do you guys think i can make a workround so i dont have to do a bridge, because performance is a BIG issue on this scenario and i've read that BPM degrades performance,
    Thanks in advance for all the input ill get
    Best Regards,
    Roberto.

    Hi Roberto,
    Idoc doesnot support the synchrnous call. What you can do is send an ALEAUD IDOCs  back as response. Please see this document for this:
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f6d2d790-0201-0010-9382-b50b499b3fbe?overridelayout=true
    /people/saravanakumar.kuppusamy2/blog/2005/01/20/configuration-tips-for-a-business-serviceintegration-process-to-send-back-ale-audit-idoc
    Also search in SDN for ALEAUD and you may get some more information.
    Regards,
    ---Satish

  • Correlation issue in JMS adapter - SYNC/ASYNC scenario without BPM

    Hi,
    I am working on a SYNC/ASYNC scenario with JMS adapter without using BPM. My scenario is SOAP<>PI>JMS. I configured the interface as below:
    1. SOAP Sender channel
    2. JMS Receiver Channel writing to Queue A.
         Module used:      a. RequestOneWayBean
                   b. WaitResponseBean
         Correlation Settings:
                   a. Set JMS Correlation ID to "XI Message ID"
                   b. Store JMS CorrelationID of request (Checked)
                   c. Set JMS Property to "JMS Correlation Id"
                   d. Value = "XI MEssage ID"
    3. JMS Sender channel reading from queue B ( I am exporting the message from queue A and importing into queue B)
         Module used:      a. NotifyResponseBean
         Correlation Settings:
                   a. Set XI MEssage Id to "GUID"
                   b. Set XI Conversation ID to "Stored JMS COrrelationID of Request"
    I can see the cid in the message from queue A. But I observed thhat the header format of the message in Queue A is "MQSTR".
    ISSUE:
    1. While writing the message to queue A, below adapter log details(part b) concerned me:
         a. Message '8747a7c2-2b06-11df-8055-005056a70ed6' successfully processed by channel
         b. Could not create acknowledgements for message '8747a7c2-2b06-11df-8055-005056a70ed6'
    I am not sure why I am receiving the message that "  could not create acknowledgements"
    2. While reading the message from the sender channel,I consistently get the error message as below:
         a. XI message ID corresponding to JMS message with ID 'ID:414d51205341504449442e514d202020c67b954b20005602'
              will be created as a new GUID with value '21bca916-424f-41f6-3347-c71090392b58'
         b. Error while processing message '21bca916-424f-41f6-3347-c71090392b58';  detailed error description:
              com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: found no correlation ID: RecoverableException:
              found no correlation ID at com.sap.aii.adapter.jms.core.channel.filter.SendToModuleProcessorFilter.filter(SendToModuleProcessorFilter.java:105) ...
    Below are the blogs which I have already gone through:
    1. JMS Synchronous Scenario without BPM - Correlation Settings and Transactional JMS Session
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/b028f6f6-7da5-2a10-19bd-cf322cf5ae7b
    2. Note: 1086303
    3. Sync / Async Bridge without BPM
    In the note, they mentioned something about header being "MQRFH2". BUt in our case, the header is "MSSTR". Not sure whether it makes any difference.
    Please help.
    Edited by: GP on Mar 9, 2010 4:24 AM

    Hi,
    detailed error description:
    com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: found no correlation ID: RecoverableException:
    found no correlation ID at com.sap.aii.adapter.jms.core.channel.filter.SendToModuleProcessorFilter.filter(SendToModuleProcessorFilter.java:105) ...
    This error would generally arose when there are multiple messages, got stuck in the outbound queue. Try to stop both the sender and receiver JMS comunication channels and clear both the inbound and outbound queues.
    Once all the messages in the queue are cleraed, try posting the message again.
    Regards,
    Swetha.

  • Multiple Async/Sync bridge

    Hi All,
    I have read about single Async/Sync and Sync/Async bridges without using BPM. But my scenario is somthing where multiple Async/Sync bridges are required.
    Here data will come in the form of an IDOC which is sent to a Oracle database server where we run a stored procedure and get one particular field 'xyz' which has to be updated to SAP R/3 system through a RFC. So it is something like:
    IDOC->Oracle->RFC->SAP.
    I have tried this using BPM, it is working fine. But because of performance issue, I would like to do it without using BPM. Can anybody please help me out in finding whether it is possible without BPM. If yes, then how?
    Thanks
    Jaya

    Jaya,
    There is no need for BPM in ur scenario. You just need to write UDF in ur mapping program and can fetch the data from ORACLE and pass it to RFC.
    Please see /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    If you need any more info, let us know.
    -raj.

  • Is there Async-Sync bridge in BPM

    Hi ,
        I am trying this scenario in ccBPM(PI7.10
    JMS(Async)>MDM(Sync)>SAP(Sync)
    The reason I cant use it without BPM  is that message in JMS is needed in SAP step.I am not sure of messages can be persisted without a ccBPM.
    When I give receive step as Async,in next send (Sync call) ,I cant see any Syn Abstract interfaces even though i have declared one.Only Asyn abstract interfaces appear to chose container element as abstract type.
    In what way can I specify Aysn-Sync bridge in ccBPM ?
    Regards,
    Premjit

    the async / sync scenarios can be configured via two options;
    ref these
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    Without BPM
    File - RFC - File without a BPM - Possible from SP 19.

  • BPM error handling for async/sync

    Hi,
    I am using an async/sync bpm for sending a message from SAP using outbound proxy to call a synchronous web service.
    Now, if I get a fault message from web service the queue will be blocked for other messages to flow through as it is an EOIO.
    Can anybody suggest how can I get the fault message and errors out in PI with a red flag and not block the other messages to flow through in this design? I cannot change this design as it is the business IT suggestion to go through in ths way.
    -Mike

    How can a queue be blocked behalf of an error in a sync message?
    I do not understand this.
    Where is EOIO in this scenario?
    The answer for this question from Stefan is below
    The EOIO in this scenario is the first asynch proxy call from SAP.
    But when I get a fault message back from the synchronous web service, it will throw an error in SAP PI.
    And what will happen to the next asynch message from proxy? Will it be send across with no issue without correcting this error? I am not sure how this async sync queue work??? And also what is the exact difference btw EO and EOIO?
    Why asynch proxy is EOIO and not EO.
    -Mike

  • Async-Sync Bridge without BPM for SOAP WS and JDBC

    I heard you can now have async-sync communication outside of BPM by utilizing adapter modules?
    My scenarios are:
    proxy (async) -> SOAP WS (sync)
    proxy (async) -> JDBC (sync)
    I will like to capture the synchronous responses in XI and perform some basic error handling.
    I read h[File - RFC - File without a BPM - Possible from SP 19.|File - RFC - File without a BPM - Possible from SP 19.] and the release notes for 2004s SP19 and there is no reference to JDBC or SOAP.
    tia

    Hi Megha,
    Plz do refer the below links u will get an idea:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a05b2347-01e7-2910-ceac-c45577e574e0
    Sync/Async communication in Adapter without BPM (SP19)
    Sync/Async communication in JMS adapter without BPM (SP19)
    Async/Sync Communication using JMS adapter without BPM (SP 19)
    Async/Sync Communication using JMS adapter without BPM (SP 19)
    also try this
    Sync/Async communication in JMS adapter without BPM (SP19)
    File - RFC - File without a BPM - Possible from SP 19.
    Collecting IDocs without using BPM
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5059f110-0d01-0010-7c8b-fdc983be70c0
    Have a look
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5059f110-0d01-0010-7c8b-fdc983be70c0
    HTTP to RFC - A Starter Kit
    Sync/Async communication in JMS adapter without BPM (SP19)
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken]
    Do refer this thread:
    JDBC Async-Sync bridge does not work
    Reward if found useful
    Regards,
    Vinod.

  • Doubt on Sync-Async  bridge using BPM

    Hi Experts,
                     I had a doubt on Sync-Async  bridge using BPM,
       1. If sender system is SAP system and receiver system is non-sap system then while configuring in Integration Directory how many  Receiver Determinations should be done ?
    2.Plz explain if we have 2 receivers i.e one sender SAP system and 2 non-sap systems then what will be the no. of receiver determinations?
    3.How we have to count no. of receiver determinations if we have 2 receivers and 1 receiver system? If so what is the no. of receiver determinations in case of 1 receiver syst and 2 receiver systems?
    Plz clarify above questions  good answers will be definetly rewarded.
                                                                                    Regards,
                                                                                    Vinod.

    vinod,
    ... Sync-Async bridge and Recievr determination are not related....
    Sync-Async bridge means.. u r sending some request syncronously...and u r expecting the response also in synchronous way... but u r not getting the response  directly...u r getting it via BPM..i.e asynchornously.....
    see here what is the  Use of Synch - Asynch bridge in ccBPM
    /people/sriram.vasudevan3/blog/2005/01/11/demonstrating-use-of-synchronous-asynchronous-bridge-to-integrate-synchronous-and-asynchronous-systems-using-ccbpm-in-sap-xi
    and here if u have 2 reciver... u have to create 2 receiver determination and ofcourse for BPM one reciver dtrmination is required.... since in BPM related scenario BPM will act as a reciver...BPM(IP) wil first recive the message then it will be forwarded to Receiver system!!! so total 3.
    <b>3.How we have to count no. of receiver determinations if we have 2 receivers and 1 receiver system? If so what is the no. of receiver determinations in case of 1 receiver syst and 2 receiver systems?</b>
    r u telling that u r having two recivers and each receiver is receiving messages using 2 interaces???
    u have 2 use 2 receiver determination and 4 interface determination.
    regards
    biplab

  • Async-Sync-Async Bridge Without BPM

    HI Folks,
    I have a requirement as
    u201CAn Asynchronous SOAP request is triggered to PI and then should get records from a (JDBC)database and write the result to a fileu201D
    It is of Aync-Sync-Async Bridge and i have to do without BPM
    I know by using some module parameters at sender communication channel we can do this.
    But my query
    1)Is that for SOAP sender communication channel can we provide the same module parameters
    Number - ModuleName - Type - ModuleKey
    1- AF_Modules/RequestResponseBean - Local Enterprise Bean - 1
    2- CallSapAdapter-Local Enterprise Bean - 2
    3-AF_Modules/ResponseOnewayBean-3
    Parameters
    ModuleKey - ParameterName - ParameterValue
    1 - passThrough - true
    3-receiverChannel - Receiver File Adapter Name
    3-receiverService - Receiver Business Service/ System
    2) Does the SOAP support the without BPM scenarios
    3)Scenario is like Soap --> JDBC -->File (Async - Sync - Async) and how abt for Soap --> RFC -->File (Async - Sync - Async)
    Thanks in Advance
    Lemon

    For your requirement , you can handle this scenario without BPM in two ways.
    1) Async sync bridge without BPM.   You are going to use request response bean and one way response bean module to achieve this. very simple. See this [link|http://wiki.sdn.sap.com/wiki/display/XI/File-RFC-File(Without%20BPM)]
    In the sender SOAP channel you have to configure first request response bean, second callsapadapter and third onewayresponse bean. Refer this link. Simply follow file sender configuration for your soap sender or RFC sender.
    Note: one receiver agreement , one receiver determination, one interface determination. only two receiver channels one jdbc and one file.
    2) You can create SOAP  to File asynchronous.  Using quality of service  EO and creating service interface asynchronous mode.   In the mapping area do JDBC lookup.  If your version is 7.1 then this lookup is available. This is pretty simple no need to do async to sync pattern.
    Hope that helps.

  • Async Sync Bridge without BPM (Proxy-Soap-Idoc)

    Hi,
    I have read some blogs how to do the Async Sync Bridge without BPM for JMS adapters. I have a requirement that I am getting a Async Proxy message to PI and then PI makes Sync Soap call then the result need to send through the Idoc adapter.
    Proxy - Soap- Idoc
    Here Proxy is a sender so no adapter required in the Config and also Soap is java based adapter and Idoc adapter is a ABAP based so I am not sure this is possible but I just wanted to check with you.
    Please let know if this is possible or not?
    PI 7.1 with EHP1
    Thanks,
    Laxman
    Edited by: Laxman  Molugu on Oct 14, 2010 2:15 PM

    The mapping programm can be defined as a user defined function. As sample of mine is "getGoogle()", which is doing some kind of address validation. The input parameter URL[0] contains source address. For that you need to import:
    org.apache.commons.logging.*;
    org.w3c.dom.*;
    javax.xml.parsers.*;
    org.xml.sax.SAXException;
    org.apache.commons.httpclient.*;
    org.apache.commons.httpclient.methods.*;
    org.apache.commons.codec.*;
    org.apache.log4j.*;
    Example code for UDF "getGoogle()" is:
    String sUrl = "http://maps.google.de/maps/api/geocode/xml?address=" + URL[0] + "&sensor=false";
    HttpClient client = new HttpClient();
    GetMethod method = new GetMethod(sUrl);
    byte[] responseBody = null;
        try {
    //      int statusCode = client.executeMethod(method);
    //      byte[] responseBody = method.getResponseBody();
    //     result.addValue(new String(responseBody));
    String sResponse = "initial";
    int statusCode = client.executeMethod(method);
    responseBody = method.getResponseBody();
    ByteArrayInputStream bis = new ByteArrayInputStream(responseBody);
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = factory.newDocumentBuilder();
    Document doc = db.parse(bis);
    doc.getDocumentElement().normalize();
    NodeList nodeLst = doc.getElementsByTagName("formatted_address");
    Node formAdr = nodeLst.item(0);
    NodeList nlFormAdr = formAdr.getChildNodes();
    sResponse = ((Node) nlFormAdr.item(0)).getNodeValue();
          // Deal with the response.
        result.addValue(sResponse);
        } catch (Exception e) {
          result.addValue(e.toString() + "######## exhrenda - googleResponse:############### URL=" + sUrl+"###########"+new String(responseBody));
        } finally {
          // Release the connection.
          method.releaseConnection();

  • Correlation and Async/Sync Communication using JMS adapter without BPM

    Hello
    1. Pls explain with simple example docs/links --- Correlation
    2. Async/Sync Communication using JMS adapter without BPM
       If i see blog --- If I go with blog --- /people/sudheer.babu2/blog/2007/01/18/asyncsync-communication-using-jms-adapter-without-bpm-sp-19
    Pls explain --- Correlation Settings, select JMSMessageID for the XI Conversation ID.
    Pls explain --  Correlation Settings, select XI Conversation ID as jMSCorrelationID.
    Can you pls explain me this example with JMSMessageID and JMSCorrelationID context
    Regards

    Hi Henry,
    For Correlation, please go through the below link.
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    Sync / Async Bridge communication using JMS : http://help.sap.com/saphelp_nw04s/helpdata/en/45/20d251c20a0732e10000000a155369/frameset.htm
    Sync / Async communication without BPM in JMS : /people/venkataramanan.parameswaran/blog/2007/01/18/syncasync-communication-in-jms-adapter-without-bpm-sp19
    /people/henrique.pinto/blog/2007/08/02/syncasync-scenarios-without-bpm
    Hope these help
    Regards
    Kiran..

  • Async/Sync Communication using JMS adapter without BPM

    Hello ,
    Pls suggest how Async/Sync Communication using JMS adapter without BPM .
    In my scenario I have JMS Sender and then RFC/JDBC as Sync and then again JMS receiver
    Pls explain  the concept of
    JMSMessageID and JMSCorrelationID  and how to use it by an example.
    Regards

    Hi,
    If you have selected JMSMessageID, JMSCorrelationID, or JMSProperty and entered a JMS message ID in these fields, you should see the Remove 'ID:' Marker from JMSMessageIDindicator. Set the indicator.
    This is necessary because the JMS specification stipulates that each JMS message ID starts with 'ID'. However, this conflicts with ISO-11578.
    - JMSMessageID (Uniqueness Is JMS-Provider-Dependent)
    (String) The unique message ID. Note that this is not a required field and can be null. Since the JMS provider might not use your provided message ID, the Connector sets a special property called $jms.messageid after sending a message. This is to insure that the message ID always is available to the user. To retrieve this value use conn.getProperty("$jms.messageid") in your After Add hook.
    - JMSCorrelationID (Uniqueness Is JMS-Sender-Dependent)
    (String) This header is set by the application for use by other applications.
    Hope this will help you.
    Regards
    Aashish Sinha
    PS : reward points if helpful

  • Alerts and Error handling in BPM Async/Sync Bridge

    Hello All,
    I am developing an Async/Sync Bridge in BPM for sending a request from ECC webservice asychronously to a front end application synchronously using BPM Async/Sync Bridge. I get a response from the front end to PI and stays there.
    It wont be send back to ECC. What are the possibilities of error handling required in this type of scenario.
    Thanks
    Deno

    . I get a response from the front end to PI and stays there.
    Then it should mean that the BPM design is faulty...did you have a send step at the end which closes the Async-Sync Bridge by sending the message to original sender?
    In SXMB_MONI --> For BPM message processing there will be a link called PE...click it...check the graphic workflow...see till where the message has processed.
    error handling
    include your Sync send step whithin a Block....this block will have an Exception Branch....in this exception branch you can have your Exception handling logic...like raise alert, cancel process etc.
    Regards,
    Abhishek.

Maybe you are looking for

  • Error while applying patch u4440000.drv(part of R12 upgrade from 11.5.10.2)

    Hi All, Getting error while applying patch 4440000 cd $AU_TOP/patch/115/driver/u4440000.drv ERROR: Failed: XDOLoader.class on worker 1 Failed: CustMigrationTool.class on worker 2 Failed: XDOLoader.class on worker 3 Failed: XDOLoader.class on worker 4

  • External monitor on MacBook Air looks terrible, recommendations?

    I'm a software developer and I want to be able to connect an external monitor to my MacBook Air 11".  The Apple store guy recommended a Belkin adaptor so I can connect my HDMI input devices.  The connection works, but even at 1080p resolution, there

  • SHEcess innot flowing in excise tab

    DEAR EXPERTS While doing invoice verification   FOR  CLEARING CUSTOMS DUTY   SHEcess  component is  appearing ,but while doing  J1IEX  to capture  excise  for IMPORT PO, every thing working fine but For componets  CVD ,Shecess On cvd  is  not flowing

  • Need user exit or BADI for NMM1

    Hi, I need user exit/BADI  for transaction NMM1. We need to know the material status of material to determine whether to send a Reservation or PR. Presently it is determining depending on material type . Regards, Sekhar Raju.

  • Lookup for 2 domanins in ESB DVM in Oracle BPEL

    Hi I need lookup in one DVM but the in condition should be 2 Domains. I explain me: I've a DVM like that: | VALUE | FATHER | CHILD | |     1     |     SI     |     NO     | |     2     |     NO     |     NO     | |     3     |     SI     |     SI