In most integration scénarios BusinessWorks is processing external events, like REST API calls, JMS messages publications or files transfers, that are received at a rate that is mostly depending from the business activity.
This means that at some moments, there could be a high load of events to manage and this may exceed the BusinessWorks configuration capabilities and create problems like high cpu consumption impacting other flows or out of memory errors impacting the flow processing.
In a production environment it is then necessary to have in place some solutions to limit the number of events processed at the same time in BusinessWorks.
BusinessWorks has its own ‘Flow Limit’ mechanism to manage this requirement but depending on the transport you are using to receive events this might not be the most efficient solution.
This article is to explain the recommended way to control flows for the most common transports used with BusinessWorks.
HTTP based flows
For HTTP based flows the number of events processed at the same time in BusinessWorks is defined by the Maximum QTP Threads parameter from the HTTP Connector resource (the default value is 75).
It is strongly recommended to manage the value of this parameter with a property to allow the operation team to adjust its value in the run time environment.
JMS based flows
For JMS based flows the most efficient way to control the flows is to configure in the applications the JMS Receive Message activities to use ‘Client Acknowledgement’ with a ‘Max Sessions’ and manage confirmations explicitly with ‘Confirm’ activities. With such configuration the number of events processed at the same time in BusinessWorks is defined by the Max Sessions Parameter.
In this approach the flow control is efficiently managed by the EMS server and the number of flows processed in parallel in BusinessWorks remain at the value defined by Max Sessions as long as it is needed.
It is strongly recommended to manage the value of the Max Sessions Parameter with a property to allow the operation team to adjust its value in the run time environment.
In the case the application with the JMS Receive Message activity would not use ‘Client Acknowledgement’ then the Flow Limit mechanism has to be used.
Other kind of flows
For other kind of flows there are two cases to consider:
· The Process starter activity doesn’t implement any flow control mechanism, in that case it is recommended to use the BusinessWorks Flow Limit mechanism
· The Process starter activity has some kind of flow control mechanism, in that case it is recommended to use the available mechanism
For example, for file based flows (triggered by a File Poller activity) or Mail based flows (triggered by the Receive Mail activity) the best solution is to use the Flow Limit mechanism.
On the other hand for SAP flows triggered by the ‘Idoc Listener’ activity the best solution is to use the ‘Max Connections’ mechanism supported by this activity. See BusinessWorks Plugin for SAP documentation for more details : https://docs.tibco.com/pub/bwpluginsap/8.7.0/doc/html/Default.htm#users-guide/job-tuning.htm
Additional elements
Explanations on how to use the BusinessWorks ‘Flow Limit’ mechanism have been provided in the following article:
Note also that I recommend to not use the BusinessWorks Page Threshold mechanism while it has a strong impact on performance. In my personal opinion it should be used only when no other options are working.
An article on the flow control best practices for BusinessWorks 5.X is available at the following URL : https://emarchiset.medium.com/how-to-control-flows-in-businessworks-5-x-c14ad6165afe
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