Increase Performance on jdbc adapter.

Hi guys,
I have a jdbc scenario that is accessing two data bases (Oracle and DB2). I would like increase query performance! So, I would like to know if there are any configurations parameters that I need to adjust to get more performance.
Is it possible put the jdbc adapter doing several queries on the same table at same time? If the jdbc have this possibility it is great, because in one instruction it could do several selects/updates and improve more performance…
Any suggestions or documentation are appreciated.
Thanks in advance,
Ricardo.

Hi,
With Receiver JDBC adapter it is possible.
create as many STATEMENT tags as needed with the required action , tablename, strcuture etc.
With sender JDBC adapter, you can mention only one Select Query and multiple queries will not be possible.
<i> have a jdbc scenario that is accessing two data bases (Oracle and DB2)</i>
Also, for this, you need to use separate JDBC adapters as each adapter will be specific to a database and the DB installation. You cannot use a single JDBC adapter to access multiple databases.
Regards,
Bhavesh

Similar Messages

  • Performance in JDBC-Adapter

    Hallo,
    it is possible to become the time for processing in the JDBC-Adapter. I´m interesing for the time splitted in XI-handling and real data-base time to deliver the data.
    In the RWB
    --> Performance-Monitoring
    --> data source: PMI
    --> component: XIAdapterService/JDBC.af.xxx/I
    --> the processing time is always 0.
    Thanks in advance,
    Frank

    Take a look at this thread: Performance  Monitoring & Tracing in XI
    I think you have to enable PMI monitoring in SXMB_ADM.
    Alex

  • JDBC Adapter Performance

    Hi Experts,
    We have nearly 60 interfaces will read/write from/on DB and AS400 tables.
    We are facing so many problems in production system. Everyday the messages are strucking at Adapter Engine. All messages are in "To be delivered" stage. If we can stop some cc's then it is processing slowly even the Database is using 60% usage.
    We tried to create logical views(Instead of Physical views) on DB and AS400 even the performance has not increased.
    We have used "prefetch=false" at "connection" on JDBC adapter but no use.
    We can use "Disconnect after each message processed", but my client is not agree with this option.
    We don't want to increase the connections to DB and AS400.
    Is there any parameters needs to be updated at JDBC Adapter?
    Help needed...
    Regards,
    Rams.

    Hi,
    The below links may help u.
    JDBC ADAPTER
    http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm
    /people/saravanakumar.kuppusamy2/blog/2005/01/19/rdbms-system-integration-using-xi-30-jdbc-senderreceiver-adapter
    /people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30 - File to JDBC
    JDBC - http://help.sap.com/saphelp_nw2004s/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/content.htm
    multiple tables with JDBC - http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
    JDBC Response /people/swaroopa.vishwanath/blog/2006/12/28/send-rfc-to-sap-xi-150-asynchronous
    Regards
    Pullarao

  • How to increase the thread count for JDBC adapter

    Hi ALL,
                Could someone advice me on how to increase the thread count for JDBC Adapter in Visual Admin:
    JDBC_http://sap.com/xi/XI/System.Call.maxConsumers 5
    JDBC_http://sap.com/xi/XI/System.Recv.maxConsumers 5
    JDBC_http://sap.com/xi/XI/System.Rqst.maxConsumers 5
    JDBC_http://sap.com/xi/XI/System.Send.maxConsumers 5
    I need to increase them to 10.
    Regards,
    Xier

    hi check the below links:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/806e75a0-0e01-0010-2587-fc518de8ac1a
    admin manual:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/fdb09490-0201-0010-e09e-a76388646ad0
    note:reward points if solution found helpfull.....
    regards
    chandrakanth.k

  • Sender JDBC adapter slow processing in Production

    Hi All,
    We are facing an issue with processing time for Sender JDBC adapter.
    We tested a scenario in Quality for JDBC to Proxy. In quality the Sender JDBC adapter is taking around 30-50 sec. to send data to PI, but in production the JDBC adapter is taking more then 7 mins to send the same amount of data from DB to PI.
    We have checked the setting in PI; it is same in both the systems (Q and P).
    Even the parameters for both the servers maintained same.
    Can any body please suggest the reason of this behavior and any workaround?
    Regards,
    Rahul

    Based on my experience, these are the things that could be used to improve JDBC performance
    1. You may increase the thread count for JDBC related queues. This has to be done in accordance with SAP Note 1084161.
    2. There is parameter in JDBC communication channel called Maximum Concurrency. It signifies that one communication channel can make how many connections to database. This is 1 by default and could be increased to some values like 3-4.
    3. In the Visual Admin/ NWA, there is a parameter called as queueParallelism.maxReceivers which defines the number of parallel worker threads for one receiver channel instance. This should be done following SAP Note 1136790. This can be done along with the first point.
    Regards,
    Prateek

  • 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

  • JDBC Adapter in async. scenario

    Hi everybody.
    I have the following scenario:
    R/3  --->  XI ---> Legacy
    In this scenario, there is at the moment a synchronous call from XI -> Legacy using the JDBC receiver adapter. In this call there are various SELECTs and UPDATEs, so I have to use the XML SQL format of the JDBC receiver adapter.
    Unfortunately, the processing of the synchronous call is quite slow, and from time to time there even is a timeout which aborts the whole process. In order to get this process to work I only see two solutions:
    a) increase the timeout values of the synchronous call
    b) switch from synchronous to asynchronous processing
    I don't like solution a) because it could possibly influence others aspects of our XI system as well, so I prefer b).
    However, I do not know how to do it or even if it is possible at all...
    Is it possible to split up the synchronous call in an asynchronous request/response pair and to use correlation in a BPM?
    Is JDBC receiver adapter capable of this usage scenario?
    Regards, Joerg

    Hi everyone!
    Thanks for the valuable input.
    Alas, I still have a problem...
    I did the following: I inserted a dummy SQL statement into my request XML message. This dummy statement simply inserted an ID into the SELECT, and this ID is returned "as is" in the result. I use this ID to create a correlation between an asynchronous SEND step in my BPM and an asynchronous RECEIVE step in the same BPM. Unfortunately it seems to me that the JDBC adapter is not capable of working in an asynchronous mode. I have created a receiver adapter, I send my SQL XML message - and I get <i>no</i> return. It seems to me like the response message (my SQL XML should generate a response) "vanishes" - there is no answer...
    Is there some kind of "trick" I have to apply in order to get the JDBC receiver adapter to work in this scenario?
    Regards, Joerg

  • 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

  • Time Limit Exceeded. JDBC Adapter

    Hello guys,
    we have problem in an interface in production.
    The interface is asynchronous and is File -> PI -> JDBC
    Some messages have sometimes an error in PI monitorization, and we can see the next error:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Receiver Grouping
      -->
    - <SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="INTERNAL">SYSTEM_DUMP</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:Stack>XXXX : XXXX___0000 : Time limit exceeded.</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    It seems there is an error when sending to the JDBC adapter? The concurrency of the adpter is set to 1 and we send 7 messages to the same adapter and the messages are executed more or less at the same time.
    Could we have to do some PI configuration about queues? or maybe is about the concurrency of the adapter?
    Many thanks in advance.
    Regards,
    Xavier.

    You might need to increase MAXIMUM CONCURRENCY > 1 and set poolWaitingTime > 0 as per SAP Note 831162. By doing this will alow JDBC Receiver to process concurrency the request from Integration Engine.
    or you also can try to increase "Recv.maxConsumers" for JDBC Adapter. The current value is 5
    In addition above, since more messages are concurrently happening more or less at the same time, I would recommend also to use this parameter setting.... Go to advanced tab in the jdbc receiver channel.
    check the option "Disconnect from Database After Processing Each message".  This would help if the connection is not immediately return to the other thread after serving the first thread.  Plus it is a best practice to follow up.

  • Sender JDBC adapter...problem

    Hi,
    the real problem is Sender JDBC adapter sends data in following format.
    <?xml version="1.0" encoding="UTF-8"?>
    <resultset>
      <row>
         <Associate_ID>16444</Associate_ID>
         <Associate_Name>Sudhir</Associate_Name>
         <Status>false</Status>
      </row>
      </resultset>
    But in Design time mapping...structure of source message will be like
    <?xml version="1.0" encoding="UTF-8"?>
    <ns5:DB2File_DB_MT xmlns:ns5="urn:db2file">
      <Resultset>
        <Row>
          <Associate_ID>16444</Associate_ID>
          <Associate_Name>Sudhir</Associate_Name>
          <Status>false</Status>
        </Row>
      </Resultset>
    </ns5:DB2File_DB_MT>
    How does this tag ... <ns5:DB2File_DB_MT xmlns:ns5="urn:db2file">  get generated in runtime
    and apart from 1 to 1 mappings b/w the three fields above in the row tag...wt other mappings to be performed
    Pls help...
    Sunita

    Hi Sunita,
    what i understood from your query is namespace tag is coming while message mapping. This namespace can be avoided in the message type if you keep the XML namespace field empty while creating message type. But i afraid you have to do the message mapping again.
    Regards,
    Satish

  • Transaction handling in sender JDBC adapter

    Hello,
    In a scenario where a third party application updates a field (counting it up) and we pick up these counts and zero out the field with the sender JDBC adapter, we would like that the third party application is not able to update while the JDBC sender adapter is processing.
    We were under the assumption that the select and update statements of the sender JDBC adapter where executed within the same DB transaction and set the isolation level to "repeatable read" to make sure the third party app. could  not update while the adapter is processing.
    This had no effect.
    Do the select and update statement occur within the same transaction?
    Thanks,
    Dan
    Edited by: Dan Hansen on May 5, 2008 9:58 AM

    Thanks for the answers so far, I have looked through this and can find no reason why the current set up with "repeatable_read" should not work... a little more info. We are running against a MSSQL 2005 database using a table with the following structure.
    CREATE TABLE [dbo].[OPERATION] (
         [WERKS] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
         [AUFNR] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
         [VORNR] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
         [SSAVD] [datetime] NULL ,
         [ARBPL] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
         [MGVRG] [bigint] NULL ,
         [LMNGA] [bigint] NULL ,
         [LTXA1] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
         [ZCONFQTY] [numeric](18, 0) NULL ,
         [ZTIMESTAMP] [datetime] NULL ,
         [ZSTATUS] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
         [STAT] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
         [SSEVD] [datetime] NULL ,
         [FSEVD] [datetime] NULL ,
         [FSAVD] [datetime] NULL ,
         [XMNGA] [bigint] NULL ,
         [RMNGA] [bigint] NULL ,
         [RUECK] [bigint] NULL ,
         [ZPACKQTY] [bigint] NOT NULL ,
         [STEUS] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
         [ZSCRAPQTY] [numeric](18, 0) NULL ,
         [ZREWORKQTY] [numeric](18, 0) NULL ,
         [BEARZ] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
         [BEAZE] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
         [RUEST] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
         [RSTZE] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
    ) ON [PRIMARY]
    GO
    We read information about the quantities per primary key combination with the select statement where the ZSTATUS field is "CONF" and then zero out the quantity field and set the ZSTATUS to CONF2SAP with the update statement.
    Another app counts up the quantities and sets the ZSTATUS to CONF as needed.
    Sometimes we see that we miss a count because we read before someone has increased the quantity but update back after they did and thereby zero out their entry.

  • File adapter/JDBC adapter processing

    Hi,
    I have scenarion as below
    > XI gets an IDOC message from R/3
    > Based on that message XI uses a fileadapter to call a UNIX shell script in the other system (system B - non SAP)for pre-processing.
    > The script call returns no errors.. So, XI/BPM now uses the JDBC adapter to convert the IDOC into a JDBC insert.
    > On successful inserts, the process again uses a file adapter to perform a post-processing script call
    Is the above scnarion possible using JDBC/File adapters in XI/BPM ?
    Thanks
    mad

    Hi Maddux,
    Is it a pre-codintion to execute the unix shell script before inserting the data using JDBC adapter?
    FYI, If there is no pre-condition and you want to send the data to two different systems, you can configure multiple receivers(both file and JDBC) in your Receiver Determination object without BPM.
    -Sam Raju

  • UPDATE statement in Receiver JDBC adapter

    Hi all,
    I would like to use UPDATE statement in my receiver JDBC adapter and would like to know how this UPDATE statement works in following case.
    1) If i have 10 records to be updated in database, whether Commit happens at the end of all 10 records updation OR it will be for every record update?
    Regards

    Hi,
    Then let me construct my query this way...
    i have 10 records that needs to be updated to database, say For Ex: 7 records are updated successfully and 8th record has issue in updating the table.
    In this case i would like to ROLLBACK entire 10 records with out committing any thing.
    So if i use your 2nd option, it should perform as i expected right?
    Regards

  • High volumes on receiver JDBC adapter

    Hi,
    We have a RFC ->JDBC scenario where the RFC pulls huge amounts of data from R/3 and sends to XI.
    XI needs to upload this data into 5 different Db tables.Each table contains 3000-8000 records with each record containing 10-15 fields.
    When we try to run this scenario, due to high volumes of data  the JBDC adapter hangs and msgs were in 'holding/delivering' status for long time.
    Please advice on possibilities of handling this within XI.

    Hi,
    We changed the design and now we have only 'INSERT' and we don't have concerns with table refresh now.
    I am splitting the records in XI mapping as bunches on 1000 each. But I found one of the tables have more that 1lakh records.
    The data volume that we received in RFC is 150000 records(45MB). It took 7.5 mins to process this msg in Integration Engine.
    But the messages delivery into Db tables (receiver JDBC adapter processing) is very slow.At maximum it can process 250 records in minute.
    Please provide your inputs on this design. Is it Ok to accept 45MB message into XI at one shot? Even though the message got processed(splitted) in IE, they are processing in AE for long time. I believe this will have impact on other interfaces that use JDBC adapter.
    Please provide your suggestions on how to improve the design/performance of this interface.
    Thanks!

  • Intel "Save Power / Increase Performance" popup

    Currently starting to replace the older X series laptops with the X220's here at work.  The problem we are running into is that annoying green popup window from Intel HD graphics asking to save power or increase performance.  The window can't be moved and the users can't do much of anything for the couple minutes it stays on the screen.  It's becoming a real hassle for us helpdesk guys.
    How do we get rid of this?
    Removing the drivers doesn't work, they just reinstall after reboot.

    From an unrelated thread out there on the web:
    When unplugging the mains ac adapter in Speed mode I had an annoying green Icon in the middle of my screen for 2 minutes that said "Save power" -> "Increased performance" stays for some time on top of other windows. I renamed the file C:\Windows\System32\nvvsvc.exe This however unelegant appears to have eliminated the annoying popup, if anyone has a better solution for this do let me know.
    Untested, unlikely, and a little scary.  It's the only thing I could find that even suggested a solution.  Otherwise, there are just a few other people complaining about the same thing on a variety of platforms.
    Z.
    The large print: please read the Community Participation Rules before posting. Include as much information as possible: model, machine type, operating system, and a descriptive subject line. Do not include personal information: serial number, telephone number, email address, etc.  The fine print: I do not work for, nor do I speak for Lenovo. Unsolicited private messages will be ignored. ... GeezBlog
    English Community   Deutsche Community   Comunidad en Español   Русскоязычное Сообщество

Maybe you are looking for

  • Where to look for info about creation of a complex web site ?

    I'm more of an artist and graphic designer than web site creator but one of my clients now want to have what I believe is a very complex enterprise level web site for e-commerce. They have a fairly clear idea in terms of user experience and features

  • Timezone issue

    Hi, I am based in Sydney, Australia and have the database with APEX runing here and Database timezone set to AEST (Australian Eastern Standard Time). Now, In one of the fields in my form, which links to a timestamp with local timezone column, 23/11/2

  • Converted mono to stereo

    I converted a left channel recording from imovie hd to both channels using quicktime. Now the audio track is way to long even though the size is the same. Format: Linear PCM Channels: Mono Rate: 48 (the rate decreases the size but it doesn't matter).

  • NEED HELP NOKIA DONT ANSWER THEIR PHONES!

    My phone must be about a week and a half old and today when i turned it off it wouldnt switched back on at all?! Not a clue what to do, any company i phone do not answer their phones so thats pretty useless. I have the nokia x6 16gb but not a clue ho

  • Cannot create record group

    All, I have one form. I have When-new-block-instance trigger on first block, which populate list of values for first item in block( Using Create_group_from_query and populate_group builtins). If I run form on NT it works fine but while I put form on