Exactly once in order in adapter engine

We have a user case that requires using R/3>XI>adapter-->back end system. There is requirement for maintain the message in exactly the order comes in.
the issue is, when the adapter or back end system part has some kind of error, we can see in the run time workbench the messages will repeat trying for several times before turning to "system error". Seems to me during the re-send process by adapter engine, the order of the original message get easily be lost. and we do not want this.
Any input on how to solve this?

normally the quality of service for a message is set in the sender (refer to http://help.sap.com/saphelp_nw04/helpdata/en/41/b714fe5ffc11d5b3ea0050da403d6a/content.htm). Did you check, if this is set correctly in the incoming message in XI? (in sxmb_moni, entry SOAP Header:ReliableMessaging has a tag <SAP:QualityOfService>) Only if this is really set to EOIO the receiver adapter will handle the message in one queue. What happens then, is that if the queue fails with one message, all later messages are blocked because the erroneous message blocks the complete queue.
best regards
Christine

Similar Messages

  • FTP - Sender File Adapter - Exactly Once In Order

    We are running SP10 on PI7.0
    I have a file (FTP - content conversion) to idoc scenario and this works well apart from the communication channel picking up the files in the wrong order.
    I have set to Exactly Once In Order, and the nuemrically file is being picked up in the correct order, however we wish to pick the file up by time and date stamp.
    If I flag the Adapter Specific Message Attributes - and Source File Time Stamp, will this then process the files by timestamp instead of by File name?
    How else can we get the files to process by time created?

    but this option is valid for NFS transport protocol
    http://help.sap.com/saphelp_nw70/helpdata/en/e3/94007075cae04f930cc4c034e411e1/content.htm
    &#9679;      Processing Sequence (for transport protocol File System (NFS))
    If you used placeholders when specifying the file name, define the processing sequence of the files:
    &#9675;       By Name: Files are processed alphabetically by file name.
    &#9675;       By Date: Files are processed according to their time stamp in the file system, starting with the oldest file.
    Message was edited by:
            Prabhu  S

  • Exactly Once In Order ..in File adapter ???

    Hi Xi friends..
    in my file to idoc ..
    i am getting files as wear*.xml .
    i think , i have  to use Exactly once in Order in Communication Channel  to process multiple files in order starting with wear*.xml
    if i select Exactly Once In Order..
    i have to give Queue Name..
    please tell me which queue name to be given here..
    please tell me how to use this Exacly Once in Order option..
    thanks and regards
    Ram

    Hi Ram,
    The XI supports Synchronous and Asynchronous delivery; in XI terms, these
    are described with a Quality of Service (QoS) descriptor. The XI supports
    QoS Best Effort (BE), Exactly-once (EO), and Exactly-once-in-order (EOIO).
    These are equivalent to RFC types Synchronous RFC (sRFC), Transactional
    RFC (tRFC), and Queued RFC (qRFC), respectively.
    EOIO (Exactly Once In Order):
    Messages are delivered with the same queue names (supplied by the application) in the same sequence that they were sent from the sender system. Message processing is asynchronous in this case.
    In the case of quality of service BE, an error occurs if more than one receiver is determined for a message. In the case of delivery types EO and EOIO, the message is copied correspondingly and sent to the individual receivers.
    Ckeck this link
    http://help.sap.com/saphelp_nw04/helpdata/en/41/b714fe5ffc11d5b3ea0050da403d6a/frameset.htm

  • Quality of Services "Exactly Once in Order"

    Hi,
    I have several integration using iDOC output R / 3.
    This integration into the Integration Builder them removed brand "Maintain Order At runtime" (Quality of Services - Interface Determination) to be executed in parallel, but when they reach the engine J2EE appear with the Quality of Services as "Exactly Once in Order."
    Why this happens with iDOCs? . With RFC do not have this problem.
    Best Regards
    Julian.

    Hi
    I have been reviewing the integrations that run in parallel and gave the impression that really do not run in parallel (Quality of Services "Exactly Once"), but that the channel receiver is taken so that the previous interface ends of inserting data into the receiver.
    If open the message and revise the log, the first message that arrives is in this state:
    "JDBC adapter receiver channel JDBC_XXX_YYY_Receiver: started processing; Party, service ZZZ_BS "
    But the following is not enough to reach this state and it is with this log:
    "Receiver JDBC adapter: started processing; QoS required: ExactlyOnce "
    One step before the first message, only runs the next step when the first message ends to be processed by the adapter.

  • RFC Exactly once in order

    I deployed EJB to enable RFC Sender Adapter to work in exactly once in order
    this is the code I used :
    package com.netafim;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
    import javax.ejb.CreateException;
    import com.sap.aii.af.mp.module.ModuleContext;
    import com.sap.aii.af.mp.module.ModuleData;
    import com.sap.aii.af.mp.module.ModuleException;
    import com.sap.aii.af.ra.ms.api.DeliverySemantics;
    import com.sap.aii.af.ra.ms.api.*;
    @ejbLocal <{com.netafim.EOIORfcLocal}>
    @ejbLocalHome <{com.netafim.EOIORfcLocalHome}>
    @stateless
    @transactionType Container
    public class EOIORfcBean implements SessionBean {
            public void ejbRemove() {
            public void ejbActivate() {
            public void ejbPassivate() {
            public void setSessionContext(SessionContext context) {
                    myContext = context;
            private SessionContext myContext;
    Create Method.
            public void ejbCreate() throws CreateException {
                    // TODO : Implement
            public ModuleData process(ModuleContext moduleContext,ModuleData inputModuleData, String queueName)
                    throws ModuleException {
                            try {
                            Message msg = (Message)inputModuleData.getPrincipalData();
                            msg.setDeliverySemantics(DeliverySemantics.ExactlyOnceInOrder);
                            msg.setConversationId(queueName);
                            inputModuleData.setPrincipalData(msg);
                    } catch (Exception e) {
    //                 raise exception, when an error occurred
                    ModuleException me = new ModuleException(e);
                    throw me;
    //                 return XI message
                    return inputModuleData;
    when I excute the function I get the following error in the comuunicatin chanel monitoring  : no paramter was found.
    in the paramters in the adapter modules tab I just wrote the queue name
    for example : ( its supposed to be a string )
    RFC******************queueName************XBIO_0001
    still the module doesnt reconzie it.
    Is the code above will add the functionaly of Excatly once in Order to the RFC Sender Adatper ? whats wrong with the paramters ?
    thx,Shai

    Hi,
    <i>
    data is sent "exactly once in order".</i>
    >>>I am not sure about this document which assures it is always EOIO.
    I am sure that using proxy communication u can do the quality of service as EOIO.
    To maintain the sequence in the client ABAPproxy with ABAP code-http://help.sap.com/saphelp_nw2004s/helpdata/en/65/40c9a4a1fa476288ac61b5fcc6bbde/content.htm
    Regards,
    Moorthy

  • Changing Exactly-Once-in-Order Processing in the Adapter Engine

    During some issues with hanging messages in some communication channels I noticed that messages for other receivers were also on hold. So adapter engine was processing all messages EOIO while Integration Server does that per receiver.
    I found the [solution in the SAP Help |http://help.sap.com/saphelp_nw04/helpdata/en/45/13b942f14d29efe10000000a114a6b/content.htm] but I am not able to access the mentioned link: http://<host><port>/MessagingSystem/migration.jsp
    Error message I got is: 404 not found.
    Looks like something changed! I checked some simular links like http://<host>:50000/MessagingSystem/monitor/monitor.jsp and that works fine.
    (I also checked the role SAP_XI_ADMINISTRATOR_J2EE was included in my userprofile)
    Please help me finding what I do wrong...or what has changed.

    Hi Sunil,
    ok, but do you know how what happened with the
    http://<host>:50000/MessagingSystem/migration.jsp
    I need that link to change the EOIO processing in the adapter engine.
    Regards,
    Michel

  • What is an AFW connection and what is AFW Listener Bean in Adapter Engine?

    What is the purpose of the above two in Adapter Engine ?
    and also tell me what do we mean by:-
    Sequencer for EOIO
    Scheduler retry EO
    Recieve/send QUeue.
    I reffered d blog: /people/sravya.talanki2/blog/2006/12/25/aspirant-to-learn-sap-xiyou-won-the-jackpot-if-you-read-this-part-i

    Hey,
    Itz much better to be clear with the concept of adapters. FILE ADAPTER or with the concept of serialization of IDOCS in the idoc adapter.
    Coming to the question
    Consider While setting parameters for sending the data through  file adapter in the processing parameters tab you have to set value for Quality dof service.
    We have three option
    Best Effort -> Used for synchronous processing.
    EO refers to exactly once  -> Used for Assynchronous processing of the mesage. Mesages will be processed once.
    EOIO (Exactly Once In Order) ->  Used for Assynchronous processing of messages in a sequence. We need to specify the queue name in this case.
    In case of send u need to specify send queue, and receive Receive queue.
    Messages will be processed in the same sequence as it arrives or leaves the integration process.
    Cheers,
    *Raj*
    *REWARD POINT IF USEFULL*

  • Exactly once(option) in QOS filesender

    hi.
    i want to know the difference between EXACTLYONCE,EXACTLY ONCE IN ORDER,BEST EFFORT options in quality of service.
    waiting for your response.
    cheers.
    seeta ram.

    hi michal.
    thanks for your answer.
    but i just want clear my doubt.
    here in my scenarion iam testing file to bapi by putting exactly once in(QOS)Of file sender adapterand the procesing mode of sender file adapter as test.
    but i forgot to deactivate file sender adapter and now iam getting ptoblems with ICM IN MESSAGE MONITORING(SXMB_MONI)
    ITS SHOWING IN XMLPAYLOAD AS
    400</SAP:P1>
      <SAP:P2>ICM_HTTP_CONNECTION_FAILED</SAP:P2>
      <SAP:P3 />
    <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Error while receiving by HTTP (error code: 400, error text: ICM_HTTP_CONNECTION_FAILED)</SAP:Stack>
      <SAP:Retry>A</SAP:Retry>
      </SAP:Error>
    wat would be the reason for this.
    waiting for yur answer.
    cheers.
    seeta ram.

  • Receiver Mail adapter Exactly Once

    Hi,
    I've setup my scenario RFC (trfc for exactly once QOS ) ->  Mail (receiver)
    Now I'm testing what happens when the smtp server is down.
    In message monitor (sxmb_moni) , the message is successful. In comm chanel monitoring, I can see the message is in error.
    The error states that "The message status was set to NDLV." but nothing is sent back to integration engine ...
    The adapter retries to send the message 3 times but then just stops...
    Q1 : How do you resend the message after the 3 retries ?
    Q2 : How can you know this error arrived if the message is successful in sxmb_moni ?
    Thanks

    Hi Thierry,
    If you see that the message passed in sxmb_moni, this indicates that the mapping was successful.  Your problem is happening at the adapter engine level, which you access through Message Monitoring in the Runtime Workbench.  It is there that you can try to resend the message.
    Mike

  • TO Get  Ensuring Exactly Once Processing data from sender soap adapt

    To XI Specialists
    Now Im trying to get Ensuring Exactly Once Processing data from sender soap adapteter.
    My plan is that send data from Receiver adapter, to Sender adapter by SOAP.
    (1st interface is ABAP to Soap "BE", 2nd interface is Soap to File "EO")
    Sender SOAP adapter will returun Ensuring Exactly Once Processing data.
    (see SAP HELP, http://help.sap.com/saphelp_nw70/helpdata/en/69/a6fb3fea9df028e10000000a1550b0/frameset.htm )
    AND I want to get Ensuring Exactly Once Processing data, I want to determine what to do in ABAP proxy.
    SO I made and tested 2interface. but error occuered.
    I checked the error, and Now I know what is the cause.
    The cause is that Ensuring Exactly Once Processing data didnt enter the payload, at Receiver Adapter.
    1st interface coulnt get the payload data, so mapping error occuered....
    Please give me help,
    <b>"How to get Ensuring Exactly Once Processing data From Sender SOAP ADAPTER"</b>
    or
    <b>"How to enter Ensuring Exactly Once Processing data into Payload of Receiver SOAP ADAPTER"</b>
    and more excelent way....
    our XI is version7.0 and SP10
    Please teach me your wisdom!
    Naoki Kurihara

    I seeked and I noticed that
    maybe I catched the message but the message dont have payload.
    so I got no_payload error.
    I checked SAP note.
    I noticed, no_payload error will be managed to nomal message at SP13....
    my XI is SP12....
    I ll seek for another way!!
    Thank you! noaki

  • Exactly-Once Handling in Receiver JDBC Adapter

    Hi,
    I have doubt abt Exactly-Once Handling in Receiver JDBC Adapter.
    For Conflict Resolution as Database.
    Why there is need to define table as below ?
    In the database where the write-to tables are located you must create an additional table with two columns for this purpose. To define the table, specify the following:
    Database Table Name
    Enter the name of the table.
    Key Column Name
    Enter the name of the column in which the key is entered.
    Value Column Name
    Enter the name of the column in which the key value is entered.
    Please explain in simple language.

    Hi Abhishake,
    Thanks for your reply.
    I understant that the tables needs to be created in DB.
    But if you read the SAP Docs for conflict resolution. My undestanding is "During Database commit if AS Java is terminated then the message will be in unknown state, for this type of messgaes when the AS Java restarted the behaviour is defined by this parameters. If the message doesn't have primary key, then there is probablity when AS Java will try second time it may get the message in DB so a message can be duplicated. To avoid this condition it is mentioned that you must create additional table with three column".
    Please correct my understanding if I am wrong.
    My additional table needs to create & how it will resolve the problem.
    Thanks in advance.

  • Persistence under Exactly-Once Handling in JDBC Reciever Adapter

    Hi,
    Can any one explain me significance of persistance (Local or Database) in JDBC Receiver Adapter.
    Please provide me document if anyone has?
    Thanks,
    ABDUR

    hi,
    both types are described here with many details:
    http://help.sap.com/saphelp_nwpi71/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/content.htm
    under : Defining Exactly-Once Handling
    do you need anything more ?
    Regards,
    michal Krawczyk

  • Sender File Adapter Not Showing in Decentral Adapter Engine

    Hi,
    We have recently implemented a Decentral Adapter Engine on a windows box. The adapter engine seems to be working fine because my adapters show and seem to work fine in it.
    However, when I define a Sender File Adapter that uses File Content Conversion message protocol instead of just File messaeg protocol, the adapter does not show up in the decentral adapter engine.
    I made sure that Adapter Engine parameter in the Sender File Adapter shows the new adapter engine but that does not seem to be working. If change the Adapter Enginer parameter to show the Central Adapter Engine, then I can see the Sender File Adapter on the Central Adapter engine and it works fine. (Note: The Central Adapter Engine is installed on a Unix box) 
    Here are the paramters I defined for the Sender File Adapter:
    - Transport Protocol: File System (NFS)
    - Message Protocol: File Content Conversion
    - Adapter Engine: (new Adapter Name)
    Source Directory: (
    server/drive/path)
    File Name: purchaseOrder.txt
    Quality of Service: Exactly Once
    Poll Interval (secs): 60000
    Poll Interval (msecs):
    Retry Interval (secs):
    Processing Mode: Archive
    Add Time Stamp (checked)
    Archive Direcotry: (
    server/drive/path/archive)
    Process Read-Only files: (not checked)
    Processing Sequence: By Name
    Fiel Type: Text
    File Encoding:
    Operating System Command:
    Additional Files (not checked)
    Content Conversion Parameters
    Document Name: MT_Request_File_Data
    Document Namespace: http://nxy.tots/fg_admin
    Document Offset:
    RecordSet Name: Purchasing
    RecordSet Namespace:
    RecordSet Structure: Purchase_Record,*
    RecordSet Sequence: Ascending
    RecordSets per Message: 1
    Key Field Name:
    Key Field Type: String(Case-Insensitive)
    Purchase_Record.fieldFixedLengths: 8,4,2,10,10,12,18,12
    Purchase_Record.fieldFixedType: char
    Purchase_Record.fieldNames: Request_Action,Request_PO_Num,Request_PO_LN,Request_PO_Date,Request_Purchasing_Org,Request_Purchasing_GName,Request_Created_By,Request_Vendor_Name
    Purchase_Record.fileContentFormatting: trim
    Adapter Status: Active
    Advanced Mode: (not checked)
    Your help is much appreciated.

    Hi Alaa,
    look into this document:
    http://service.sap.com/nw-howtoguides -> Exchange Infrastructure -> Troubleshooting: Adapter Engine 3.0 (Expert Call slides)
    If the File Adapter works without conversion, then you should count the number of fields in a row. If it differs from the configuration, then it runs on error.
    Another idea is to check the content type of the file. When you do not enter a File Encoding, then the file adapter assumes utf-8. If the file is for example latin-1, then the number of characters in a row are not counted correctly.
    Regards
    Stefan

  • Problem With Seeing Message in Adapter Engine

    Hello Everyone,
    We are facing a strange problem while running an <b>Integration Process</b>, <b>BPM</b> in PI. In the process, we are trying to read a .CSV File and convert it into a .XML File via FCC. The .CSV file is placed in the XI box itself, under a certain directory. We have configured the process such that whenever the .CSV file is read, its attributes are set to <b>'read only'</b>. After configuring the process, the required XML file did not show up. So we checked that whether the .CSV file was read and it showed up attributes of 'read only'.We cross checked
        -First by going to <b>SXMB_MONI</b>; here it said 'No messages available for selection'
        -Then by examining the 'channel monitoring' in AE; where we found both the sender and receiver channel are showing green. The sender channel first shows up that <b>'Processing started'</b> and then <b>'Processing Completed Successfully'.</b> The receiver channel does not show up any messages.
        -we checked for the XML messages that are in the Adapter in <b>IDX5</b>; it shows <b>'no messages selected'</b>.
        -We anticipated that it may be a cache problem and cleared all the caches; but when we tried to clear the Adapter Framework Cache, it popped up an authorization error and the problem persisted.
    We are using NW2004s with SP6 at the ABAP and BASIS stack and SP 9 at the Java Stack. Also, all the required connections made in SM59 are in order.
    Now, <b>What can be the problem? Is it the difference in SP level that is causing the problem? Or is it something else? What have we missed?</b> Guys, please help us solve this problem.
    Need Help. Pleae Reply. Points will be awarded.
    Thanking in anticipation.
    Amitabha

    Hi Shabarish,
    1.Document name <b>is indeed</b> the name of message type in our case.
    2. We did not use delete mode; but once the file was read- we manually changed its attributes from 'RA' to 'A'..and it became 'RA' again after 2 seconds; which is our polling interval.
    3. And we have discovered that the file is being read properly..because we can see the XML payload of it and it contains the correct data.But still it does neither show up in SXMB_MONI..nor in IDX5.
    <b>Can you please tell us what are the necessary roles for the User PIAFUSER?</b> We suspect that somewhere's an authorization error we are getting; because the AF cache refresh attempt shows "Forbidden" and we are getting an error in Tcode SXI_SHOW_MESSAGE as:
    <b>AE_DETAILS_GET_ERROR: no_adapter_engine_found: Unable to find Adapter Engine:</b>; Stack trace shows:<b>Error while reading access data (URL, user, password) for the Adapter Engine</b>

  • Shutdown of XI 3.0 Plain J2SE Adapter Engine.

    How do I shutdown the XI 3.0 Plain J2SE Adapter Engine? Where should I go to do this?
    Regards,
    N.S

    Hi N.S. -
    If I recall correctly, you open a browser to http://<host>:8200 .   8200 is the default port.  If not using the default port, you may need to investigate what that port is.  Delivered initial user/pwd is sap/init.
    There's a Shutdown Adapter Engine option once you get in.  Of course, the j2se adapter engine must be running in order for you to do this.
    Regards,
    Jin

Maybe you are looking for