Tuesday 15 March 2011

How can I throttle (Frequency) inbound message flow 10g and 11g- For Adapters Like JMS, File, AQ.

There is an activation agent (bpel.xml) property (since 10.1.3.1), which can be used to control the speed at which the adapter posts messages to BPEL

 ...
    <activationAgents>
         <activationAgent partnerLink="JmsDequeuePL" ... >
           <property name="minimumDelayBetweenMessages">1000</property>
       </activationAgent>
    </activationAgents>
  </BPELProcess>
</BPELSuitcase>
The same setting in 11G would be configured as a binding property in the composite.xml the corresponding (inbound) <service>, e.g.
<service name="Inbound">
  <interface.wsdl interface="http://xmlns.oracle.com/pcbpel/demo1#wsdl.interface(SampleInbound_PortType)"/>
  <binding.jca config="Dequeue_jms.jca">
    <property name="minimumDelayBetweenMessages">1000</property>
  </binding.jca>
</service
 
 This setting ensures that there at least will be 1000 milli seconds delay between two consecutive messages being posted to the BPEL process.

Note: This setting pertains only to BPEL, and only to one adapter polling thread. If multiple adapter polling threads (e.g. multiple JMS dequeuer threads) have been configured, this setting will control the speed of each thread, not the combined speed.

6 comments:

  1. Replies
    1. Hi Swapnil,

      Sorry for the delay in response. My response is in assumption that you are using 11g version and above.

      IS "Database Rows per Transaction" option not helping you?

      Doc Reference:

      http://docs.oracle.com/cd/E14571_01/integration.1111/e10231/adptr_db.htm#BGBBHJGC

      there are some other options available as well.

      Please follow Oracle Forums Thread link:

      https://forums.oracle.com/forums/thread.jspa?threadID=2162184

      Hope this helps.

      Regards,
      Arun.

      Delete
  2. Hi Arun ,

    We are using 11g but unforutnately it's not working in cluster environment .Do we need to configure additional properties in addition to the message delay

    ReplyDelete
  3. Hi Nagakiran,

    I believe you issue is purely due to the fact that it is a cluster. I don't know what your use case is but guessing that because the DB adapters on the different managed servers are polling the DB, you might think that this is not working. as there are number of DB adapter polling the data base at the same time and the time interval between the different DB adapters is what is probably causing the issue.

    If you could write more about your use case and what is really happening, I might be able to help.

    I came across this blog which has much more advise about DB polling.

    http://www.avioconsulting.com/blog/oracle-soa-database-adapter-polling-cluster-handy-logical-delete-pattern

    Hope this helps.

    ReplyDelete
  4. Hi Arun,

    how can we control the message dequeue in MQ adapter. I did tried the above property and look like its not woking.

    ReplyDelete