Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1.  Sign in. Enter your user name and password to log on to the ESB Management Console.
  2. Click the Main tab. Under Web Services, click List to open the Deployed Services page.
     
  3. Click on the service for which you want to enable throttling to open its Service Dashboard.
     
  4. In the Quality of Service Configuration panel, click Access Throttling. The Throttling  Configuration page for the service will appear.
    Image Modified

    In the 
    Enable Throttling parameter, select Yes. The existing throttle configuration will appear in the wizard as shown in the example below.
    Image Modified

    Configure the following parameters as required to update the throttle policy.

    Parameter NameDescription
    Maximum Concurrent AccessesThe maximum number of requests served concurrently by the service at any given time.
    Range

    The range of IP addresses or the domain (based on the value selected for the Type parameter) to be restricted from accessing the service. Requests from these IP addresses/domains will be restricted based on the specified values.

    Type

    This specifies the basis on which the clients should be restricted from accessing the proxy service. Possible values are as follows.

    • IP: This restricts access to the service based on the IP address of the client. If you select this, enter the relevant range ofIP addresses in the Range parameter (e.g., 10.100.1.30-10.100.1.60).
    • Domain: This restricts access to the service based on the domain of the client. If you select this, enter the relevant domain in the Range parameter (e.g., *.wso2.com).
    Max Request Count
    Anchor
    MRC
    MRC

    This parameter specifies the maximum number of requests that should be handled within the time interval specified in the Unit Time parameter.

    Tip

    This parameter is applicable only when the value selected for the Access parameter is Control.

    Unit Time (ms)
    Anchor
    UT
    UT

    The time interval for which the maximum number of requests specified for the Throttle ID in the Max Request Count parameter apply.

    Tip

    This parameter is applicable only when the value selected for the Access parameter is Control.

    Prohibit Time Period (ms)
    Anchor
    PTP
    PTP

    If the number of requests entered in the Max Request Count parameter is achieved before the time interval entered in the Unit Time (ms) parameter has elapsed, no more requests are taken by the inflow throttle handler for the time period entered in this parameter. Entering a value in this parameter alters the unit time.

    For example:

    Max Request Count = 50
    Unit Time = 50000 ms
    Prohibit Time Period = 5000 ms

    If 50 requests are received within 35000 milliseconds, no requests will be taken for the next 5000 milliseconds. Thus, the time slot considered as the unit time is changed to 40000 milliseconds. If no value is entered in the Prohibit Time Period (ms) parameter, no requests will be taken until 15000 more milliseconds (i.e. the remainder of the unit time) have elapsed.

    Tip

    This parameter is applicable only when the value selected for the Access parameter is Control.

    Access

    This parameter is used to specify he extent to which the IP addresses/domains specified in the Range parameter are allowed access to the service to which the throttle policy is applied. Possible values are as follows.

    • Allow: If this is selected, the specified IP addresses/domains are allowed to access the services to which the throttle ID is applied without any restrictions.
    • Deny: If this is selected, specified IP addresses/domains are not allowed to access the services to which the throttle ID is applied.
    • Control: If this is selected, the specified IP addresses/domains are allowed to access the services to which the throttle ID is applied. However, the number of times they can access the services is controlled by the Max Request Count , Unit Time (ms) ,and the Prohibit Time Period (ms) parameters.
    ActionsClick Delete in the relevant row to delete an entry.

 

 

...

  1. You can create as many entries as required by clicking Add New Entry.

  2. Click Finish to save the information.
Info

You can also specify the throttle policy within a proxy service configuration as a key by saving the policy in the registry or by saving it as a local entry. However, when you are not using the Management Console, you are required to manually create an entry in the <ESB_HOME/repository/deployment/server/servicemetafiles/<Service_Name>.xml file to enable throttling as shown in the example below.

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="ThrottleProxy"
       transports="https http"
       startOnLoad="true"
       trace="disable">
   <description/>
   <target>
      <endpoint>
         <address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
      </endpoint>
      <inSequence>
         <log level="full"/>
      </inSequence>
   </target>
  <policy key="throttlePolicy1"/>
</proxy>

 The following is an example of a throttle policy configuration that can be saved in the registry or as a local entry.

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<localEntry xmlns="http://ws.apache.org/ns/synapse" key="throttlePolicy1">
   <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
               xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
               wsu:Id="WSO2ServiceThrottlingPolicy">
      <throttle:ServiceThrottleAssertion xmlns:throttle="http://www.wso2.org/products/wso2commons/throttle">
         <wsp:Policy>
            <throttle:ID throttle:type="IP">10.100.0.37</throttle:ID>
            <wsp:Policy>
               <throttle:Control>
                  <wsp:Policy>
                     <throttle:MaximumCount>5</throttle:MaximumCount>
                     <throttle:UnitTime>100000</throttle:UnitTime>
                     <throttle:ProhibitTimePeriod wsp:Optional="true">10000</throttle:ProhibitTimePeriod>
                  </wsp:Policy>
               </throttle:Control>
            </wsp:Policy>
         </wsp:Policy>
         <wsp:Policy>
            <throttle:ID throttle:type="DOMAIN">localhost</throttle:ID>
            <wsp:Policy>
               <throttle:Control>
                  <wsp:Policy>
                     <throttle:MaximumCount>5</throttle:MaximumCount>
                     <throttle:UnitTime>100000</throttle:UnitTime>
                     <throttle:ProhibitTimePeriod wsp:Optional="true">10000</throttle:ProhibitTimePeriod>
                  </wsp:Policy>
               </throttle:Control>
            </wsp:Policy>
         </wsp:Policy>
         <wsp:Policy>
            <throttle:ID throttle:type="IP">127.0.0.1</throttle:ID>
            <wsp:Policy>
               <throttle:Control>
                  <wsp:Policy>
                     <throttle:MaximumCount>5</throttle:MaximumCount>
                     <throttle:UnitTime>100000</throttle:UnitTime>
                     <throttle:ProhibitTimePeriod wsp:Optional="true">10000</throttle:ProhibitTimePeriod>
                  </wsp:Policy>
               </throttle:Control>
            </wsp:Policy>
         </wsp:Policy>
      </throttle:ServiceThrottleAssertion>
   </wsp:Policy>
   <description/>
</localEntry>


 

 

3. In the "Manage" menu, click on "List" under "Web Services."

...