In this article, we have discussed about the throttling process in BPEL-SE. Article only explains the basics of throttling configuration in composite application. We suppose you already have worked on OpenESB and know basic components name like BPEL Process, Composite application, FTPBC etc.
What is Throttling?
In software, a throttling process, or a throttling controller as it is sometimes called, is a process responsible for regulating the rate at which application processing is conducted, either statically or dynamically.
A throttling controller may be embedded in the application hosting platform to balance the application’s outbound publishing rates with its inbound consumption rates,
Throttling in BPEL-SE
In BPEL-SE, Throttling allows you to set the maximum number of concurrent messages that are processed by a particular endpoint. Increased message load and large message payloads can cause memory usage spikes that can decrease performance and OOM Error in Production Servers. Throttling limits resource consumption so that consistent performance is maintained.
When Value of Throttling is set to 1, the binding components will process each messages serially. For example suppose FTPBC is executing one file, in between it will not pick any other file from polling directory. It means next message will be sent only after a response/acknowledgement is received for the first message.
Configure Throttling
To Configure Throttling, please follow below steps.
· From the OpenESB IDE, Expand the composite application project window, and double click on Service Assembly node.
The CASA Editor opens containing your composite application.
In the CASA Editor, click the ‘QoS’ icon located on the link between your JBI Module and the WSDL port you want to configure.
The QOS Properties Editor appears.
In the QOS Properties Editor, click the property field for Max Concurrency Limit under Throttling Extension, and enter an integer for the maximum number of concurrent messages allowed for this endpoint.
The ‘Throttling’ configuration is generated in jbi.xml as shown below.
This connection tag is in addition to the jbi ‘connection’ tag for the same endpoints and is differentiated by the namespace ‘http://www.sun.com/jbi/qos’. The throttling element is defined in the namespace ‘http://www.sun.com/jbi/qos/throttling’.
<connections xmlns="http://www.sun.com/jbi/qos"> <connection> <consumer endpoint-name="redeliverPTRole_partnerRole" service-name="ns1:redeliverPL"/> <provider endpoint-name="javaee_port1" service-name="ns2:redeliverService"/> <throttling xmlns="http://www.sun.com/jbi/qos/throttling" maximumConcurrencyLimit="10"/> </connection> </connections>
I hope this tutorial will help you to get your understanding with simple FTP Operation with OpenESB 2.3.