The Flow Limit mechanism of BusinessWorks is a mean to limit the number of instances of a given Process running simultaneously for an application in an appnode. In other words this is a mechanism to control the parallelism of execution of processes exposing a Component or started by a Process Starter activity.
This BusinessWorks mechanism is available for all transports managed in BusinessWorks (JMS, File Poller, etc) but this is not the most efficient for some transports.
The Flow Limit can be enabled using a property managed in the config.ini file of the target appspace or appnode as explained in the template appspace config.ini file :
This article is mainly to explain how to get the needed elements to use this mechanism.
How to set a Flow Limit for a given Component
You first need to identify the application name and version, this is available in Studio in the Package Unit / Overview panel of the application project:
You can also get those elements using the following bwadmin command:
show -d <DOMAIN_NAME> -a <APPSPACE_NAME> applications
For example:
You then need to find the Component name, this is available in Studio in the Module Descriptors / Components panel of the module project:
You can also get this element using the following bwadmin command :
getcomponents -d <DOMAIN_NAME> -a <APPSPACE_NAME> -n <APPNODE_NAME> <APPLICATION_NAME> <APPLICATION_VERSION>
For example:
Once you have collected the above elements you can set the flow limit by adding a property in the config.ini file of the target appspace (to apply to all appnodes of the appspace) or in the config.ini file of each appnode of the appspace (to have different values for each appnode).
In the example above, we have the following elements:
Application name = OrderProcessing.application
Application version = 1.0
Component Name = ComponentProcess
So the property to add to never have more than two instances of the process ‘OrderFileProcessing’ running at the same time is the following:
bw.application.job.flowlimit.OrderProcessing.application.1.0.ComponentProcess=2
Note that the Flow Limit parameter can be defined for all Processes of a given application by using just the application name, for example:
bw.application.job.flowlimit.OrderProcessing.application=2
Note
This feature is also available in BusinessWorks Container Edition (BWCE) environment, details are available in the following support Knowledge Base article :
https://support.tibco.com/s/article/How-to-set-flowlimit-at-component-level-in-ActiveMatrix-BusinessWorks-Container-Edition-application
Starting from BusinessWorks 6.7.0 it is possible to dynamically update the flow limit from the Application level 2, AppSpace level 2, and AppNode level 2 pages of the Admin UI (in other words from the TEA).
It is also possible to do this by using a REST API documented here for BusinessWorks:
https://docs.tibco.com/pub/activematrix_businessworks/6.9.1/doc/html/Default.htm#administration/tuning.htm?Highlight=Updating%20Flow%20Limit%20Dynamically
And documented here for BusinessWorks Container Edition:
https://docs.tibco.com/pub/bwce/2.8.1/doc/html/Default.htm#bwce-app-monitoring/updating-flow-limit-.htm?TocPath=Application%2520Monitoring%2520and%2520Troubleshooting%257C_____8
Reference
https://support.tibco.com/s/article/How-to-set-up-Flow-Limit-in-BW-6-x
Recommended Comments
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now