Endeca JDBC adapter issue

Hi,
When I ran my baseline with one jdbc record adapter there was no issue.
When I added one more JDBC record adapter it fails.
I have mentioned the pass through properly itself
COLUMN_HANDLER_CLASS     com.endeca.soleng.itl.jdbc.AdvancedJDBCColumnHandler
SEVERE: Failed to load JdbcColumnHandler: com.endeca.soleng.itl.jdbc.AdvancedJDBCColumnHandler.
com.endeca.edf.adapter.plugins.JdbcAdapterException: Failed to load JdbcColumnHandler: com.endeca.soleng.itl.jdbc.AdvancedJDBCColumnHandler.
     at com.endeca.edf.adapter.plugins.JdbcAdapter.loadColumnHandler(JdbcAdapter.java:267)
     at com.endeca.edf.adapter.plugins.JdbcAdapter.execute(JdbcAdapter.java:84)
     at com.endeca.edf.adapter.AdapterRunner.run(AdapterRunner.java:168)
     at com.endeca.edf.adapter.AdapterRunner.main(AdapterRunner.java:43)
Caused by: java.lang.ClassNotFoundException: com.endeca.soleng.itl.jdbc.AdvancedJDBCColumnHandler
     at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
     at java.security.AccessController.doPrivileged(Native Method)
     at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
     at java.lang.Class.forName0(Native Method)
     at java.lang.Class.forName(Class.java:169)
     at com.endeca.edf.adapter.plugins.JdbcAdapter.loadColumnHandler(JdbcAdapter.java:263)
     ... 3 more
Please suggest possible approach/solution
Edited by: 942212 on Nov 23, 2012 8:03 PM
Edited by: 942212 on Nov 23, 2012 10:56 PM

Just to confirm, can you check if you have provided the class path in other adapters also. Cuz you are getting ClassNotFound exception which can only happen if you dont provide the class path to AdvJDBCColumnHandler.jar.
HTH
--Pravin                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

