Jump to content
  • BW5.X - How to control flows in BusinessWorks 5.X


    This article is the BusinessWorks 5.X version of an article already published for BusinessWorks 6.X and BusinessWorks Container Edition. The original article is available at the following URL :
    https://emarchiset.medium.com/how-to-control-flows-in-businessworks-6-x-and-businessworks-container-edition-94e5a35bb745

    In most integration scénarios BusinessWorks is processing external events, like WEB Services 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 5.X has its own ‘Max Jobs’ and ‘Flow Limit’ mechanisms 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 5.X.

    HTTP based flows

    For HTTP based flows the number of events processed at the same time in BusinessWorks 5.X is by default set to 75. This can be adjusted at deployment time for each Process Starter of an Archive in the ‘Advanced’ tab of the ‘Service Configuration’ panel by setting a value different than zero to the Flow Limit property. After updating the value of a Flow Limit property the archive must be redeployed for the change to be taken into account.

    Setting the value of the Flow Limit property is equivalent to setting the engine property bw.plugin.http.server.maxProcessors for the selected Process Starter to ‘<valueOfFlowLimit> — 1’.

    As mentioned in the Chapter 8 of BusinessWorks 5.X Administration documentation the bw.plugin.http.server.maxProcessors property specifies the maximum number of threads available for incoming HTTP requests. The HTTP server will not create more than the number of threads specified by this parameter. The default maximum number of threads is 75.

    1*1K0BwPNdJ9esgeD9320xvg.jpeg

    This property can also be set in the deployment.xml file used by AppManage when deployment are managed in scripted mode.

    With the example above you can check that the following property is added at deployment in the application tra file:

    FlowLimit.WEBOrdersAPI.process=25

    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.

    1*7L23-5QjmVm_7vWS6u0vHA.jpeg

    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

    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.

    · The Process starter activity has some kind of flow control mechanism, in that case it is recommended to use the available mechanism

    Additional elements

    Note also that I recommend to not use the ‘Max Jobs’ mechanism while it has a strong impact on performance. In my opinion it should be used only when no other options are working.

    • Like 1

    User Feedback

    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 account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×
×
  • Create New...