JDBC Adapter (Receiver)

Hi All,
Am using a scenario where in Receiver is "JDBC Adapter" , it should update my Acess.mdb file placed in the XI Server path
But after config i get below error :
Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: JDBC Adapter configuration not initialized: null
Any clue where it went wrong
Thanks in advance
srini

Have you deployed these drivers (msbase.jar, mssqlserver.jar, msutil.jar) and provider.xml file in Visual admin corectly??
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3867a582-0401-0010-6cbf-9644e49f1a10
You can check in the following path if the drivers are installed correctly:
usrsap<SID>DVEBMGS<Instance Number>j2eeclusterserver0 inextcom.sap.aii.af.jmsproviderlib

Similar Messages

  • JDBC-Adapter-Receiver Calling Stored Procedure with Input-Typ Record

    Hallo,
    I´ m trying calling a stored-procedure with two input-parameter; one of typ record (oracle) and one of type tabel of records. Is this possible (I think there are only types like string, integer etc. possible)? When not is there another possibility to work with that type?
    Thanks in advance,
    Frank

    Hi Frank,
    I think stored procedures will not take Array of Records as a Input. If you want to make a loop funtionality etc then JDBC adapter will work accordingly. You need to just call the stored procedure from the JDBC adapter. It will work for the array of records(multiple occurences).
    Receiver JDBC Procedures.
    /people/siva.maranani/blog/2005/05/21/jdbc-stored-procedures
    Alternative option is you can make use of Java Proxy and from there you can call stored procedure ..I think it is possible.. not tried.
    Hope this helps
    Regards,
    Moorthy

  • Synchronous JDBC adapter(receiver side) with stored procedure

    Hi experts,
    Can some database processing logic be included in receiver JDBC (synchronous) adapter...to put it simply
    I have synchronous JDBC adapter in the receiver side..Using this JDBC adapter I want to get some response back from the table..
    The requirement is not a simple fetch from the table..It involves some processing in the database side which I guess will be done by stored procedure..After this database processing , this output will be picked up by the JDBC adapter and will send to PI.
    How can this be achived ..Any Blog..
    Thanks
    Ayan

    Yes u can use stroed procedure and send back the response,
    refer this link for stored procedure structure.
    http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
    chirag.

  • JDBC Adapter Receiver dynamic connection string

    Hi,
    I'm developing an IDOC-JDBC scenario and I need to send data to one of the different databases depending of one field in the IDOC. All databases are identical, the only difference is the server where they are. We are using SAP PI 7.0. If you need more information, please report.
    Best Regards,
    Alfredo Lagunar.

    Hi Alfredo,
    no bother to think about dynamic varialble substitution or something like that, which might be possible, might be not. In this case, you just configure several receiver channels and serveral receiver business services. By using the conditioning(XPATH) winthin receiver determination you can route your XML message to the JDBC database with different IP addresses.
    Actually SAP is using the same solution in one of its standard implementation: ELSTER (Electronic Tax Claim, in german Elektronische Steuererklärung). The only difference is the receivers are HTTP endpoint, not JDBC. But the idea is the identical: they are all having different IPs, like your databases.
    Hope it inspires.
    Regards,
    Chen

  • Strange behavior of JDBC Adapter

    Hello everybody!
    I found a pretty strange behaviour of JDBC Receiver Adapter during problems with network (big thanks to our Basis). According to the status in Adapter Engine, the message wasn't processed. In the database I can see these inserts. However, there are more lines in the XML than lines in the database. So, how it is possible that adapter commits only part of inserts. Logs and settings see below.
    My XML includes a SQL_DML statement and a few INSERT statements, each contains many inserts.
    It looks like that:
    <?xml version="1.0" ?>
    <MyMessage>
        <statement>
            <table1 action="SQL_DML">
                <access>here I delete old values</access>
            </table1>
        </statement>
        <statement>
            <table2 action="INSERT">
                <access>some data</access>
            </table2>
        </statement>
        <statement>
            <table3 action="INSERT">
                <access>some data</access>
            </table3>
        </statement>
    </MyMessage>
    Part of adapter log is here:
    Information
    Message successfully put into the queue
    Information
    The message was successfully retrieved from the receive queue
    Information
    Message status set to DLNG
    Information
    Delivering to channel: Adapter_Name
    Information
    MP: processing local module localejbs/CallSapAdapter
    Information
    Receiver JDBC adapter: processing started; QoS required: ExactlyOnce
    Information
    JDBC Adapter Receiver Channel Adapter_Name: Processing started; party / service BS
    Information
    Database request processed successfully
    Error
    MP: exception caught with message Ack handling failed: creation of messageFactory failed: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Connection JDBC_http://sap.com/xi/XI/System is currently not started.
    Error
    Exception caught by adapter framework: Ack handling failed: creation of messageFactory failed: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Connection JDBC_http://sap.com/xi/XI/System is currently not started.
    Error
    Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.lang.Exception: Ack handling failed: creation of messageFactory failed: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Connection JDBC_http://sap.com/xi/XI/System is currently not started.
    Information
    Message status set to WAIT
    Information
    The asynchronous message was successfully scheduled to be delivered at ...
    Information
    Message status set to TBDL
    Information
    Retrying to deliver message to the application. Retry: 1
    Information
    The message was successfully retrieved from the receive queue
    Information
    Message status set to DLNG
    Information
    Delivering to channel: Adapter_Name
    Information
    MP: processing local module localejbs/CallSapAdapter
    Information
    Receiver JDBC adapter: processing started; QoS required: ExactlyOnce
    Information
    JDBC Adapter Receiver Channel Adapter_Name: Processing started; party / service BS
    Error
    Unable to execute statement for table or stored procedure. 'Table' (Structure 'statement') due to com.microsoft.sqlserver.jdbc.SQLServerException: Violation of PRIMARY KEY constraint 'fields'. Cannot insert duplicate key in object 'Table'. The duplicate key value is (field values).
    Error
    JDBC message processing failed; reason Error processing request in sax parser: Error when executing statement for table/stored proc. 'Table' (structure 'statement'): com.microsoft.sqlserver.jdbc.SQLServerException: Violation of PRIMARY KEY constraint 'fields'. Cannot insert duplicate key in object 'Table'. The duplicate key value is (field values).
    Error
    MP: exception caught with cause com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'Table' (structure 'statement'): com.microsoft.sqlserver.jdbc.SQLServerException: Violation of PRIMARY KEY constraint 'fields'. Cannot insert duplicate key in object 'Table'. The duplicate key value is (field values).
    Error
    Exception caught by adapter framework: Error processing request in sax parser: Error when executing statement for table/stored proc. 'Table' (structure 'statement'): com.microsoft.sqlserver.jdbc.SQLServerException: Violation of PRIMARY KEY constraint 'fields'. Cannot insert duplicate key in object 'Table'. The duplicate key value is (field values).
    Error
    Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'Table' (structure 'statement'): com.microsoft.sqlserver.jdbc.SQLServerException: Violation of PRIMARY KEY constraint 'fields'. Cannot insert duplicate key in object 'Table'. The duplicate key value is (field values).
    Adapter settings:
    Maximum concurrency: 20
    Persistence: Local
    Conflict Resolution: Redo
    Advanced Mode: On
    Number of Retries of Database Transaction on SQL Error: 0
    Transaction Isolation Level: serializable

    Dear All,
    Follow the steps below to resolve the "Connection JDBC_http://sap.com/xi/XI/System is currently not started." issue:
    1. Log in to NWA
    2. Navigate to Operations -> Systems -> Start & Stop
    3. Click on Java Services tab
    4. Search  the service Service "XPI Adapter: JDBC"
    5. Select the service XPI Adapter: JDBC and click on Restart button
    With the restart of JDBC Service in NWA, the channels should start working properly
    Regards,
    Shreyansh

  • Inserting Multiple Rows into Database Table using JDBC Adapter - Efficiency

    I need to insert multiple rows into a database table using the JDBC adapter (receiver).
    I understand the traditional way of repeating the statement multiple times, each having its <access> element. However, I am just wondering whether this might be performance-inefficient, as it might insert records one by one.
    Is there a way to ensure that the records are inserted into the table as a block, rather than record-by-record?

    Hi Bhavesh/Kanwaljit,
    If we have multiple ACCESS tags then what happens is that the connection to the database is made only once. But the data is inserted row by row.
    Why i am saying this?
    If we add the following in JDBC Adapter..logSQLStatement = true. Then incase of multiple inserts we can see that there are multiple
    <i>Insert into tablename(EMP_NAME,EMP_ID) VALUES('J','1000')
    Insert into tablename(EMP_NAME,EMP_ID) VALUES('J','2000')</i>
    Doesnt this mean that rows are inserted one by one?
    Correct me if i am wrong.
    This does not mean that the transaction is not guaranted. Either all the rows will be inserted or rolled back.
    Regards,
    Sumit

  • SQL Statement on JDBC Adapter

    Hi all,
    how can I see the SQL Statement which is made by the JDBC Adapter.
    I have createt the XML Structure, but I want to know how PI (7.11) transformed the XML to SQL.
    How can I trace the JDBC Adapter? Which configuration is neccessary? Where can I find the trace?
    Thanks very much for your help!
    Jürgen

    Hi,
    this is my Auditlog
    Audit-Protokoll für Message: caded0e4-b287-1def-92a9-907432c01001
    Zeitstempel Typ Beschreibung
    2010-04-16 13:38:02 Information The message was successfully received by the messaging system. Protocol: XI URL: http://serv3709:52800/MessagingSystem/receive/AFW/XI Credential (User): PIISUSER
    2010-04-16 13:38:02 Information Using connection JDBC_http://sap.com/xi/XI/System. Trying to put the message into the request queue.
    2010-04-16 13:38:02 Information Message successfully put into the queue.
    2010-04-16 13:38:02 Information The message was successfully retrieved from the request queue.
    2010-04-16 13:38:02 Information The message status was set to DLNG.
    2010-04-16 13:38:02 Information Delivering to channel: test_etl
    2010-04-16 13:38:02 Information JDBC Adapter Receiver processing started, required QoS BestEffort
    2010-04-16 13:38:02 Information JDBC Adapter Receiver Channel test_etl:  processing started; party   / service E_DWH.
    2010-04-16 13:38:02 Information IS_RUN.MAP_SYS_LADELAUF_START.MAIN
    2010-04-16 13:38:02 Information Database request processed successfully.
    2010-04-16 13:38:02 Information The message was successfully delivered to the application using connection JDBC_http://sap.com/xi/XI/System.
    2010-04-16 13:38:02 Information The message status was set to DLVD.

  • JDBC Adapter - Connectivity

    I connect to Oracle Database using JDBC Adapter and the adapter is configured to poll every 300 secs.
    The Oracle Database goes down over the week end for maintenance. By the time I come Monday morning the Adapters are down and I have to reactivate them from ID. I assumed that the Retry interval will take care of the issued.
    Is there any way to stop this from happening?
    Regards
    Michael

    Hi Michael,
    Like mentioned by Amol, <b>Disconnect from Database After Processing Each Message</b> will do the trick.
    Every time your JDBC adapter receives a message for processing , it will connect to the database the details  provided in the Adapter Configuration.
    Normally, if you do not select this option, your JDBC adapter will connect to the Database once when it is getting activated and will use the same connection for further processing. But, if the Database resets this connection , there is no way the JDBC adapter isaware of this, and the next time a message is processed by it, it will get disconnected.
    So, if this DB disconnection is going to happen frequently, you need to have the option Disconnect from Database After Processing Each Message selected.
    Regards,
    Bhavesh

  • JDBC adapter Commit/Rollback

    Hi Guys, I got a question regarding JDBC adapter auto commit. Hopefully you guys can help me :). Until now, when my XI calling a storedprocedure in ORACLE using JDBC adapter, it will automatically commit the calling. When i see my configuration for the JDBC adapter receiver, the checkbox for Enable Autocommit is thicked. My question is, is there anyway that we handle the commit or rollback ourself. How we can handle that? Is it from the BPM or just from the Configuration.
    Thank you very much in advance for all replies, advices and answer. Cheers guys..

    Hi
    Try this out
    You can programmatically set auto commit to true as in follows
    // Load the Oracle JDBC driver
    DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
    // Connect to the database
    // You can put a database hostname after the @ sign in the connection URL.
    Connection conn =
          DriverManager.getConnection ("jdbc:oracle:oci:@", "scott", "tiger");
    // It's faster when auto commit is off
    <b>conn.setAutoCommit (true); </b>
    // Create a Statement
    Statement stmt = conn.createStatement ();
    regards
    krishna

  • Table name in Receiver JDBC Adapter

    Hi All,
    I am using receiver JDBC adapter.
    But table name consist of " like BPC."#II" .
    After mapping table name becomes BPC.&quot;#II&quot; .
    I am getting error while pulling data from DB.
    Is the table name creating a problem.
    Please remedy of this if you have come across such scenario.
    Regards
    Piyush

    Hi Piyush,
    All that i could get from the SAP Help regarding JDBC Adapters are these links where i never found anything much regarding the table name.anyways just go through these links and see if you find anything useful.
    http://help.sap.com/bp_bpmv130/Documentation/Planning/XIUnicodeGuide030411.pdf
    <a href="http://help.sap.com/saphelp_nw04/helpdata/en/b0/676b3c255b1475e10000000a114084/content.htm">Configuring the Receiver JDBC Adapter</a>
    <a href="http://help.sap.com/saphelp_nw04/helpdata/en/cf/406642ea59c753e10000000a1550b0/content.htm">Mapping Lookups</a>
    <a href="http://help.sap.com/saphelp_nw04/helpdata/en/22/b4d13b633f7748b4d34f3191529946/content.htm">JDBC Adapter</a>
    <a href="http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/content.htm">Configuring the Receiver JDBC Adapter - part 2</a>
    This is all i got from the help files, anyways you can also go through those links and see if you find anything else useful.
    - Escape Symbol for Apostrophe
    The apostrophe character (‘) is a reserved character in SQL syntax and is therefore replaced by an escape character if it occurs within value strings. This replacement character can be database-specific. Typical replacement characters are \’ or ’’(default value). If a character occurs that is invalid for the database being used, the adapter triggers an error message (an SQL exception) concerning the SQL syntax that is generated by the database.
    - Column Name Delimiter
    Depending on the database being used, column names can be enclosed by a special delimiter character, for example, if the names can contain special characters (such as ”). This character can be specified at this point. The default setting is no delimiter character. If a character occurs that i
    Also check if there are notes in the service market place related to the same.
    Regards,
    abhy
    Message was edited by: Abhy Thomas

  • How to handle BLOB field in receiver JDBC adapter into ABAP table

    Dear Experts,
    I am working in a synchronous scenario with Sender ABAP Proxy to Oracle Database as receiver via SAP PO 7.4.I will be calling a stored procedure view with fields ID, NAME,Age,*** and BLOB (Image binary).
    1. The response from Oracle Database field BLOB is to be stored in ABAP table.Would I have to write any JAVA program to read the BLOB or the receiver JDBC adapter will handle it and store in a table by using ABAP proxy once it reaches ECC.
    2. If yes, would the JAVA program have to deal with other 4 fields.
    3. Can I use a UDF mapping to this BLOB field.
    Regards
    Rebecca...

    Dear Praveen,
    Thanks for your response...
    Please correct me if I am wrong.
    1. For 1-1 response mapping for BLOB field, I will use just use the below UDF code.
    public static byte[] hexStringToByteArray(String s) { 
                int len = s.length(); 
                byte[] data = new byte[len / 2]; 
                for (int i = 0; i < len; i += 2) { 
                            data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) 
                                                                                         + Character.digit(s.charAt(i+1), 16)); 
                return data; 
    2. ===Using the byte data, create binary attachment in mapping for abap proxy response===
    Could you please share how to create the binary attachment.. I am not clear
    Regards...

  • Receiver jdbc adapter:how to implement the insert or update action in a sql

    Hi,gurus:
    I'm using receiver jdbc adapter now.
    You know, we have to gave the action the value 'update' or 'insert',but in our case,the action is variant--update or insert.It decides whether the record exists in the outer database.
    Can stored procedure do this?If I use stored procedure,then must I create a stored procedure in the outer database?
    Or some other ways to solute my issue?
    THanks in advance.

    Hi
    Use Action UPDATE_INSERT .
    This action check if a record exist with same key value then update that record. In case no record with key value found in database then record inserted to database.
    look receiver structure
    http://help.sap.com/saphelp_nw2004s/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm

  • Receiver JDBC Adapter testing?

    Hi
    Can any one tell me ..how do I test specific adapter w'ther it is connected or not?
    I have cross checked using adapter monitor, my jdbc adapter doesn't showing specific error(red) or success(green),in same JDBC monitor remainig channels showing all information..i thought it unable to connect?Am I correct?
    Did i do any specific settings in JDBC receiver communcication channel?
    I left default settings as it is in CC..
    after giving driver details...i left default settings ..
    1. Interpretation of empty string values = Null value
    2. Persistance          = Local
    3. Conflict resolution  = Redo
    and my datatype structure like this:
    <StatementName>
    <table>Payment_ReceiptFromSAP</table>
    <dbTableName action=”INSERT”>
    <access>
    <col1>ComapnyCode</col1>
    <col2>PaidDate</col2>
    <col3>PaidAmount</col3>
    </access>
    </dbTableName> 
    </StatementName>
    mapping is working fine, tested! RFC sender channel working fine, picking the data from SAPR/3.
    SXMB _MONI -- I haven't find any payload ..why? I thought if RFC is picking the daata properly then XI will hold that data into integration server?..how do i find this data?
    It would be appriciated and rewarded , if you make me clear in this situvation..thanks in advance.!
    Regards..rambarki!

    hi,
    >>I have cross checked using adapter monitor, my jdbc >>adapter doesn't showing specific error(red) or >>success(green),in same JDBC monitor remainig channels >>showing all information..i thought it unable to connect?Am >>I correct?
    you will see in adapter monitoring only after the first time the call is made, the bean in generated and you will be able to see in atapter monitoring.
    >>SXMB _MONI -- I haven't find any payload ..why?
    is ur scenaio synchronous?? if so then make sure you have logging set in sxmb_adm
    Configuration -> Integration Engine Configuration -> Change Specific Configuration Data.
    Category : Runtime
    Parameter : LOGGING_SYNC
    value : 1 (activated)
    Cheers,
    Naveen

  • Order By clause in Receiver JDBC adapter

    Hello All,
    Is it possible to construct a select statement that uses an Order by clause in JDBC receiver adapter?
    ex : I would like the JDBC adapter to from a query as follows:
    <b>Select * from EMP where sal = 10000 order by empid</b>
    We are able to construct the select statement without order by clause but not with it.
    Can any one suggest me how to do it. This is bit urgent for us.
    Thanks
    Abinash

    hi,
    did you try with
    SQL_DML
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
    Regards,
    michal

  • Sync Receiver JDBC Adapter

    Hi All,
    I was trying to make a synchronous call to a receiver jdbc adapter with the help of
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/3928. [original link is broken] [original link is broken] [original link is broken] [original link is broken]
    I am getting the following error in jdbc adapter.
    <i>com.sap.aii.af.ra.ms.api.DeliveryException: ERROR:Processing request: Error when executing statement for table/stored proc. 'MISDetails': java.sql.SQLException: FATAL ERROR document format: structure 'STATEMENT', key element 'FiscalYear' contains no values</i>
    My Source message is
    <i><?xml version="1.0" encoding="UTF-8"?>
    <ns:MT_FILE_OUT xmlns:ns="urn:ters">
      <REQUEST>
        <FISCALYEAR>2007</FISCALYEAR>
        <YEARMONTH>1</YEARMONTH>
        <OPERATION>EQ</OPERATION>
      </REQUEST>
    </ns:MT_FILE_OUT></i>
    And JDBC request message is ..
    <i><?xml version="1.0" encoding="UTF-8"?>
    <ns:MT_JDBC_REQ xmlns:ns="urn:ters">
    <STATEMENT>
    <TABLENAMEACTION="SELECT">
    <TABLE>MISDetails</TABLE>
    </TABLENAME>
    <ACCESS>
    <FiscalYear> </FiscalYear>
    <YearMonth> </YearMonth><ProductCode> </ProductCode><TargetVolume> </TargetVolume>
    </ACCESS>
    <KEY>
    <FiscalYear compareOperation="EQ">2007</FiscalYear>
    </KEY>
    </STATEMENT>
    </ns:MT_JDBC_REQ></i>
    Regards,
    Sumit

    Sumit, the problem is that </TABLENAME> is closed ealier than necessary.
    This is how the JDBC datatype should be,
    <?xml version="1.0" encoding="UTF-8"?>
    <ns:MT_JDBC_REQ xmlns:ns="urn:ters">
    <STATEMENT>
    <TABLENAME ACTION="SELECT">
    <TABLE>MISDetails</TABLE>
    <ACCESS>
    <FiscalYear> </FiscalYear>
    <YearMonth> </YearMonth>
    <ProductCode> </ProductCode>
    <TargetVolume> </TargetVolume>
    </ACCESS>
    <KEY>
    <FiscalYear compareOperation="EQ">2007</FiscalYear>
    </KEY>
    <b></TABLENAME></b>
    </STATEMENT>
    </ns:MT_JDBC_REQ>
    The TABLE, ACCESS and KEY come under the TABLENAME tag.
    Regards,
    Bhavesh

