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

Similar Messages

  • 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.

  • Insert query in JDBC Reciever adapter!!!

    Hi All,
    We have an interface in which we are inserting data in Oracle server using JDBC Reciever Adapter.
    The interface ends up in error on adapter engine level whenever the we are sending long data in one of the field of target structure. The error which we get in communication channel monitoring is that "String too long", on googling i found that in oracle they solve such problem by making the field data type as CLOB.
    Thus can we define target structure field of CLOB type so that while inserting the data in Oracle server we never face the issue of this long string.
    Thanks

    >
    Arpit Seth wrote:
    > Hi All,
    >
    > We have an interface in which we are inserting data in Oracle server using JDBC Reciever Adapter.
    > The interface ends up in error on adapter engine level whenever the we are sending long data in one of the field of target structure. The error which we get in communication channel monitoring is that "String too long", on googling i found that in oracle they solve such problem by making the field data type as CLOB.
    >
    > Thus can we define target structure field of CLOB type so that while inserting the data in Oracle server we never face the issue of this long string.
    >
    > Thanks
    if the field contains very large data then yes, defining the target field in Oracle as a CLOB will solve your issue.
    http://www.herongyang.com/jdbc/MySQL-CLOB-Overview.html

  • Event Handling in JDBC sender adapter

    Hi,
    please help me in this scenario.
    Scenario is Third Party will update the Header and Item values in to Database table.
    Once the update is done , a program will run in Thrid party system and it will update the Event Table with the primary key value of the DB table.
    So my JDBC sender should be looking for the event table updation. Whenever there is an update in the event table the JDBC sender should automatically kicked off and it should select all the field in the DB table where the primary key = Event table.primary key and the values will be generated as an Idoc.
    1.How will i achive this scenario.
    2.How to configure the JDBC sender Adapter which gets triggered automatically when there is an updation in event table.
    please advice.
    Thanks,
    Sujatha

    Hi,
    >>2.How to configure the JDBC sender Adapter which gets triggered automatically when there is an updation in event table.
    There is way to control the Communciation Channel externally. Refer this help document http://help.sap.com/saphelp_nw04/helpdata/EN/45/0c86aab4d14dece10000000a11466f/content.htm.
    Or alternately you can create a query that always queries only the updated record and configure the JDBC adapter which would periodiocally look the DB...
    ~SaNv...

  • JDBC RECIEVER ADAPTER Configuration

    Hi,
    i'm doing one scenario.I'm sending sap data to Oracle 9i database.Pls give reciever jdbc structure.which structure i follws for oracle 9i.Pls this is urgent.Pls help me.
    Thanks
    Ravi

    Hi Ravi ,
    Please show us the input file format which you are trying to store in the Oracle DB.
    The format should look like any of these statement formats,
    <root>
      <StatementName1>
    <dbTableName action=u201DUPDATEu201D | u201CUPDATE_INSERTu201D>
        <table>realDbTableName</table>
    <access>
    <col1>val1</col1>
    <col2>val2new</col2>
    </access>
    <key1>
    <col2>val2old</col2>
    <col4>val4</col4>
    </key1>
    <key2>
    <col2>val2old2</col2>
    </key2>
    </dbTableName>
      </StatementName1>
      <StatementName2>
    <dbTableName action=u201DINSERTu201D>
    <table>realDbTableName</table>
    <access>
    <col1>val1</col1>
    <col2>val2</col2>
    </access>
    <access>
    <col1>val11</col1>
    </access>
    </dbTableName>
      </StatementName2>
      <StatementName3>
    <dbTableName action=u201DDELETEu201D>
    <key1>
    <col2>val2old</col2>
    <col4>val4</col4>    
    </key1>
    <key2>
    <col2>val2old2</col2>
    </key2>
    </dbTableName>
      </StatementName3>
      <StatementName4>
    <dbTableName action=u201DSELECTu201D>
        <table>realDbTableName</table>
    <access>
    <col1/>
    <col2/>
    <col3/>
    </access>
    <key1>
    <col2>val2old</col2>
    <col4>val4</col4>
    </key1>
    <key2>
    <col2>val2old2</col2>
    </key2>
    </dbTableName>
      </StatementName4>
      <StatementName5>
    <storedProcedureName action=u201D EXECUTEu201D>
        <table>realStoredProcedureeName</table>
    <param1 [isInput=u201Dtrueu201D] [isOutput=true] type=SQLDatatype>val1</param1>
    </storedProcedureName >
      </StatementName5>
      <StatementName6>
    <anyName action=u201D SQL_QUERYu201D | u201CSQL_DMLu201D>
    <access>SQL-String with optional placeholder(s)</access>
    <key>
      <placeholder1>value1</placeholder1>
      <placeholder2>value2<placeholder2>   
    </key>
    </anyName >
      </StatementName6>
    </root>
    Check this once and correct yourself.
    Or please give us the sample format which you are configuring.
    Urs,
    Soorya

  • ERROR IN ORACLE STORED PROCEDURE in JDBC RECIEVER

    Hi all
    i have an FILE2JDBC2FILE sync scenario.have configured this w/o BPM.i need to call an stored procedure which will return me the output in the outpur parameters.input out put parametrs of the stored procedure are.
         p_api_version               IN  NUMBER
        ,p_init_msg_list             IN  NUMBER DEFAULT EBS_ECOM_UTILS_PUB.G_TRUE
        ,p_ebs_place_in_t     IN  p_ebs_place_in_t(sql TABLE TYPE )
        ,p_ebs_std_call_o     IN  ebs_std_call_oty(sql TABLE TYPE )
        ,x_return_status            OUT VARCHAR2
        ,x_msg_count                OUT NUMBER
        ,x_msg_data                 OUT ebs_message_tty
        ,x_row_count                OUT NUMBER
        ,x_ebs_place_out_t      OUT ebs_place_out_toty(sql TABLE TYPE );
    where
    p_ebs_place_in_t is of type p_ebs_place_in_t which has 2 fields MDM_SYSTEM_REF,EMAIL_ADDR and START_DATE
    p_ebs_std_call_o is of table type ebs_std_call_oty which has 2 fields WORK_GRP_ID and  DEBUG_MODE 
    In XI i am passing the arguments in the following fashion to ORACLE (JDBC reciever adapter)
    <p_api_version isInput="true" type="integer">1</p_api_version>
    <p_init_msg_list isInput="true" type="integer">1</p_init_msg_list>
    <p_ebs_place_in_t isInput="true" type="CHAR">
    <MDM_SYSTEM_REF isInput="true" type="CHAR">MDM-237</MDM_SYSTEM_REF>( this is a field in p_ebs_place_in_t )
    <EMAIL_ADDR isInput="true" type="CHAR"></EMAIL_ADDR>>(this is a field in p_ebs_place_in_t )
    <START_DATE isInput="true" type="date"/>06-OCT-2009 00:00:00</START_DATE>>(this is a field in p_ebs_place_in_t )
    </p_ebs_place_in_t>
    <p_ebs_std_call_o isInput="true" type="CHAR">
    <WORK_GRP_ID isInput="true" type="integer">95714</WORK_GRP_ID>
    <DEBUG_MODE isInput="true" type="integer">5</DEBUG_MODE>
    </p_ebs_std_call_o>
    <x_return_status isOutput="true" type="CHAR"></x_return_status>
    <x_msg_count isOutput="true" type="integer"></x_msg_count>
    <x_msg_data isOutput="true" type="CHAR"></x_msg_data>
    <x_row_count isOutput="true" type="integer"></x_row_count>
    <x_ebs_place_out_t isOutput="true" type="CHAR">
    </x_ebs_place_out_t>
    i am gettng the below error when i am trying to post th message from RWB
    Error when executing statement for table/stored proc. 'APPS.EBS_CUSTOMER_SERVICE_PUB.MAINTAIN_PLACE' (structure 'StatementName1'): java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'MAINTAIN_PLACE' ORA-06550: line 1, column 7: PL/SQL: Statement ignored .
    please suggest..
    Edited by: Rohan Patil on Jun 13, 2010 12:55 AM

    HI Praveen,
    thanks for your reply.
    my stored procedure has input and output parameters both.
    and in XI i have created the data type for both isInput(passedwith all the required values) and isOutput(passed the null values)
    is this  correct..?or should i take only isInput parameters in the data type?
    do i need to take the isOutput also in the datatype?my stored procedure will return the output in the output parametrs.
    can i take only 1 or 2 output paraetrs as there are 4 to 5 output parameters for my sotred procedure.?
    and how will my response data type to send the output of the stored procedure to the FILE sustem.should it be also in the statement form?
    and also would like to know..some of my isInput parameters to the stored procedure has the table type structure as the input parameters.now my question is i should i declare them in my data type?
    can you please elaborate.

  • JDBC Receiver Adapter: Guarnteed delivery

    Hi All,
    I have a JDBC receiver scenario.  I was investigating the Guarnteed ( Exactly Once ) delivery option of the JDBC receiver adapter.  The Following two scenarios needs to be validated
    The Technical scenario is SAP R/3 ---  XI -
    Database
    Scenario1 :  The message has been triggered by SAP r/3 to XI.  The Target Database then crashed.   The message errors out in the Adapter engine and was not sent to the database. Would the messsage be resent again, till successful delivery. Do we need to set the Advance Mode, parameter "Number of Re-tries of database Transaction on SQL error".  Or should this happen automatically from the Adapter without any setting in the adapter configuration.
    Scenario2:  There is a setting as Exactly Once Handling .
    i have gone through the documentation on SAP help
    [http://help.sap.com/erp2005_ehp_03/helpdata/EN/22/b4d13b633f7748b4d34f3191529946/frameset.htm]
    But this is not very illustrative
    it has 2 modes  
      PERSISTENCE ( values local and DB )
      CONFLICT RESOLUTION ( Error or Redo )
    Is this only after a post-commit system crash? Can anybody provide some more documentation, or blogs for the same.
    In all we would expect that, a message Triggered from R/3 should always be delivered to the database.
    please let me know know your opinions on the same.
    Thanks in advance,
    Best Regards
    Abhishek

    Would the messsage be resent again, till successful delivery
    The default behaviour of adapter engine is to try sending data to receiver 3 times at an interval of 5 minutes after which the message goes into system error. You may change this behavior through visual admin. After this, you may also manually restart the message.
    Do we need to set the Advance Mode, parameter "Number of Re-tries of database Transaction on SQL error"
    This is not mandatory. As I mentioned above, it is handled to a certain exten automatically.
    Is this only after a post-commit system crash?
    The persistance factors when defined could help in error handling cases. This could also be used when a system crash occurs at the time of message processing. Then the message processing has to be done for the second time and one of the two conflict resolution methods are used.
    Regards,
    Prateek

  • Exactly once delivery in SAP XI

    Hi all -
    Client question:
    1. What does "Exactly Once" mean in terms of the JDBC adapter? 
    2. In terms of an FTP adapter? 
    3. What constitutes XI's understanding of a successful delivery to the target application? 
    4. How far does XI go in monitoring the successful posting to the target application?
    Throw in your ideas on the above questions.
    tia,
    Tirumal

    Hi,
    <i>1. What does "Exactly Once" mean in terms of the JDBC adapter?
    2. In terms of an FTP adapter?</i> >>>
    In General , "Exactly Once" means, message delivery is guranteed. It is of type Asynchronous. So all Asynchronous messages are persisted in XI. So if you have any problem because of Queue stuck etc, you are able to restart/reprocess the messages as it is persisted.
    to know more-
    http://help.sap.com/saphelp_nw2004s/helpdata/en/65/40c9a4a1fa476288ac61b5fcc6bbde/content.htm
    <i>3. What constitutes XI's understanding of a successful delivery to the target application?</i>
    >>>System Acknowledgement, i.e in the Asynchrnous communication, XI is responsible to send the message to Receiver system.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/f4/8620c6b58c422c960c53f3ed71b432/content.htm
    <i>
    4. How far does XI go in monitoring the successful posting to the target application?</i>
    >>>XI monitors, till the message is sent to Reciever system. It is not responsible to monitor the processing of messages in Reciever system.
    Hope this helps,
    Regards,
    Moorthy

  • How to Resend OR Cancel Exactly Once Messages

    Dear all,
    I have nearly 20 messages with status "Holding" under adapter engine message monitor.
    These interfaces are Exactly Once type. I am trying to Resend or cancel them. Nothing worked here.
    When i check the error reason for the Holding status message, it says warning " Empty document found. Proceed without sending message"
    Referred this weblog  /people/stefan.grube/blog/2006/04/27/how-to-deal-with-stuck-eoio-messages-in-the-xi-30-adapter-framework
    Please suggest me how to deal with these...
    Regards
    Edited by: Bhavana Ch on Feb 14, 2011 5:56 PM

    Hi Bhavana,
    I came to a similar error situation when whether restarting nor canceling was possible and I was looking for an solution instead of restarting the whole java stack.
    We restart the messaging service of the java engine and this solves the error, canceling or restart was possible afterwards. The correct service should be XPI Service: Messaging System in Netweaver Adminstrator -> Operation Management -> Systems -> Start&Stop -> Java EE Service, unfortunately I lost my remarks of this error situation, so you have just to try it.
    If this will not solve the issue, I think you have to go for restarting the whole java server.
    please let me know if this solve the error.
    Regards,
    Jochen

  • 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.

  • OSB Transaction context (QoS exactly once)

    Hi all,
    First of all, excuse me my poor english...
    I need to understand how develope transactional services with OSB.
    My unit test are 2 proxy services : first with JMS/XA transport (with response requiered) with 2 Service Callout to transactional EJB with exactly once; second proxy routes the first with HTTP transport with exactly once.
    When services ends ok, or i reply with error in error pipeline, commit is executed; but if services failed, services no reply nothing until timeout proxy....then rollback is executed....
    In conclusion, i don't know how i develope transactional proxy services....i choose bad transports?, i don't understand pipelines?...i'm very confused...
    Thank you all

    Hi,
    i tested it without test console with no different results...and test console show me :
    Response Data :
    <con:metadata xmlns:con="http://www.bea.com/wli/sb/test/config">
    <tran:headers xsi:type="http:HttpResponseHeaders" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <http:Content-Type>text/xml</http:Content-Type>
    </tran:headers>
    <tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">1</tran:response-code>
    </con:metadata>
    Invocation Trace :
    System Error Handler
    $fault: <con:fault xmlns:con="http://www.bea.com/wli/sb/context">
    <con:errorCode>BEA-381501</con:errorCode>
    <con:reason>
    JmsAsyncMessageTable timed out message with id 2aa517390000011f37a92110ffff8035
    </con:reason>
    <con:location>
    <con:node>RouteNode1</con:node>
    <con:path>response-pipeline</con:path>
    </con:location>
    </con:fault>
    Always i try to route (tunneling http) with exactly once to proxies JMS/XA, if proxy throws exceptions, in http proxy i see this : "JmsAsyncMessageTable timed out message"....
    I'm disoriented...
    Thx you very much.

  • WL - MQ bridge in Exactly-Once mode not working

              I cannot get a message bridge from an MQ queue to a JMS queue to work in exactly
              once mode. I followed the directions in the 'Using Foreign JMS Providers with
              WebLogic Server' whitepaper (It works fine for atmost once). Once I configured
              weblogic correctly, I had a problem with made me think that I needed to use the
              class MQXAQueueConnection instead of MQQueueConnection as listed in the whitepaper.
              After that, I got an exception like 'XAResource not found.' Am completely stuck
              at this point.
              Does two phase commit actually work with WLS 6.1 and MQ 5.2 (?) ?
              

    Does this help?
              http://edocs.bea.com/wls/docs61/faq/msgbridge.html#500395
              Doug McGrath wrote:
              > I cannot get a message bridge from an MQ queue to a JMS queue to work in exactly
              > once mode. I followed the directions in the 'Using Foreign JMS Providers with
              > WebLogic Server' whitepaper (It works fine for atmost once). Once I configured
              > weblogic correctly, I had a problem with made me think that I needed to use the
              > class MQXAQueueConnection instead of MQQueueConnection as listed in the whitepaper.
              > After that, I got an exception like 'XAResource not found.' Am completely stuck
              > at this point.
              >
              > Does two phase commit actually work with WLS 6.1 and MQ 5.2 (?) ?
              >
              >
              

  • 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

  • Transaction Handling - JDBC Receiver Adapter - Multiple SP Calls

    Hello,
    I have the following scenario:
    I send an XML-SQL structure with multiple statment elements (each of them calling a different stored procedure). A stored procedure raises an error back to the JDBC Receiver Adapter in case of error.
    Is it possible to have transaction handling in the JDBC Receiver to ensure:
    - Commit only after ALL stored procedures where succesful (no error risen during calls)
    - Rollback of ALL already called stored procedures in case an error has been risen
    How can I implement these requirements in the JDBC Receiver Adapter?

    One more comment, I have found the following info for JDBC Drivers:
    <i> "JDBC driver's default is to autocommit, meaning that the result of every SQL statement is permanent as soon as it is executed. This is why the course hasn't had to be concerned with transactions so far, and is perfectly acceptable in many cases."</i>
    So I think that each SP-Call is automatically commited in case autocommit on JDBC Driver Level is set to "true". Does anyone know where I can change these settings? Directly on JDBC Receiver Adapter or do I have to go to Visual Admin for those changes?

  • Jdbc reciever error

    hi,
    My scenario is rfc to jdbc.Reciever shows the follwing error.
    Error while parsing or executing XML-SQL document: Error processing request in sax parser: Error when executing statement for table/stored proc. 'TBLTSEMPLOYEES_INTRA' (structure 'StatementName'): java.sql.SQLException: FATAL ERROR document format in structure 'StatementName': expected 'access' tag(s) not found.
    Pls help me.

    Hi,
    This is your structure.
    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:mes_emp_info xmlns:ns1="http://saphrandhrmas.com">
    <StatementName>
    <TBLTSEMPLOYEES_INTRA action="INSERT">
    <access>
    <EMPID>
    </EMPID>
    <REASON>
    </REASON>
    <CATEGORY>
    </CATEGORY>
    </EMP</access>
    </TBLTSEMPLOYEES_INTRA>
    </StatementName>
    </ns1:mes_emp_info>
    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:mes_emp_info xmlns:ns1="http://saphrandhrmas.com">
    <StatementName>
    <TBLTSEMPLOYEES_INTRA action="INSERT">
    <access>
    <EMPID></EMPID>
    <REASON></REASON>
    <CATEGORY></CATEGORY>
    <EMP></EMP>
    </access>
    </TBLTSEMPLOYEES_INTRA>
    </StatementName>
    </ns1:mes_emp_info>
    you are missing the tag <EMP> .
    Also put some values in the parameters,
    like,
    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:mes_emp_info xmlns:ns1="http://saphrandhrmas.com">
    <StatementName>
    <TBLTSEMPLOYEES_INTRA action="INSERT">
    <access>
    <EMPID>001</EMPID>
    <REASON>xyz</REASON>
    <CATEGORY>abc</CATEGORY>
    <EMP>abcdef</EMP>
    </access>
    </TBLTSEMPLOYEES_INTRA>
    </StatementName>
    </ns1:mes_emp_info>
    The resultant query will be,
    insert into TBLTSEMPLOYEES_INTRA values('001','xyz','abc','abcdef')
    Assuming all the fields are String type.
    Urs,
    Soorya.

Maybe you are looking for

  • How do I fix error 126 in installing the latest itunes update?

    How do I fix windows error 126 in installing the latest itunes update?

  • Video from iphone

    Does anyone know how to upload a video from your iphone to you mac? I'd eventually like to put it on my facebook account.

  • All Desktop Folders COPY items to and from, not move

    I just installed 10.6 on one of my computers, my tricked-out Mac Pro.... but now when I go to move anything in or out of any of the desktop folders, the files COPY to the desktop and do not MOVE to the desktop. I have looked for some setting and can'

  • Distorted images in Slideshow

    I have a website that I'm working on, and I put some images in a thumbnail slideshow. All of the colors are messed up? Any help? Thanks, Andrew

  • Illustrator CS2 will not install

    Hello- I just got a  new computer and went to install my copy of CS2.  However, everything installs EXCEPT Illustrator.  All of the other components work, but Illustrator does not install.  When I go to reinstall, the installer recognizes that Illust