Similar Messages

  • JDBC Adapter Issue

    Hi Experts,
    I have an issue with my XI JDBC adapter.  Once a job gets sent through XI (from nonSAP to XI to SAP), the JDBC adapter is required to write a confirmation in the database that the job was processed in SAP.
    When I go into my Adapter Monitor (http://system:num/AdapterFramework/) I see a red dot beside JDBC and the following error:
    Error: Transform error in xml processor class, rollback:
    ERROR:Processing request: Error when executing statement for table/stored proc. 'stfx.job_copy': com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after statement closed.
    Any ideas??

    Hi Bhavesh,
    I update with the XML coming out of XI.  All I need to update is the status.  This XML currently does come out of XI and would be sent back to my database, except for the fact that the JDBC adapter goes down, and I get the originally mentioned error.  The XML looks like:
      <?xml version="1.0" encoding="UTF-8" ?>
    - <ns0:MT_UPDATE_STATUS xmlns:ns0="http://tssi.ycdsb.ca">
    - <STATEMENTNAME>
    - <dbTableName action="UPDATE">
      <TABLE>sfx.job_copy</TABLE>
    - <access>
      <status1>DONE</status1>
      <status2>DONE</status2>
      </access>
    - <key>
      <jobId>00595593</jobId>
      <status1>NEW</status1>
      <messagenm>d3e98e294bfcd2d5d3e98e29</messagenm>
      </key>
      </dbTableName>
      </STATEMENTNAME>
      </ns0:MT_UPDATE_STATUS>
    Any ideas?

  • Sender JDBC Adapter issue.

    Hi folks,
    I would like to know how can I configure a sender JDBC channel without specify a poll interval? I know that I can specify this poll interval with a period of time that I want; it could be in seconds and even in mseconds. But, this can cause a lot of access to the Data Base SQL Server and consequently can cause network slowness.
    I would like to know if there is any data base event that can trigger my jdbc sender adapter or any other workaround that can prevent many accesses to one Data Base.
    Any ideas are appreciated.
    Thanks in advance,
    Ricardo.

    Hi,
    with XI SP19 you can schedule your jdbc adapter easily:
    (in standard)
    /people/shabarish.vijayakumar/blog/2006/11/26/adapter-scheduling--hail-sp-19-
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • JDBC Adapter Connection Issue

    Hi Experts,
    The scenario is file to JDBC, the messages are getting failed in XI MDT with the following error "JDBC Message processing failed ,reason when attempting to get processing resources: com.sap.aii.af.service.utill.concurrent.ResourcePoolException: Unable to create new pooled resource: DriverManagerException: Cannot establish connection to URL<JDBC Connection details maintained in CC>: SQLException: Io exception: The Network Adapter could not establish the connection".
    We got this error after changing the IP addreass of the Oralce system. we did maintained in all the communication channels with new IP Address, previously the data is updating to the Oralce table with old IP addreass.
    IP address is also maintained in XI Host file. We are able to ping the Oralce from XI with new IP.
    Can any body suggest how to rectify the issue.
    Thanks in Advance
    Bhaskar

    Hi,
    have you checked cache status. It is possbile that the change hasn't been applied yet. That would explain, why the database can't be reached.
    Stop/Start of communication channel might also help. Sometimes it si necessary to restart the whole JDBC Adapter.
    If all this fails, you should get yourself a free copy of DBVisualizer, use the same database driver as is installed on PI, provide credentials and try to reach database. Might also be a driver issue.
    Regards
    Sven

  • Sender JDBC Adapter Select/Update Issue

    Dear All,
    We have configured a Sender JDBC Adapter to Poll data from the DB2 tables. It is working fine and both the select and the update queries written are also getting properly executed and are changing the status of the flag from Y to N once read from database.
    In the communication channel ->
    select * from <table> where flag = 'N'.
    update <table> set flag = 'Y' where flag = 'N'.
    But I have one doubt after executing the select query some new data comes into the table of status flag 'N"., then will this unselected data will also be updated to 'Y' .
    The question is while we do a select and update from XI on the DB table and at the same time there is an insert happening into the table from the other end how will the adpater behave in this case.Will it result in missing of some records during next select/update transaction from XI..
    Your inputs will be appreciated.
    Regards
    Amit

    Amit
    Did you ever get a solution to your question ?
       Sender JDBC Adapter Select/Update Issue  
    Posted: Apr 24, 2008 2:29 PM           Reply 
    Dear All,
    We have configured a Sender JDBC Adapter to Poll data from the DB2 tables. It is working fine and both the select and the update queries written are also getting properly executed and are changing the status of the flag from Y to N once read from database.
    In the communication channel ->
    select * from <table> where flag = 'N'.
    update <table> set flag = 'Y' where flag = 'N'.
    But I have one doubt after executing the select query some new data comes into the table of status flag 'N"., then will this unselected data will also be updated to 'Y' .
    The question is while we do a select and update from XI on the DB table and at the same time there is an insert happening into the table from the other end how will the adpater behave in this case.Will it result in missing of some records during next select/update transaction from XI..
    Your inputs will be appreciated.
    Regards
    Amit

  • JDBC sender adapter issue

    Hi SDNers,
    I have a scenario which picks data from AS400 table using JDBC adapter.
    My sample SQL query and update query are as follows
    SQL query : Select * from <table> where <keyfield> = min(keyfield) and flag ="";
    Update query: Update <table> set flag = "true" where <keyfield> = min(keyfield) and flag ="";
    This is to ensure records are processed one by one.
    All goes well. Suddenly I have a issue where out of "n" records in the table one record failed to reach the target system. My cause of concern is there is no error in RWB and SXMB_MONI.
    I have identified the missing record and could see the flag has been set to "true" in the table. I dont have TREX installed in XI, so could not track the message in XI.
    Has any one faced this issue? Any ideas are highly appreciated.
    Regards,
    Jai Shankar

    Hi All,
    It seems, still the issue is not solved. We have the same issue again inspite of setting the transaction isolation level to serializable.
    SAP Note says
    <i>The SELECT and the UPDATE are run in the same DB transaction,
    i.e. both statements have the same view on the database.
    Make sure that both statements use the same WHERE clause. An
    additional requirement for the correct operation of this scenario
    is the configuration of an appropriate transaction isolation level
    on the database (i.e., repeatable_read or serializable). You might
    also consider using a "SELECT FOR UPDATE" statement instead of a
    plain SELECT statement to ensure proper locking on the database</i>
    We have ensured
    a. Same where clause.
    b. Serializable transaction isolation level
    Am not much sure how SELECT FOR UPDATE works. We are using AS400 db.
    Any experience with SELECT FOR UPDATE.
    Regards,
    Jai Shankar

  • Sender JDBC adapter SELECT / UPDATE issue - updates more rows than selected

    Hi,
    We have configured a Sender JDBC Adapter to poll records from an Oracle table based on a flag field and then update the flag for the selected records. When tested in DEV and QA environments (where test data comes in intermittently and not in huge volumes), itu2019s working fine.
    Both SELECT and UPDATE queries written in the Sender JDBC adapter are getting properly executed and are changing the status of the flag for the selected records from Y to N once read from the database.
    select * from <table> where flag = 'N'.
    update <table> set flag = 'Y' where flag = 'N'.
    But in the PROD environment (with records getting updated in the database every second), after XI executes the SELECT query and just before the UPDATE query is executed, new records come into the Oracle table with status flag 'N". So when the UPDATE query runs just after the SELECT query, then these unselected records also get updated to 'Y'. Thus these records never get into the resultset and hence XI and thus remain unprocessed.
    So when XI does a SELECT and UPDATE on the Oracle DB table and concurrently there is an INSERT happening into the table from the other end, the JDBC sender adapter is picking up a certain number of records but updating the status of more records than it picked up.
    So how does XI deal with such a common scenario without dropping records?
    Thanks,
    Vishak

    The condition being checked is the same for both SELECT and UPDATE statements.
    Initially I tried setting transaction isolation levels on the database to repeatable_read and serializable but it was throwing me a java.sql.SQLException error saying that these transaction levels were not valid.
    I asked for these transaction level permissions for the XI user from my DBA but the DB I am accessing provides only a view into other databases and so it's not possible.

  • NCHAR issue with oracle database using JDBC adapter

    Hi,
    We have a requirement to develop an XI interface from FTP server(File adapter) to oracle database using JDBC adapter. In the oracle database table few fields are of type NCHAR/NVARCHAR. when we try to insert the character(A,B,c..) values into oracle table fields of type NCHAR/NVARCHAR, we are getting the following error message in the JDBC adapter audit log. IF we pass the numeric value to the same field, then we are able to insert the records successfully.
    Unable to execute statement for table or stored procedure. 'IPCSDD_DOWNLOAD_PROCESS' (Structure 'StatementName1') due to java.sql.SQLException: ORA-00904: "P": invalid identifier
    2010-10-19 22:29:59 Error JDBC message processing failed; reason Error processing request in sax parser: Error when executing statement for table/stored proc. 'IPCSDD_DOWNLOAD_PROCESS' (structure 'StatementName1'): java.sql.SQLException: ORA-00904: "P": invalid identifier
    2010-10-19 22:29:59 Error MP: Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'IPCSDD_DOWNLOAD_PROCESS' (structure 'StatementName1'): java.sql.SQLException: ORA-00904: "P": invalid identifier
    Please find the system information below.
    Oracle version- 10.2.4
    XI version - 3.0/ service pack 19
    JDBC driver- oracle.jdbc.driver.OracleDriver
    Please suggest.
    Thanks,
    Venkata
    Edited by: Venkata Narayana  Eepuri on Oct 21, 2010 12:10 AM

    Dear Venkata Narayana,
    Concerning the error, kindly go through the following note :
    731 - Collective note: ORA-00904
    follow the recommendations mentioned in that and please check if that helps.
    Best Regards
    Nishwanth

  • Reg: How to Stop Polling of JDBC Adapter without Scheduling the adapter

    Dear Gurus,
    Here I am having one requirement. My clients wants to send data from JDBC adapter (ORcale System table) to R3 system via RFC.
    His Requirement::
    1. He is not telling the time of data flow from Oracle server so that based on that we can schedule the adapter in the Communication Channel monitoring (Availablitiy Time Planning) or Else we can Schedule by deciding the setting of the polling interval time.
    2. He is telling that When ever he waants to send the data he will place one dummy file in the File Adapter FTP location so that it will became an Indication for u to poll the jdbc adapter and to transfer the data to R3.
    3. Untill he keeps the file or gives indication he doesn;t want to communicate with Oracle server due to some security and it s a most important data base he doesn't want to disturb that Oracle Server as so many business are running  on that.....
    We Proposed::
    1. Atleast you need to tell the scheduling time or poll interval time so that we can schedule our adapter.
    but he s not accepting for this
    2. Atleast U need to give access for Data base to enter one more extra field like STATUS CODE so that we will add one number and we keep on Update in the Update table and based on that Update table statement it will poll.
    but he s not even accepting for this
    3. Finally we prposed that to create another table in the Oracle SYstem as Dulplicate Table which is similar to Standard Orginal table when ever he wants to pick the data please keep that data in this Duplicate TABle so that JDBC adapter will pick the data from thsi TABLE instead of picking the data from that standard table so that it will not effect any standard table data in the table.
    but he s not even accepting for this
    We have done some R & D:::
    1. WE approached even through BPM and via switch conditions is one scenario
       FILE RECEIVE >SWITCH CONDITION> RECEIVE AND SEND or else EXIT
    2. Using correlation in anotehr scenario means correlating File adapter and JDBC and based on one dynamica value it will goes to SEND STEP ( RECE IVE --> RECEIVE --> SEND STEPS )
    Even though we know this...concept that...we jsut tried::
    In BPM we can control the flow in XI 3.0 but we cannot Stop the Polling of JDBC adapter at backend because one the data comes from FILE adapter it will keep on HOLD untill it receives the JDBC from Oracle then based on the condition or Correlation it will goes futher SEND step means after that file adapter is picking file or not ...what ever it may be JDBC will polls at backend and brings that data to BPM"
    Hence sugest me How to Stop Polling of JDBC Adapter without Scheduling the adapter or else using STATUS CODE Update statements in JDBC Tables 
    Regards:
    Amar Srinivas Eli

    Hi! All,
    Finally I decided to do the scenario in two steps:
    1: FILE REQ --> JDBC REQ -->JDBC RES --> FILE RECV
    2: FILE RECV --> RFC
    But I am getting issue while doing first scenario
    Desgn :
    I have created 2 Synchronous interfaces :
    1) FILE 2 JDBC REQ
    In this a) out put message is FILE  Req
              b) Input msage:; FILE RES
    2} JDBC2FILE RECV
            a) Output mesage;; JDBC REQ
            b) Input Msge :: JDBC Response
    Mappings:
    1) File REQ-->JDBC REQ
    2) JDBC RES-->FILE RES
    Interface mappings:
    1: FILE 2 JDBC REQ--> JDBC 2 FLE RECV
    CONFIGURATION ::
    1: One Seder File CC
    2: Two reciever CC's one is for JDBC RECEIVER and other s FILE RECEIVER
    3; One Sender Agreement
    4: 2 Recver agreements
    5: One Interface Determination and
    6: One RECCV Determination
    My Question;;
    1. First let confirm whether my development steps are right or not ?
    2: Another thing s I am not sure reg Configuration Steps means
    whetehr one interface determination and one Receiver Determinations are required or not as these are synchronous Interfaces
    3: main Issue is::::
    If my scenario s FILE2RFC2FILE then I will get RFC response automatically but here issue is this is JDBC
    My reqquirement is By sending one Field from fILE to JDBC REQ it needs to send entire TAbLE records as a Response to file as XML
    without having Sender JDBC how can I send the JDBC Res to FILE and If that is the case then again JDBC adapter is polling which is contradict to the client requuirement which i explained above.
    pleas suggest me the Detailed steps mainly Colloboration agreements and logical routings and
    also explain in detail if i can  go for BPM
    Also give cleear blogs but before giving make sure that it contains detailed screen shots because aIready gone thorugh
    Scenario File-JDBC-RFC
    File<-->JDBC Sync coomunication.
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/xi/file-rfc-file(Without+BPM)
    /people/luis.melgar/blog/2008/05/13/synchronous-soap-to-jdbc--end-to-end-walkthrough
    Regards::
    Amar Srinivas Eli

  • Problem in sender JDBC adapter

    hello,
    I am facing one typical problem in sender JDBC adapter.
    Here is the issue,
    JDBC API method getString threw an exception: java.sql.SQLException: Cursor state not valid.
    Can anyone please help me out in solving this problem?
    Actually after a retry of 3 times the message has been successfully sent. Till then i am getting these error
    On 1st attempt ,
    Error during conversion of query result  to XML java.sql.SQLException: Cursor state not valid
    On 2nd attempt,
    Error during conversion of query result  to XML java.sql.SQLException: Internal driver error                                                                               
    (class.java.lang.InterruptedException)
    On 3rd attempt,
    Processing finished successfully.
    This is the scenario that i can see in the audit log.
    Can you please help me out in solving this issue.
    Thanks,
    Soorya

    Hi gaurav,
    It was a good response from your side.
    I have gone through the FAQ but could not able to find anything.
    Can you please help me out in this regard ?
    Also i am using select query of this kind,
    SELECT
    SEFVHRC.VHRBRCD,SEFVHRC.VHRCUCD,SEFVHRC.VHRVIN,SEFVHRC.VHRMOCD,SEFVHRC.VHRCHAS,
    SEFVHRC.VHRSLOR,SEFVHRC.VHRDIVI,SEFVHRC.VHRMGCD,SEFVHRC.VHRMOCH,SEFVHRC.VHRVHTY,
    SEFVHRC.VHRBDTY,SEFVHRC.VHRMFYR,SEFVHRC.VHRMOYR,SEFVHRC.VHRMODS,
    SEFVHRC.VHRMDTL,SEFVHRC.VHRCLBR,SEFVHRC.VHRRCID,SEFVHRC.VHRARDT,
    SEFVHRC.VHRLUTM,SEFVHRC.VHRLUDT,SEFVHRC.VHRKEYN,SEFVHRC.VHRCTORN,
    SEFVHRC.VHRCTIMP,SEFVHRC.VHRPRDT,SEFVHRC.VHRPRDT,SEFVHRC.VHRRCDT,
    SEFVHFT.VHFCLCD,SEFVHFT.VHFCAT,SEFVHFT.VHFCADSC,SEFVHFT.VHFKEY,SEFVHFT.VHFTEXT1,
    SEFVHFT.VHFTEXT2,SEFVHFT.VHFTEXT3,SEFVHFT.VHFTEXT4
    FROM
    SAPTESTLIB.SEFVHRC,SAPTESTLIB.SEFVHFT
    WHERE
    SEFVHRC.VHRVIN = SEFVHFT.VHFVIN AND SEFVHRC.VHRSTTS = ' '
    and update query of this kind,
    Update SEFVHRC SET VHRSTTS = 'R' WHERE VHRSTTS = ' '
    I am using prity big select query. is there any option to optimize it?
    Can you please help me out in solving this problem
    urs,
    Soorya

  • Error in calling stored procedure in sender JDBC adapter

    Hi Experts,
    I am working on MySQl to SAP scenario. I have to use stored procedure in sender JDBC adapter.
    I am calling SP as fallows: execute proc_dtdc_booking_interface_sd
    But it returned following error,
    Database-level error reported by JDBC driver while executing statement 'execute proc_dtdc_booking_interface_sd'. The JDBC driver returned the following error message: 'java.sql.SQLException: Unknown prepared statement handler (proc_dtdc_booking_interface_sd) given to EXECUTE'. For details, contact your database server vendor.
    the way i called SP is correct ??
    please suggest me how to resolve the issue ??
    Regards,
    Bhuvan.

    Hi
    Below is the code , when we are using this code directly in the mySQl command promp, it fetches 10 record but when the same code is called through XI adapter  its fetching only one record
    DELIMITER $$
    DROP PROCEDURE IF EXISTS `proc_dtdc_booking_interface_sd` $$
    CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_dtdc_booking_interface_sd`()
    BEGIN
    declare done int(1);
    declare v_dsr_booked_by char(1) ;
    declare v_dsr_branch_code char(3) ;
    declare v_dsr_cust_code varchar(7) ;
    declare v_dsr_booking_date date ;
    declare v_dsr_cnno char(9) ;
    declare v_dsr_cn_type char(3) ;
    declare v_dsr_cn_weight decimal(8,3) ;
    declare v_dsr_dest char(3) ;
    declare v_dsr_mode char(2) ;
    declare v_dsr_amt decimal(10,2) ;
    declare v_dsr_dox char(1) ;
    declare v_office_code char(3) ;
    declare v_dsr_status char(1) ;
    declare v_dsr_remarks varchar(25) ;
    declare v_dsr_refno varchar(20) ;
    declare v_dsr_transmf_no varchar(10) ;
    declare v_dsr_trans_status_xi char(1) ;
    declare v_ndsr_cnno char(9) ;
    declare v_ndsr_product char(3) ;
    declare v_ndsr_sercharge decimal(8,3) ;
    declare v_ndsr_ins_amt decimal(8,3) ;
    declare v_ndsr_others decimal(8,3) ;
    declare v_dr_amt_type decimal(2,0) ;
    declare v_dr_extra_amt decimal(10,2) ;
    declare v_sales_document varchar(2) ;
    declare bookcur CURSOR for
    SELECT *
    FROM dtdcdb_rw.dtdc_booking_interface_sd
    LIMIT 10;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET DONE=1;
    set done=0;
    OPEN bookcur;
    bookloop: loop
    FETCH bookcur
    INTO
    v_dsr_booked_by ,
    v_dsr_branch_code,
    v_dsr_cust_code,
    v_dsr_booking_date,
    v_dsr_cnno,
    v_dsr_cn_type,
    v_dsr_cn_weight,
    v_dsr_dest,
    v_dsr_mode,
    v_dsr_amt,
    v_dsr_dox,
    v_office_code,
    v_dsr_status,
    v_dsr_remarks,
    v_dsr_refno,
    v_dsr_transmf_no,
    v_dsr_trans_status_xi,
    v_ndsr_cnno,
    v_ndsr_product,
    v_ndsr_sercharge,
    v_ndsr_ins_amt,
    v_ndsr_others,
    v_dr_amt_type,
    v_dr_extra_amt,
    v_sales_document ;
    IF DONE=1 THEN
    LEAVE bookloop;
    END IF;
    select
    v_dsr_booked_by As dsr_booked_by,
    v_dsr_branch_code As dsr_branch_code,
    v_dsr_cust_code As dsr_cust_code,
    v_dsr_booking_date As dsr_booking_date,
    v_dsr_cnno As dsr_cnno,
    v_dsr_cn_type As dsr_cn_type,
    v_dsr_cn_weight As dsr_cn_weight,
    v_dsr_dest As dsr_dest,
    v_dsr_mode As dsr_mode,
    v_dsr_amt As dsr_amt,
    v_dsr_dox As dsr_dox,
    v_office_code As office_code,
    v_dsr_status As dsr_status,
    v_dsr_remarks As dsr_remarks,
    v_dsr_refno As dsr_refno,
    v_dsr_transmf_no As dsr_transmf_no,
    v_dsr_trans_status_xi As dsr_trans_status_xi,
    v_ndsr_cnno As ndsr_cnno,
    v_ndsr_product As ndsr_product,
    v_ndsr_sercharge As ndsr_sercharge,
    v_ndsr_ins_amt As ndsr_ins_amt,
    v_ndsr_others As ndsr_others,
    v_dr_amt_type As dr_amt_type,
    v_dr_extra_amt As dr_extra_amt,
    v_sales_document As sales_document;
    update dtdcdb_rw.dsr_table
    set dsr_trans_status_xi='T'
    where dsr_cnno=v_dsr_cnno;
    end loop;
    SELECT *
    FROM dtdcdb_rw.dtdc_booking_interface_sd
    LIMIT 10;
    END $$
    DELIMITER ;
    Please help
    Regards
    Bhuvan

  • 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

  • Calling Stored Procedure from JDBC Adapter

    Hello,
    I am Updating a SQL Server Table using JDBC Adapter.
    Now I have multiple input rows and the procedure needs to be called for each set.
    Do I need to use multimapping for this or just generating multiple <b>Statement</b> node will solve?
    Also For this will there is any knows/ forseen problem (like Transaction handling) that I need to take care of?
    Thanks and Regards,
    Himadri
    Message was edited by:
            Himadri Chakraborty

    Himadri,
    You can just create multiple statement nodes in one message.
    I am not aware of any known or foreseen issues with this approach.
    Kind regads,
    Koen

  • JDBC adapter - polling application - is this efficient ?

    Hi,
    I have a scenario that is requesting data via the JDBC adapter from an SQL server system and sending the resultset into BW.
    This is polling every 10 minutes with the following statement :
    select * from itecs_dummy.dbo.action
    where current_timestamp between
    convert(datetime, (convert(varchar(13), GETUTCDATE()) + '23:40:00.000')) and
    convert(datetime, (convert(varchar(13), GETUTCDATE()) + '23:50:00.000'))
    This basically will return zero records 99% of the time as it check the system time is between 23:40 and 23:50
    Eventually I will have around 30 JDBC communication channels performing the same frequency of polling but read data from different tables (the system time check will still be the same for each select)
    Is this highly inefficent in XI terms ?
    Would it not be better to write a simple ABAP to request the data from BW to the JDBC adapter at a fixed time each day therefore cutting out the unnecessary polling ?
    Kind regards
    Colin.

    Hi Colin,
    The method you're using is really the only simple solution to workaround XI's lack of a scheduler.
    We have about 10 JDBC interfaces live for a year at a large XI client using this workaround. They're polling every 5 minutes and we've never had an issue.
    We decided to use this method based on the following:
    1) The load on the DB wouldn't be significant. Even if you have a complex DB select statement, the DB optimizes the call and should run fast if the 'where' clause fails. You can check this with your DBA.
    2) The load on XI would be greater if we implemented this in another way. Any other solution would likely require BPM which is much more intensive for XI then these JDBC calls.
    We chose 5 minutes instead of 10 because of the following scenario which could occur although it's not likely:
    - XI polls at 23:41, message is sent
    - XI J2EE goes down at 23:42 and restarts
    - XI J2EE back up at 23:47
    - XI polls at 23:47, message is sent
    So in this scenario, you could get 2 messages sent. Since our J2EE stack takes longer than 5 minutes to restart, we resolved this issue by using a 5 minute polling interval.
    I think the more elegant and precise way is to make a call from ABAP, but it would be more complex, and put more load on XI due to the use of BPM. If you take into account the above items I think your current approach is the best.
    Thanks,
    Jesse

  • To pass the values through variable in JDBC adapter

    Hello,
    We are working in JDBC adapter. Currently we have written the select statement in JDBC sender adapter to select all the values from the table in SQL SERVER.
    Instead of this, Can we use a variable and pass the values in there from XI in order to select the records from the table based on values in the variable?
    Expecting Advice!
    Thanks,
    Lakshmi.

    Hi krishnan,
    You can use the JDBC receiver adapter to acheive a select using variables. Here you create a canonical XML format(your XSD) based on which the JDBC receiver adapter issues a select and returns you the response. chk this url in help site http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm for the canonical format.
    However u lose the flexibility of polling the table at regular tables available with sender adapter. Also you need an event(a message) to trigger this select query execution, since it is a receiver CC config.
    -Saravana

Maybe you are looking for