3 Replies Latest reply: Nov 6, 2012 8:18 AM by Tarak RSS

    PollingInterval in database adapter

    user12239949
      Hi,

      I have SOA 11g with two nodes. I have a database adapter that polls a table after every 30 seconds and perform logical delete on the rows read. I came across interesting situation. When one node is up and PollingInterval=30, it works okay and polling is done right after 30 seconds but when both nodes are up the PollingInterval property doesnt work as expected. It will poll after 24 seconds and then second node will again poll after 6 seconds (node1+node2=30 seconds in total).

      Just wondering if I am missing something or doing something wrong? I want each node to run after 30 seconds (i.e only one instance after 30 seconds). My JCA file is:
      <connection-factory location="eis/DB/myConn" UIConnectionName="Connection1" adapterRef=""/>
      <endpoint-activation portType="MY_DATABASE_ptt" operation="receive">
      <activation-spec className="oracle.tip.adapter.db.DBActivationSpec">
      <property name="DescriptorName" value="MY_DATABASE.XYZTABLE"/>
      <property name="QueryName" value="MY_DATABASESelect"/>
      <property name="MappingsMetaDataURL" value="MY_DATABASE-or-mappings.xml"/>
      <property name="PollingStrategy" value="LogicalDeletePollingStrategy"/>
      <property name="MarkReadColumn" value="PROCESSED_FLAG"/>
      <property name="MarkReadValue" value="P"/>
      <property name="MarkUnreadValue" value="Y"/>
      <property name="PollingInterval" value="30"/>
      <property name="MaxRaiseSize" value="100"/>
      <property name="MaxTransactionSize" value="100"/>
      <property name="SequencingColumn" value="TRANSACTION_ID"/>
      <property name="NumberOfThreads" value="1"/>
      <property name="ReturnSingleResultSet" value="false"/>
      </activation-spec>
      </endpoint-activation>
      </adapter-config>
      Any help will be appreciated.

      Thanks!