JDBC Sender Channel polling before polling interval is complete

Hi all,
On our Production Server, we have found that a few JDBC Sender Channels are polling multiple times within one polling interval.
Eg: Suppose for one channel, the polling interval is 7200 secs. It polls once and the polling interval starts. But it polls again 1 or 2 times more maybe just 5 secs later before its next scheduled poll in 7200 secs.
Unfortunately, our scenarios are such that when there are multiple polls within a short span of time, there are data anomolies, causing inconsistancies on Receiver side DB. Hence this is a serious uissue.
Please Help. FYI, all the affected channels run on the same schedule. I am not sure if that can be causing this abnormality.

H Varun
I have not come across this behavior earlier. But if you are polling same data base using multiple channel at same time data inconsistency can be there. We always prefer to poll the same data base tables with different timings. Setting up poll timings always consider peak loads. Try to change the polls and see if the same behavior exists.
For performance and JDBC issues
Check https://service.sap.com/sap/support/notes/831162
Specially Q 14
Thanks
Gaurav

Similar Messages

  • JDBC sender channel running but not picking up the data from sp

    Hi,
    One of the jdbc sender channels in production is running at its schedule time but it is not picking up the data from the sql side, we have checked with the sp side and they are saying that sp is running fine. No changes have been done in its configuration. Last message coming in RWB  is Retry interval started but that is of 1 day and its already been 3 days. I tried by starting and stopping the channel but of no use. The channel was re activated but that also didn't help.
    Please help, what can be the reason for the same.
    thanks.

    Hi,
    The JDBCadapter ( The respective channel) is definitely locked in PI . Ideally for each polling interval a lock is being created and once the processing is over , the lock should be released/deleted automatically to allow further polling interval. If the lock is not released by the system automatically,further polling will not happen as expected. ( This may affect all sender JDBC adapters as well. I would recommend to do a check in all sender JDBC communication channels)
    You can see/delete the locks in Visual admin.
    Go to Server>Services->Locking adapter and click refresh
    The entries for JDBC adapter ( with name $XIDBAD.JDBC2XI) should be deleted by selecting those particilar entries and click delete selected locks.
    If you have more than one node, then same should be done in all server nodes.
    The temprory solution would be creating/copy the existing channel in ID with same properties and assign it into particular sender agreement.
    But, the lock may be created again which potentailly stops all your database interfaces. Hence i would suggest to use Disconnect From Database After processing of Each messages in Advanced tab in the sender JDBC adapter.
    Hope this solves your issue.
    PS: The same bahaviour would expected for all file adapter as well

  • JDBC Sender channel not processing the messages

    Hello,
        From yesterday onwards JDBC Sender channel not processing the messages. In CC monitoring it is showing in Green Led and status is functioning. Cahnnel is polling for messages to DB server as per polling interval. But it is not processing the msg's. Under Processing detials for cluster node it is showing only "Processing Started" for each polling interval.
    I have done the check in DB server by executing the query in the channel, whether there are any records are exisitng or not. There are 1000+ records.
    Previously the parameter "Disconnect from DB after processing each message" was not set. I have set the parameter and activated in Productiion. Still the messages are not processing by channel
    What was the problem? How to rectify with this.
    Cheers
    Veera

    Check in the Visual Admin >Cluster> "LOCKING ADAPTER"
    we get a option of Display Locks .Check for an entry with
    NAME : $XIDBAD.JDBC2XI
    reset the locks and restart the CC ,now it works fine.
    Note 1083488 - XI FTP/JDBC sender channel stop polling indefinitely(04/04S)

  • Only JDBC-sender channel

    Hi Experts,
    the scenario is as following:
    i have a database, i want to delete some entries with 2 where conditions ...
    why do i have to create a huge scenario with 2 async messages jdbc sender for polling and receiver for deleting...
    with the sender i can use the update statement .. why cant i use him standalone .. like every 60 seconds delete the entries..
    thanks for your help

    Hi,
    > why isnt it possible to activate only the sender .. ?
    I would say the aim of PI is to transfer messages from system A to system B.
    In your scenario you only have system A and you don't want to transfer any message.
    So maybe PI is the wrong tool for your requirement.
    But if you still want to use it perhaps this blog helps a little bit:
    How to send any data (even binary) through XI, without using the Integration Repository
    Regards
    Patrick

  • Jdbc sender channel memory size issue

    Hi Experts,
    We are facing the below error in connect to jdbc sender channel from XI . Could anyone of you suggest me the right action to be taken in this regard.
    Database-level error reported by JDBC driver while executing statement 'select * from*********where posted = '0''. The JDBC driver returned the following error message: 'com.microsoft.sqlserver.jdbc.SQLServerException: The system is out of memory. Use server side cursors for large result sets:Java heap space. Result set size:614,143,127. JVM total memory size:1,031,798,784.'. For details, contact your database server vendor.
    Appreciate your quick help.
    Thanks & Regards,
    Ranganath.

    Regulate the number of records returned by Select statement for permanent fix.
    Few more things....
    a)If you want to select only some fields, then dont use Select * from table.  Rather specify select a,b,c from tablename
    b) specify some flag in the table so that read some records each time and in the update statement update the flag for those records already read. So that you will not reread the same records in the next message.
    Hope you understand.
    c) Increasing java heap size is temporary fix.

  • JDBC Sender Channel problem. Pls help

    Hi,
    In JDBC Sender Channel in Connectiion String I am giving value
    jdbc:oracle:thin:@cscappnoi022.asiapac.globalcsc.net:1527:IS1
    where cscappnoi022.asiapac.globalcsc.net---is where Oracle server is installed
    1527 --- is my Port
    IS1 is my system SID  --- Pls let me what value should come here and how to find.
    I am getting error
    "Error during database connection to the database URL 'jdbc:oracle:thin:@cscappnoi022.asiapac.globalcsc.net:1527:IS1' using the JDBC driver 'oracle.jdbc.driver.OracleDriver': 'com.sap.aii.adapter.jdbc.sql.DriverManagerException: Cannot establish connection to URL 'jdbc:oracle:thin:@cscappnoi022.asiapac.globalcsc.net:1527:IS1': SQLException: Io exception: The Network Adapter could not establish the connection'"
    Regards

    hi,
    Your connection should be :
    jdbc:oracle:thin:hutting/[email protected]:1521:pnt
    jdbc driver should be:
    oracle.jdbc.driver.OracleDriver
    Regards
    joel.
    I only hope that your other jdbc scenarios are working fine , this is just to rule out the possibility of driver related errors.

  • JDBC sender adapter polling data more than once within one polling interval

    Hi,
    Our sender communciation channel is polling data twice in one polling interval, hence triggering the corresponding BPM twice.
    The polling interval for the channel is set to 30 mins.
    We dont have an update query and use <test> instead. Currently there is no provision to use an update query in the source system.
    Intermitently the polling happens within an interval of few milliseconds, because of which we are in doubt whether the use of Update query will solve our problem
    Additionaly in the BPM, we have one channel which deletes the data from source system after the processing is complete by the BPM, but the second BPM is getting triggered before the deletion step is being executed in the first BPM.
    Please Advise how we can stop the channel from polling data twice.
    Thanks,
    Merrilly.

    Hi Merrilly,
    Please ty to set an advanced mode option in the table(for sender
    channel configurations) as follows:
    Key name is "clusterSyncMode" and its values are either "scheduler" or
    "none".(both are without quotes and case-sensitive)
    Default value is "scheduler", this means it prevents 2
    messages being generated regardless of 2 server nodes. This is true,
    even if you do not add anything in advanced options table.
    Also are more information about this parameter of file adapter, what
    is the same for jdbc:
    #801926 - XI 3.0 File Adapter: Additional Parameters
    Regards
    SK

  • File Sender channel polling successfully  but not picking the files.

    Hi All,
                    Can any one please provide any SAP Note  Or any Alert mechanism for the  File Sender channel in case where the XI channel in polling successfully at a particular folder from Source System  but not picking the files. Thanks in Advance for the solution.

    Hello,
                  If you want to know the reason for failure in picking up the file ,You can check the MessagingSystem monitoring for the reason behind failure.
    http://host:httpport/MessagingSystem/monitor/monitor.jsp
    For Alert may be you can follow prateek instructions.
    HTH
    Rajesh

  • JDBC sender channel issue

    Hi experts,
    the settings are done in sender JDBC channel is done as:
    Poll Interval: 1800 secs
    Availability Time: Daily: At 5:00:00 AM for 30 Minutes
    according to logic, the channel start polling at 5:00:00 and stop at 5:30:00. After that It will not poll data.
    But It is also polling data after that time Interval.
    Please advise what is the wrong configuration done here.
    thanks in advance.

    Hi shekhar,
    I have updated the control data as "Automatically"
    but the channel  status now is as " Channel stopped".
    so will it be active at only "Availibilty time" defined.
    Please advise.
    thanks in advance.

  • JDBC sender adapter: Update before mapping

    Dear all,
    following scenario:
    in a database we have a field called "statpi". We pick all messages that have statpi =  0 and
    update the data record to statpi = 1 via UPDATE function in JDBC sender adapter.
    Every select statement is limited to 100 data records for each message in PI.
    But if one data record is wrong and the mapping failed, of course the complete mapping failed.
    My problem: The update function of the JDBC sender adapter has already updated the
    data records, although they didn't have been send to target system.
    What I need is following thing: The adapter should send the messages and after PI has mapped
    the message and send it to target system, the UPDATE command should be executed.
    In my opinion, this is only possible with BPM, but I am not familiar with Advanced mode in JDBC
    sender adapter and "Transaction isolation level". Is there any workaround for this?
    Thanks
    Regards
    Chris

    Stefan Grube wrote:>
    > What happens, when new values have entered db meanwhile?
    The job that change the DB will be fixed on a certain time. We need to configure
    Availability Time Planning to be sure, that we start our select at another time.

    > > In ideal case the data records are still in statpi=0 and get picked up after
    > > the database team has fixed the problem and the adapter polls again.
    >
    > If the flag is not set, the JDBC adapter would poll the same data again and again.
    The adapter should poll every hour. Of course we will have some errors before the
    support is able to fix this problem, but because of one message each hour this should
    not be the main problem.
    > - You could do following: pass the values with an error flag, so you can handle this in receiver application,
    I am using the function formatNumber for the field that could raised the error. But to chekc if I am able
    to do a workaround here and let the target system fix the error sounds like an interessting possibility.
    > - Do a split mapping and create a file where you drop any wrong lines
    Also interessting. You mean that all "good" record should be mapped to struc1 and the bad one to struc2.
    I am thinking of how to determine which record is wrong. Perhaps with an UDF that checks for this special
    error.
    > - Use XML validation in sender adpter, so the messages are not processed.
    You are full of good ideas. I am not using validation yet and the mentioned field is define as string, but that
    is changeable. A good possibility to check the new capability of 7.1.
    > - use a stored procedure in DB whee you check data quality to send out.
    not sure what this is, but I will discuss with DB team.

  • Processing of large number of records using JDBC Sender Channel

    Hi experts,
    We have a JDBC-File scenario where in the tables contain about 500K records on an average.
    I used multimapping to generate a flat file for every 10K. The problem is ..when I start the JDBC Sender CC, the memory goes up and the J2EE engine restarts. In the Sender CC, I gave the Disconnect from the database option too. The query is SELECT * from TABLE and the Update statement is <TEST>. Please help me out how to solve this.
    Regards.

    Hi
    Use the below query,
    // Oracle
    SELECT Statement :      select colname from tblname where rownum<=1000 ;
    // MSSQL
    select top 1000 colname from tblname
    Regards
    Ramg

  • JDBC Sender Adapter polling after database failure

    Hi,
    I hope you can help, we have come across 2 instances where a database which is being polled by the JDBC adapter fails. When the database comes back up valid entries are not processed. The first instance of this was with a connection to an AS/400 based system in our test environment. The second instance was a MS SQL Server based system in our productive environment. As you can see the issue seems to be driver independent and not related to our specific XI server which is XI3.0 sp16. We can get things working again by a) restarting the J2EE server or b) Copying the communication channel and using this in our sender agreement.
    Clearing caches, deactivating and reactivating the communication channel and sender agreements etc did not work.
    Thanks,
    Pete

    Peter,
    Is the Database system going to be turned off / bounced back very often?
    If yes, in the JDBC adapter, in Advanced Mode, select option "Disconnect from database after each message processing" and this will do the trick.
    regards
    Bhavesh

  • Polling interval

    Hi All,
       Please help me regarding, how to set polling interval, in case of IDoc-File Scenario.
    Thanks in advance.
    Regards,
    Sree

    Hi Rama,
    Just to add on to what others have told. Since your taking an example of a file – IDOC Scenario understand the same…I will also try explaining with that in mind.
    In the case of a File – IDOC scenario, The XI Sender File Adapter picks up the file to send to the target/receiving system. The Sender File Adapter can be configured to poll at regular intervals. The polling interval can be set as per the schedule of the extract program. In case the extract is on-demand, then you can set the polling interval to 60 secs or 600 secs. The point is that the interface can be triggered by the File Adapter polling mechanism.
    There are a few parameters which you define while configuring the Sender File/FTP Adapter, so I thought I will just tell you what exactly a few of them relating to polling time mean:
    1. Poll Interval (secs) - Number of seconds that the adapter must wait if no files are found for processing.
    2. Poll Interval (msecs) - Additional waiting time in milliseconds.
    - If Poll Interval (secs) is set to null, processing times will be short and close to real time.
    - If Poll Interval (secs) and Poll Interval (msecs) are set to null, the adapter is only called once.
    3. Retry Interval (secs) - Specify the number of seconds that the adapter is to wait before a file processed with errors is processed again.
    - If the value is set to null, then the adapter is canceled if an error occurs, even if a value greater than null is specified for Poll Interval (secs).
    While configuring a sender file adapter, a major mistake that we often do is keeping file adapter communication channel polling interval less and in test mode. It is not an error, keeping it in test mode with less polling interval but, often we forget about it, keeping the adapter channel active and it loads the server memory unnecessarily.
    The link below will help you understand things better.
    http://help.sap.com/saphelp_nw04/helpdata/en/e3/94007075cae04f930cc4c034e411e1/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/03/80a74052033713e10000000a155106/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/17/7481b6d5095b42bd804d1815201ebc/frameset.htm
    I hope I have answered your query.
    Regards,
    Abhy
    PS: AWARD POINTS FOR HELPFUL ANSWERS.

  • JDBC Sender - ORA-08177 on UPDATE, but Table is updated - no message

    Hi,
    I have a problem with JDBC Adapter:
    I use a JDBC Sender adapter, polling every minute on an Oracle DB.
    I use isolation level "serializable".
    No what happens sometimes is, that the update statement fails because of "ORA-08177: can't serialize access for this transaction", so no message is forwarded to the IS. Curiously, the entries in the table are updated, so the JDBC Driver seems to update the data anyways.
    Has anybody experience with similar problems? This is a really hard issue because no messages are transmitted althought the condition field in the table is updated and everything seems normal. Also the status light of the communication channel will be green again after a while, so it is really hard to trace.
    System:
    XI 3.0 SP20
    ORACLE 8.1.7.4
    I use the following statements with a rownum limit:
    select ... from TABLE where CONDITION = '_to_send' AND rownum <= 20 order by NACHRICHT_ID
    update TABLE set CONDITION = '_sending' where PRIMARY_KEY in (select PRIMARY_KEY from TABLE where CONDITION = '_to_send' and rownum <= 20)
    (just to complete the picture...)
    This message goes to BPM, where it is split into single messages. These messages are processed separately, and after an successfull processing an update statement is sent back to the DB:
    update TABLE set CONDITION = '_processed' where PRIMARY_KEY = <PK of processed message>
    So the condition "_sending" is an interim status for the messages sent to BPM, but not finally processed.
    What happens is, that the receiver of the messages complained about missing messages. I could find some messages in the interim status, but no message has ever been sent.
    I appreciate any help.
    Thank you very much.

    Sainath Chutke wrote:
    As you have used the Isolation level as serialiable whenever the transaction fails the data gets updated because once the transaction reaches the end of the adapter level processing " the update statemnets gets executed " Irrespective of whether the transaction is sucessful or failure."
    Curiously, the select statement does not throw the error, the update statement does. But even though the update statement does not work (ORA-08177), it works (rows in DB are updated). That is what causes headache to me.
    Try to change the Isolation level and get the message id generated using an UDF.´
    Sorry, but I do not completely understand what you suggest here.
    My needs are:
    - select rows that fulfill condition (limit to a max number per poll interval)
    - update the selected rows to not fulfill the condition any more (to not double sent data)
    - the update statement must update exactly the same rows that have been selected before (transaction)
    or in other words:
    I need to make sure the data is sent only once and exactly once.
    If your idea can satisfy these needs, I kindly ask you to explain it more detailed.
    Thank you very much.

  • Two JDBC-Sender adapter

    Dear all,
    I've to process all data from the first JDBC-Sender-adapter and afterwards I've to trigger the second JDBC-Sender-adapter. The second JDBC-Sender-adapter must not poll until processing of first has finished?
    How can I achieve this without BPM?
    Kind regards, Stefan

    You can start the second JDBC channel from first interface mapping. All that you have to do is you have to set external channel control ON for second JDBC channel using RWB.
    In the second interface mapping you can stop the channel, since it already pools the data. So, two individual scenarios and no BPM.
    check this link @ http://help.sap.com/saphelp_nw2004s/helpdata/en/45/0c86aab4d14dece10000000a11466f/content.htm. You need to do some settings.
    IN FIRST SCENARIO'S OPERATIONAL MAPPING --> STOP THE FIRST JDBC CHANNEL, START THE SECOND JDBC CHANNEL (using UDF java code)
    IN SECOND SCENARIO'S OPERATIONAL MAPPING --> STOP THE SECOND JDBC CHANNEL, START THE FIRST JDBC CHANNEL  (using UDF java code)
    Make sure that you give enough polling time interval's for the 2 JDBC Sender channels. Actually the START & STOP mechanism's will take care.
    Regards,
    Praveen Gujjeti.
    Edited by: Praveen Gujjeti on Apr 28, 2010 7:01 PM

Maybe you are looking for