Wednesday, 2 October 2019

Controlled execution in Oracle SOA Suite 12c

There was a question been asked about the controlled execution in Oracle SOA suite. lets us understand the problem statement.

Lets say there is a batch process runs in Application A which produce a thousand number of messages which is been consumed by the SOA tier using jms adapter. In a normal scenario without any configurations, its will use total number of available threads (max - currently running)  for the execution until reached total threads configured in system.

Now if the execution time of these processes are quite high then we defiantly want, messages to be processed in controlled way.  Even we should be able to dictate  TPS (transaction per second) in control execution.


There are two ways we can see in the current Oracle weblogic/soa suite architecture,


Setting Minimum Time delay

We can configure number of threads to be processed and also we can set a delay time in processing between two messages.

Lets say if  we set a delay time of 1 second and execution time of each process is .5 second then thread will wait to for .5 second to poll for next message.  If the process will run for 1 second then it will allow adapter to poll next message instantly as process finish. Hence the wait time is an inclusive of configured execution time delay.



               <property name="InboundThreadCount">2</property>
               <property name="minimumDelayBetweenMessages">10000</property>
  

Setting work Manager. 


In Oracle SOA - 12c the concept of the resource allocation has been changes to work managers,  work manager can be think like a manager been given a list of objective, which it need to achieved.  Manager objectives are clearly defined in underlying properties which is been generated automatically when we create a work manager group.  These property individually cover different engine



We can clearly see that  folder has assigned a group work manager.  This group work manager has a lot of work manager under it, we can even change the work manager assign to folders from the above screen.


These work managers have properties to control the resource allocation and provide the priorities of each engine. This can be seen



Hence by using all the above screen we can decide to change resource allocation of thread which we are planning to give to each engine.

From the above its very clear that work manager is quite high level and control all the resource/composite under a partition, with the rules defined in the work group. While if we aim to control thread at jms level then it will be quite granular and we can even decide transaction per second to be executed using JMS.

No comments:

Post a Comment

Feature Selection in AI

In artifical intelegance/machine learning, everything start and end with data and in current world everyday by using facebook, insta we all ...