This is the WSO2 Data Services Server documentation version 2.6.3

Access Throttling

The Throttle mechanism is used to control access to services at different levels.

The WSO2 Data Services Server provides an effective and efficient way of applying the throttle mechanism to your data services.

Levels of Throttling

Throttling can be enabled at:

  • Global level - If it is enabled globally, restrictions are applied globally (for every message coming into the server).
  • Service level (As discussed here) - If it is enabled for a particular service, restrictions are applied to all the messages coming into that service.
  • Operation level - If it is enabled only for an operation in a given service, restrictions are applied only for the messages accessing that particular operation.

Adding Throttling to a Service

Use this function to add a throttle parameter that specifies a variable millisecond wait between calls or a variable maximum number of calls per unit of time. This would facilitate the smooth operation of data services and REST using the Web service and HTTP client steps.

Tip

The throttling option is disabled by default. If you want to add the throttling mechanism, you should enable it.

Follow the instructions below to add throttling to a service.

1. Log on to the Data Services Server Management Console.

2. Click on Main menu and select List under Web Services.

3. The Deployed Services page appears. Select the service for which you want to enable throttling.

4. The Service Dashboard page (for that service) appears. In the Quality of Service Configuration panel, click Access Throttling.

5. The Throttling Configuration page appears. Select Yes from the drop-down menu.

6. The existing throttle configuration appears in the wizard. Click Add New Entry.

Tip

To enter new parameters or modify existing parameters, select Allow in the Access column.

7. Specify the parameters of the new entry.

Parameters for Throttling Configuration:

  • Range - The IP address range or the domain is restricted from accessing the service. Requests from such clients will be restricted based on the specified values.
  • Type - This indicates the type of Range. It can be IP or DOMAIN. It should be IP if the range is given as a single IP address or a range of IP addresses (for example, 10.100.1.30-10.100.1.60). It should be DOMAIN if the range is given as as a domain (for example, *.wso2.com). If you specify configurations types of both IP and DOMAIN, first priority will be given to DOMAIN level configurations.
  • Maximum Request Count (MRC) - If  Access is set to Control, it will be the maximum number of requests that are served within the time interval specified by the Unit Time parameter.
  • Unit Time (UT) - The time period in milliseconds during which the maximum requests served. This is the number specified by the Maximum Request Count. The throttle starts counting the number of units from the moment it is enabled and the number of requests served within that period.
  • Prohibit Time Period (PTP) - If the maximum request count is achieved before the unit time, this is the period during which no more requests are allowed to go in. By setting this value, the unit time slot is altered.
  • Access** Allow - Means that no restriction is applied for that range and all requests are allowed to go in as they come in.** Deny - Means that access is completely denied for that range.** Control

Tip

When the Access is set to Allow or Deny, MRC, UT and PTP parameters are not necessary and the said fields are deactivated. If it is Control, then the specified constraints are applied for that particular range.

Example:

MRC = 50

UT = 50000

PTP = 5000

If 50 requests are arrived within 35000ms (35s) in a particular time period, no more requests are taken in for another 5000ms (5s = PTP). This time, the UT is altered to 35000ms + 5000ms = 40000ms (40s)

8. If you set the parameters for a particular service, your configuration will be applied only to that particular service. On the other hand, if you reached this page from global configurations, these configurations will be applied globally. Also refer to applying throttling globally.

9. Once done specifying the parameters, click "Finish." Throttling will be engaged for that particular service.

Functions of Buttons:

  • Finish - Click "Finish" to submit the current data. When finished, your throttle configuration will be applied and the page will be redirected to the previous page.
  • Reset - Click "Reset" to load the last submitted configuration.
  • Default - Click "Default" to load the default throttle configuration. If you want to submit those data, you have to click Finish.
  • Clear - Click "Clear" to clear all the text boxes in the user interface.
  • Cancel - Click "Cancel" to go to the "Service Dashboard" page.