Proxy Sender & JDBC Receiver

Dear Friends,
We are using PI 7.1.
The complete flow of control in the scenario i am right now working is as follows..
I have to send a single field from R/3 table to the clients Legacy System that is running on Oracle 10.2. Based on that field, data has to be fetched from 2 tables from the Oracle System and sent back as response.
Then some process happens at R/3 side using the fetched data. Based on the process certain flags in R/3 table are updated.
Again this (flag) has to be updated back in the one of the Oracle tables.
Right now i have decided to use Synchronous Proxy Sender and Asyn JDBC receiver.
Again for the last interface i have planned to use Asyn Proxy Sender & Async JDBC Receiver.
Please suggest me whether this is correct. Is there any other good way of realizing the above scenario.
Thanks
Ramesh

XI JDBC Adapter using stored procedures
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/40b92770-db81-2a10-8e91-f747188d8033
Re: problem in receiver JDBC adapter
Error With JDBC receiver adapter
JDBC Adapter (Receiver)
JDBC Adapter
go through these links..
Hope these helps..
Regards,
Parvathy

Similar Messages

  • Broken pipe error in Sync Send JDBC Receiver:   Extremely Serious issue

    Hi forum,
    I have a serious error in a JDBC->XI--> JDBC scenario,
    Step1: I use a sender JDBC channel to select some distinct values from  a table say X, and update the same rows,
    Query SQL Statement: select distinct Branch from dbo.X where status = 0
    Update SQL statement: update dbo.X set Status = 2 where Status = 0
    Step 2: enter BPM
    Step 3: enter a loop
    Step 4:make a synchronous call to the same table X, to fetch some records,
    SQL query: select * from X where status = 0 and Branch = i; Update X set status = 9 where Branch = i
    Step 5: close loop,  this loop iterates for 5 or 6 times depending on i, which is no. of branches selected by the sender JDBC channel
    so all the calls are to the same table, same databsse(SQL Server)
    the problem is when this sync calls happens in the loop, it some times gives following error, which i se in RWB:
    <b>Error Unable to execute statement for table or stored procedure. 'X' (Structure 'STATEMENT_X') due to com.microsoft.sqlserver.jdbc.SQLServerException: An exception occurred during the DBComms.transmit operation. Exception:Broken pipe (errno:32). Context:(2217)</b>
    i have no way to trace the cause of the error, the database is perfect and the error logs in the SQL server shows no trace of any error,
    Note: It works sometimes
    i dont know whom to approach, pls help
    the issue is very very serious as its in production system,

    Hi Sudeep,
    SAP Note 846079 - XI 3.0 JDBC Receiver: # of Retries on SQL Error w/o Effect
    Please check the following SAP note also - 831162
    Some info which i found there and can be relevant in to your scenario.....
    Q: I am using a JDBC Receiver Adapter in conjunction with the  Lotus Domino Driver for JDBC perform an INSERT or UPDATE operation on a database. When sending a message to the receiver, the Adapter Monitoring shows the following error message:
    "java.sql.SQLException: [Lotus][Domino Driver for JDBC]Invalid cursor state"
    Is there a fix for this issue?
    A: To work around this JDBC driver problem, activate the Advanced Mode for the respective JDBC Receiver channel and configure the setting "Number of Retries of Database Transaction on SQL Error" to a value > 0. Additionally, make sure that the setting "Database Auto-Commit Enabled" is also active as the Lotus Domino Driver for JDBC does not support transactions.
    Apply note 846079 before configuring this scenario.
    Q: The TCP/IP connection to my database host is running over an unreliable network connection, i.e. the connection is sometimes interrupted. Consequently, I sporadically receive an SQLException regarding a closed connection in the system trace or audit log or the connection as well as the JDBC Adapter channel are hanging.
    How can I work around this connectivity issue?
    A: Enable the "Advanced Mode" for the respective JDBC Adapter channel and select the option "Disconnect from Database After Processing each Message".
    Note that this might put additional load on your DBMS due to the creation of a new database connection for each message.
    I dont have access to a database right now, so i am not able to check this.
    Also check the JDBC driver compatability as mentioned in the above note.
    Cheer's

  • Using of Integration Scenario in a Abap Proxy to JDBC receiver synchronous

    Hi ,
    Can any one help me out  how to go about for creating Integraion scenario in ESR as i'm new to the use of Integration scenario..
    its an Abap proxy to Jdbc synchronous scenario... kindly help in this regards.

    Hi Indudhar,
    Right click on the namespace where you want to create the IS and say new, Select process integration scenario option, give a suitable name and say OK.
    In the Component View section right click on the first grey column and Insert a sender Application component. Enter ur product and the software component version. Like wise in the next grey column enter the target Application component.
    Now go to the top level menu and click on view and select grid.
    Now right click on each App. component and insert the created actions. If the scenario is sync then the actions will be side by side otherwise the target one will be in the next grid of the target app. component.
    After entering the actions click on the source action then press shift and click on the target action, right click and choose create connection between the two actions.
    Fill in the info and then save.
    Regards,
    Anshul

  • Scenario PROXY - SENDER FILE - RECEIVER FILE

    Hi Experts,
    I need to create a synchronous scenario where the proxy sends the filename to send and PI must transfer the file to a location X. The source file is in a different location of the destination file 
    This scenario, should this be done through Process Integration?
    Thanks,

    Hi,
    I think you can use a sync/async bridge to do your scenario and you wont need any development outside of using standard modules. The idea is to create a scenario Proxy(sync)-File(Async) -File (Async) without BPM. Check the point 8 in this document http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/80f96dbf-adca-3010-ffb5-daf2d1f0e276?QuickLink=index&…
    I have never tested this with the SFTP channel, and i dont know if this adapter supports the RequestOneWayBean and WaitResponseBean modules. May be you should wait to someone that confirms to you the possibility of using this modules with the SFTP adapter.
    Regards.

  • Updating in JDBC receiver adapter

    Hi Friends,
         I came across in the some sdn blogs, Like JDBC to JDBC scenarios i found that in the receiver JDBC adapter there is no place to write update statement or insert statement.Then how the records get updated in the DB.
    My actual need is to update the oracle db from sap, which currently using the following statement
    Loop at it_trn_ctl into WA_TRN_CTL.
    UPDATE TableA SET SAP_UPDATE = 'Y'
                                      WHERE PARENT_ID = :WA_TRN_CTL-PARENT_COIL .
    end loop.
    should replaced by XI, using the proxy to jdbc receiver. Where i can write the update statement and the where condition.
    Kindly revert back for queries.
    Thanks in advance
    Karthikeyan

    hi
    for updation no need to write any query,use update structure at reciever side
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/frameset.htm
    this contains action:udate and then
    key1: field that u want to update.
    key2:pass old value of field for matching(where conditon matching field)
    Edited by: Dharamveer Gaur on Sep 19, 2008 8:40 AM

  • Proxy to JDBC Sync, with Idoc Receiver

    Hello all,
    I have to set up following synchronous scenario.
    PROXY -> PI -> JDBC   |   JDBC -> PI -> PROXY
                                           JDBC -> PI -> IDOC
    In other words, I need that the response from the JDBC Receiver adapter is sent back to R3 to an IDOC and the originating PROXY.
    How can I achive this? I mean how can I send the synchronuos response back to the originating PROXY, and in the other hand send an asynchronous message to the IDOC.
    This is a message with a large quantity of info, so I'm not sure what to use or how to use it.
    Thanks for your help.
    Felipe

    Hi Felipe
    PROXY -> PI -> JDBC | JDBC -> PI -> PROXY
    JDBC -> PI -> IDOC
    The message to the IDOC need to be sent from response ?
    Is your proxy SYNC?
    Use a BPM for this
    1. receive the message from Proxy.(SYNC)
    2. Send it to JDBC (SYNC)
    3. Map the proxy request to JDBC request and JDBC response to Proxy response.
    4. Send the JDBC response to IDOC
    Thanks
    Gaurav

  • Problem with Stored Procedure exection in Sender and Receiver side of JDBC

    Hi All,
    I am facing problem while executing Stored Procedures using sender and receiver sides of JDBC adapter.
    Here is my SP in Oracle DB :
    PROCEDURE EMP                           
    ( ID IN VARCHAR2,NAME IN VARCHAR2,PROCESSED IN VARCHAR2  ) AS                                                          
    BEGIN                                                         
       INSERT INTO EMPLOYEE VALUES (ID, NAME, PROCESSED);COMMIT;END EMP;
    Now I want to execute this SP using sender JDBC channel and receiver JDBC channel.
    Can anyone please help me executing this SP?
    Regards,
    Soorya

    Hi Soorya,
    The receiver Data type should be like this:
    <StatementName>
    <storedProcedureName action=u201D EXECUTEu201D>
        <table>realStoredProcedureeName</table>
    <param1 [isInput=u201Dtrueu201D] [isOutput=true] type=SQLDatatype>val1</param1>
    </storedProcedureName >
      </StatementName>
    Check the link http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
    Which DB  are you using?? The sender structure will be like
    <resultset>
    <row>
    <field1></field1>
    <field2></field2>
    <field3></ field3>
    </row>
    </resultset>
    Search SDN you will get lot of examples
    Regards
    Suraj

  • Sender JDBC to Receiver RFC scenario

    Hi All,
    I have to configure an scenario of sender JDBC to receiver RFC wherein SAP PI will be pulling data from third party database (Oracle).
    Since I am configuring such scenario of sender JDBC, I want help on every important key aspects/prerequisites of configuring sender JDBC adapter/channel. I want to understand about Database Connection, Processing Parameters, etc. details while configuring sender JDBC channel and their significance/relevance.
    Also I need guidelines about the source data structure (message type or external definition) to be used/created in ESR.
    How sender JDBC channel and receiver JDBC channel differs from each other?
    Please guide me on this.
    Thanks & Regards,
    Amit Patil

    Hi Amit,
    First of all you should read the sap.help documentation:
    Configuring the Sender JDBC Adapter - Advanced Adapter Engine - SAP Library
    Configuring the Receiver JDBC Adapter - Advanced Adapter Engine - SAP Library
    Later, you can read Rajs's blog to advance concepts and perfomance JDBC Receiver scenarios best practices part-1
    Finally, search the other blogs and documents in the SCN.
    How sender JDBC channel and receiver JDBC channel differs from each other?
    JDBC sender always does a poll to a DB table (with join some tables) in wich table you will need a field checkbox to mark the registers read, and the the receiver JDBC you can do a typical SQL construction like SELECT, INSERT, DELETE, etc. Both cases need the JDBC DB driver installed (check the SAP notes for this, also you can find some examples in the SCN:http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/8000cffc-6b92-2d10-3493-f2ac1399242f?quicklink=index&…  PI/XI: deploy a JMS/JDBC driver without JSPM? ).
    Regards.

  • Using TEST mode in sender file channel to trigger jdbc receiver channel

    Hi
    In order to call a jdbc receiver channel every 15 minutes I intended to use a file sender channel as a trigger where I set the Processing Mode to TEST. However, I would like to make multiple simultaneous different calls to the jdbc receiver channel, so I have multiple files in the folder, where the file sender channel is listening. Quality of Service in the file sender channel is set to Best Effort as the call is syncroneous.
    However, because the messages in the folder are not deleted, only the first message is being processed no matter whether I choose Processing Sequence "By Date" or "By Name".
    I would like to avoid having to create 15 folders containing one message each, so is there another way of doing it?
    By the way, I redirect the response from the jdbc receiver channel to a different folder, but I think this is irrelevant in this case.
    I use PI 7.11
    /Mikael

    Thanks for your answer, but I would like to avoid using Availability planning.
    Right now I am thinking about using "Advanced selection for source file" and then just specify 14 different folders here each containing one trigger message, but it seems that only the oldest message (if I choose Processing Sequence = Date) or the first message alfabetically (if I choose Processing Sequence = Name) is being processed across the many folders which I think is very weird!

  • JDBC(Sender)-XI-RFC (Request) RFC (Response)-XI-JDBC(Receiver)

    Hi All,
    JDBC(Sender)-XI-RFC (Request)
    RFC (Response)-XI-JDBC(Receiver).
    Need some solution for sending email for successfully completion of scenario after updating SQL DB Table.
    Let me explain the scenario:
    We are pooling the SQL DB table to pull the records and map the records to RFC request parameters, after successful Posting the entries in R3 HR, RFC response contain the same with E (Error) S (Success) records status, we are updating the same in SQL DB table, I implemented the complete scenario without BPM with the help of module processor in Sending JDBC Adapter, scenario is working fine but now we have to send the successful mail to our support team with status contain Number of success, Error and total records as email.
    I need the solution how to implement the same requirement in current scenario.
    Is their way to do something with the RFC receiver adapter module addition to send the successful mail or generating Alert with all the description?
    I am at PI 7.0 SP12 with HP unix box.
    Thanks in Advance for creative idea
    With Regards
    Sunil

    Hi Bhavesh,
    Thanks for your help and your blog is really helpful. I implemented the UDF for generating Email Alert but this alert is generating before Updating the SQL Database, is their any way to generate alert after updating the SQL.
    Actually in my scenario we are sending the data from SQL to R3 by RFC and again updating the SQL status whatever the RFC return, after successfully updating SQL we need to send success email to support people but if we are sending the email before updating the DB then their will be problem.
    JDBC receiver after updating the SQL DB returns the response with No. of row updated but how to capture this response, if we can capture this response then we can send email through email adapter even their is one more problem, In my scenario I am counting the number of rows with status “S” and “E” and sending the same in alert email but if are sending email after updating the SQL DB where can hold the row count value and use it while sending the email.
    Implemented the scenario without using BPM..i am using sender JDBC module processor for Syn-Asyn bridge.
    Even I do not find the link to reward point. Please let me know how to do it.
    With Regards
    Sunil

  • Using Stored procedure in sender or receiver jdbc adapter

    Hi All,
    Please let me know simple blogs for Stored procedure used in sender or receiver jdbc adapter to get data from 2-3 tables
    Thanks

    Hi
    To work with Store proceudres (SP) you have to create the SP's in database like Oracle, Mssql or Msaccess.
    Ususally the SP creations are done by database experts. For more info about "SP" try Googling!
    The below blog is about SP but not the one you expect!
    /people/itisha.alok/blog/2009/03/23/jdbc-stored-procedure-returning-multiple-resultsets
    Executing an Oracle Stored Procedure from Sender JDBC adapter
    Sender Adapter - -
    SP will contain the select Query alone or with it will contain insert, delete statement too.
    Receiver:
    SP will have insert or delete satement.
    Adapter
    http://help.sap.com/saphelp_nw04/helpdata/en/2c/181077dd7d6b4ea6a8029b20bf7e55/frameset.htm
    The below details are required  to configure the adapters
    Driver details
    database name
    Procedure name
    user name
    password,
    Regards
    Ramg

  • JDBC receiver and sender concern

    Hello,
    In one of the sender JDBC communication channel we have below queries,
    1) Sender comm channel
    select * from table1 where flag = ' '  
    update table1 set flag ='X' where flag = ' ' 
    We are setting the flag to X to identify which entries are read.
    Suppose while setting the flag 'X' if the user inserts new values which were not part of my selection during the retrieval then the new entries which are not part of my select query would also be set to 'X'.
    2) Receiver JDBC comm channel
    file to jdbc
    suppose i have 1 file with 100 entries inserting into JDBC table. I see that if there is any error at 50th record during insert then database is not rolling back the 50 records that are updated.
    Kindly suggest your inputs .

    >Suppose while setting the flag 'X' if the user inserts new values which were not part of my selection during the retrieval then the new entries which are not part of my select query would also be set to 'X'.
    Basically you need to make setting so that concurrent access to the database server will be avoided. For that you have to go for transaction level serializable (strongest setting)
    >suppose i have 1 file with 100 entries inserting into JDBC table. I see that if there is any error at 50th record during insert then database is not rolling back the 50 records that are updated.
    This might not be possible. You expect rollback in case of error occured in one record. You might need to correct the data that you send  for updates.  Insert is failing due to data issues. But you might want to check whether your JDBC drivers supports transaction.

  • Message protocol is different for sender and receiver JDBC

    In File adapter the message protocol can be either FTP or NFS for both sender as well as receiver. but for JDBC adapter the message protocol is JDBC and for receiver adapter the message protocol is XML SQL Format or native sql string only. Why this is different ? Why cant we use JDBC as message protocol for receiver also ?
    I thought JDBC is the message protocol for JDBC adapters irrespective of whether they are sender or receiver. Can someone throw light on this ?

    Hi,
    You can find more about JDBC scenario at following links:
    Configuring the Sender JDBC Adapter
    [http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm|http://help.sap.com/]
    [http://help.sap.com/saphelp_nw04/helpdata/en/1d/756b3c0d592c7fe10000000a11405a/content.htm|http://help.sap.com]
    Configuring the Receiver JDBC Adapter
    [http://help.sap.com/saphelp_nw2004s/helpdata/en/b0/676b3c255b1475e10000000a114084/content.htm|http://help.sap.com]
    [http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/content.htm|http://help.sap.com]
    [https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/6d36d51d-0b01-0010-b3aa-9cb313b63cf4|https://help.sap.com]
    Regards,

  • BPM Question: JDBC Sender to RFC to JDBC Receiver

    I have the following requirement:
    JDBC Sender Adapter (by nature Asynchronous) – SELECT multiple rows from a table
    To…
    RFC Receiver Adapter (Synchronous)
    To…
    JDBC Receiver Adapter (Synchronous) – UPDATE multiple rows in a table
    Then…
    IF <SAP:Error> XML is returned from the JDBC Receiver Adapter, I want to either issue a CCMS alert, or utilize the XI Email Adapter for error notification. 
    ELSE, if <root_response> XML is returned from the JDBC Receiver Adapter, do nothing.
    This obviously requires a BPM.  If I use the JDBC Receiver Adapter Asynchronously (with no error handling) this is a piece of cake.  But after trying to use it synchronously along with error handling logic, I am stuck.
    This issue that I am facing is how to logically handle the JDBC Receiver Adapter Response XML in the BPM.  I would like to know what I need to do in the BPM in order to issue a CCMS alert (and/or send a message through the XI Email Adapter) ONLY if the <SAP:Error> XML is returned. 
    Below are examples of the 2 types of response messages that I would receive back from the JDBC Receiver:
    Error:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
      <!--  Call Adapter -->
      <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIAdapterFramework</SAP:Category>
      <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'SAP_OrderImport' (structure 'StatementName2'): java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Violation of PRIMARY KEY constraint 'PK_SAP_OrderImport'. Cannot insert duplicate key in object 'SAP_OrderImport'.</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Success:
      <?xml version="1.0" encoding="utf-8" ?>
      <root_response>
      <StatementName1_response>
      <update_count>1</update_count>
      </StatementName1_response>
      </root_response>
    I have searched SDN for a while but did not find anything that specifically addressed this.  I would appreciate any help…

    Hi,
    In ur BPM wrap the jdbc send step with a exception block. in the exception block define a control step to throw an alert.
    so when the jdbc step fails, the exception is caught and an alert is generated by the control step.
    cheers,
    naveen

  • Question about Sender and Receiver Structure for JDBC

    Dear All,
    I want to know why there is a fixed format for sender and receiver structure for JDBC. why cant we use the structure like what we want? explain me in detail.
    Thanks

    Good Question:
    We have to create our data structure based on the existing database table structure. While reading or writing , JDBC adapter convert our data type structure in to SQL Query Statements that matches Table structure.

Maybe you are looking for