Objective: Demonstrate the use of throttle mediator for concurrency throttling.
<!-- define throttle policy -->
<property name="text" value="**Access Accept**"/>
<property name="text" value="**Access Denied**"/>
<reason value="**Access Denied**"/>
<property name="RESPONSE" value="true"/>
<header name="To" action="remove"/>
- Deploy the SimpleStockQuoteService in sample Axis2 server and start it on port 9000.
- Start ESB with the sample configuration 370 (i.e. wso2esb-samples -sn 370).
Above configuration specifies a throttle mediator inside the in mediator. Therefore, all request messages directed to the main sequence will be subjected to throttling. Throttle mediator has 'policy', 'onAccept' and 'onReject' tags at top level. The 'policy' tag specifies the throttling policy for throttling messages. This sample policy only contains a component called "MaximumConcurrentAccess" .This indicates the maximum number of concurrent requests that can pass through Synapse on a single unit of time. To test concurrency throttling, it is required to send concurrent requests to Synapse. If Synapse with above configuration, receives 20 requests concurrently from clients, then approximately half of those will succeed while the others being throttled. The client command to try this is as follows.
ant stockquote -Dsymbol=IBM -Dmode=quote -Daddurl=http://localhost:8280/