Managing performance when using web services


This section describes configuration changes that might be required when using web services with the AR System server.

Managing the number of server threads

If an AR System server calls itself through a web service, twice the number of fast and list threads are used. Therefore, the minimum number of fast and list threads should be more than two. The number of server threads should be two times the expected number of users that will use the web-services feature if they are consuming on the same server.

Because each web service call consumes two threads, it is easy to get into a deadlock situation by running out of threads.

To consume a web service created on the same AR System server, you must increase the number of threads. To increase the number of server threads, open the AR System Administration: Server Information form, select the Ports and Queues tab, and adjust the number of threads.

Setting the time-out

If an external web service is too slow, the AR System server times out in 40 seconds, by default. Set the time-out to 20 seconds. 

To modify the time-out setting, perform the following:

  1. In a browser, open the AR System Administration Console, and click System > General > Centralized Configuration.
  2. In the AR System Configuration Generic UI form, from the Component Name list, select the com.bmc.arsys.server.extension. webservice component.
  3. From the settings table, select the timeout setting.
  4. Edit the timeout setting value, and click Apply.
  5. Click Close.

AR System server behavior when calculating the web service timeout

When you set the Filter API Timeout parameter and the Web Service API Timeout parameter, the web service timeout is calculated by considering the following:

  • If Filter API Timeout is more than 300 seconds, consider it as 300 seconds only.
  • If Web service Timeout is defined as zero, use Filter API Timeout value for Web service API timeout. Or, consider the Web Service Timeout value as the value lowest between Web service API Timeout or Filter API Timeout.
  • If Web Service API Timeout value + 5 (here, five is a constant for adjustment) is greater than the Filter API Timeout value, reduce the Web Service API timeout value by 5.
  • After considering the points described above, if the Web Service Timeout is zero, consider the timeout value as 35. Or use any non-zero value that you have obtained.

Code example:

If (filterAPITimeout > 300){
 filterAPITimeout = 300;
}
If (WebSerciveAPITimeout> 300) {
 WebSerciveAPITimeout = lowest of (WebServiceAPITimeout, filterAPITimeout);


} else {
         WebSerciveAPITimeout = filterAPITimeout
 }
If ((WebSerciveAPITimeout + 5) > filterAPITimeout){
  
 WebSerciveAPITimeout = WebSerciveAPITimeout -5;//This allows to have some time for further filter processing.//
 }
If (WebSerciveAPITimeout > 0){
   WebSerciveAPITimeout = 35
}

Refer to the following examples:

  • Example 1: If the Web Service API Timeout parameter value is 100 seconds and the Filter API timeout parameter value is 102 seconds, the Web Service Timeout is calculated as follows:

    Since 100 is less than 102 and (100+5) is greater than 102, the Web Service Timeout is (102-5) = 97 seconds.

  • Example 2: If the Web Service API Timeout parameter value is 105 seconds and the Filter API timeout parameter value is 100 seconds, the Web Service Timeout is calculated as follows:

    100 is less than 105 and (100+5) is greater than 100, the Web Service Timeout is (100-5) = 95 seconds.


 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*