How to control flows in BusinessWorks 6.X and BusinessWorks Container Edition

Emmanuel Marchiset
3 min readMar 23, 2021

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).

HTTP Connector — Maximum QTP Threads parameter

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.

Exemple of a process implementing the best practice for JMS Flow Control

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:

https://emarchiset.medium.com/how-to-set-a-flow-limit-for-a-given-businessworks-6-x-component-e0c3563c6313

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

--

--

Emmanuel Marchiset

I work as an Architect at TIBCO Software on Integration products. Opinions here are my own.