Maybe you are looking for

  • BADI/User Exit for Checking Conditions in TRM Transactions

    Hi  All, I have to check some conditions before saving the transaction FTR_CREATE. So that based on that condition it will be known that whether that transaction will save or not.  I found some BADIs, but those are particularly working for Money mark

  • 3G phone slow to receive email

    I'm running 4.2.1 on a 3G on AT&T.  All email accounts set to PUSH. My me.com email comes through instantly, moments after it has been sent. My other accounts (which are configured the same, as closely as possible to me.com), however, can take someti

  • Auto suspend on idle without Gnome or KDE? [SOLVED]

    This may be a stupid question but I've never had to actually mess with this before on a system without Gnome or KDE installed (they have their own utilities which tends to make this easy) and I've spent an hour researching to no avail. I'm looking fo

  • Error when calling BAPI from web dynpro

    Hi, I have a program that calls a BAPI to retrieve data. The problem is that i have the following error message: com.sap.dictionary.runtime.DdException: 'WD_RFC_LOADBL_META' not properly defined! Unable to create Metadata connection for Dictionary Pr

  • Invoice workflow   "No Approval available"

    Hi Guys,   I have an issue with custom invoice workflow...when an invoice is created and a approver is added via add approver...after adding those approvers....the approval preview shows those added approvers as to be approved by...but after posting