none
Oracle adapter , BizTalk adapter pack - Gaps in polling frequency RRS feed

  • Question

  • We use BTs 2010, with latest adapter pack 2010

    We use Oracle adapter for polling...Its supposed to run every 2 mts..(polling interval = 2mts) ,we have the PollAvailableStatement  = select 1 from dual, which means it continously poll every 2 minutes..

    what we have seen are gaps in polling, there are instances where  data is availalbe for processing but the polling doesn't seem to happen..We verified the taht by running the polling statement directly agains the oracle table, the sql returned data but the adapter was not processing or picking the data for processing...Some times it takes 15-20 mts for the adapter to start processing again.

     

    Monday, September 26, 2011 9:04 PM

Answers

  • Hi Kyrn,

     

    First of all can you please check if your adapter is actually polling the Oracle database every 2 minutes?

     

    Please check this by querying the “Tracked Service Instances” in the BizTalk server Administrative console and try to filter the results using the following:

     

    Service Class: Messaging (All)

    Service Name: {Use Pipeline Name. i.e. Microsoft.BizTalk.DefaultPipelines.XMLReceive}

     

    Use other filters (if necessary) to further narrow down the results.

     

    Based on the port configuration that you have specified, you should see a service instance record for each poll in the results after every 2 minutes.

     

    In scenarios where the data is not being polled from the database for more than 2 minutes, check if there are any service instance records for that duration.

     

    *) If there are NO record(s) for that duration, then there could be some issue with the adapter and the connection. This will require further investigation.  

     

    *) If there are record(s) for that duration, then you might be trying to read data which is not committed yet. By default “TransactionIsolationLevel” is “ReadCommitted”. Check the following link.

    http://msdn.microsoft.com/en-us/library/cc185357(v=bts.10).aspx

     

    I hope that this will help in diagnosing the issue.

     

    Regards,

     

    Zia

    Wednesday, September 28, 2011 3:33 PM

All replies

  • select  1 from dual is the default poling available statement. For your scenario you might have to change it to the oracle table in question and then try.
    Regards,
    Bali
    MCTS: BizTalk Server 2010,BizTalk Server 2006 and WCF
    Blog: http://dpsbali-biztalkweblog.blogspot.com
    -----------------------------------------------------
    Mark As Answer or Vote As Helpful if this helps.
    Tuesday, September 27, 2011 2:46 AM
  • I am not using the PollingWhileDataavailable feature ..Its set to false. In those case u  can use "select 1 from dual" which means always poll regardless of whehter there is data or not.

    Waht  I have noticesd is the gaps..my polling iterval is 2 minutes, but the recieve  port some times sits idle for 20 mts  even  when there is data to be polled. There is no errors logged also...Most of the  of the times it polls ever 2 minutes..But there are times it when polling stall ..Its not throttling  because of load or any thing because  we verified when this happens some times there are just  2-3 records to be polled..


    • Edited by Kyrn Tuesday, September 27, 2011 2:04 PM
    Tuesday, September 27, 2011 2:03 PM
  • It can help if you use the PollingWhileDataAvailable feature. Whenever the data is available you will get it. Why do u need to poll when you know that data is not available. 
    Regards,
    Bali
    MCTS: BizTalk Server 2010,BizTalk Server 2006 and WCF
    My Blog:dpsbali-biztalkweblog
    -----------------------------------------------------
    Mark As Answer or Vote As Helpful if this helps.
    Tuesday, September 27, 2011 2:29 PM
  • First of all we don't want to repeat the logic of the polling statement in the PollingwhileDataAvailable statement..PollingwhileDataAvailablestatement should match all the conditions of the pollingstatement right...that was one reason...

    also if  there is an empty message adapter never publishes an empty message..You know that right..not much difference..

    Tuesday, September 27, 2011 8:50 PM
  • Is it possible that the adapter is still processing the last polling cycle? It will only start with the next polling cycle when the previous one is complete to avoid multiple overlapping polls..
    -- Please mark as answered if this answers your question. My personal travelogue: http://travel.manasg.com
    Wednesday, September 28, 2011 4:22 AM
  • Hi Kyrn,

     

    First of all can you please check if your adapter is actually polling the Oracle database every 2 minutes?

     

    Please check this by querying the “Tracked Service Instances” in the BizTalk server Administrative console and try to filter the results using the following:

     

    Service Class: Messaging (All)

    Service Name: {Use Pipeline Name. i.e. Microsoft.BizTalk.DefaultPipelines.XMLReceive}

     

    Use other filters (if necessary) to further narrow down the results.

     

    Based on the port configuration that you have specified, you should see a service instance record for each poll in the results after every 2 minutes.

     

    In scenarios where the data is not being polled from the database for more than 2 minutes, check if there are any service instance records for that duration.

     

    *) If there are NO record(s) for that duration, then there could be some issue with the adapter and the connection. This will require further investigation.  

     

    *) If there are record(s) for that duration, then you might be trying to read data which is not committed yet. By default “TransactionIsolationLevel” is “ReadCommitted”. Check the following link.

    http://msdn.microsoft.com/en-us/library/cc185357(v=bts.10).aspx

     

    I hope that this will help in diagnosing the issue.

     

    Regards,

     

    Zia

    Wednesday, September 28, 2011 3:33 PM
  • I will check that...When I c a delay I ran the same polling statement from toad and the sql returned records..Probably waht u are telling is true..I got to check TOAD's transaction level.. 

    In the mean while will check the events being tracked...


    kiran
    Tuesday, November 1, 2011 3:24 AM
  • I am not sure what u meant  by completing ..

    I don't think that's true with the adapter and verified it...Polling happens based on the polling frequency and the transaction is controlled by the transaction time out.. if u have polling frequency of 1 sec and transaction time out of 2 seconds, I have noticed  another polling cycle starts after 1 second  even though the previous polling process has not finished commiting.


    kiran
    Tuesday, November 1, 2011 3:28 AM