Sample Scenario

Consider a web service that queries for books in a bookstore by the name of their Author. A client for the web service is configured using the service’s WSDL file. The client sends a SOAP request containing the name of an Author to the web service and receives a list of books.

See the example at <TIBCO_HOME>\bw\<version_number>\examples\activities\soap\soap_over_http for more details of the sample scenario.

 

 

Consider the web service is running on a two CPU Windows machine with 3GHz and 2G RAM.

When the number of concurrent SOAP requests sent to the web service increases, the ActiveMatrix BusinessWorks engine is loaded and the memory required increases.

The JVM heap size determines the memory allocated for the ActiveMatrix BusinessWorks engine and processes instances. To specify the JVM heap size, set the following property in bwengine.tra:

java.extended.properties -Xms768m -Xmx768m

Note: The JVM heap size can also be set in TIBCO Administrator. For more information, see Server Settings Tab .

The memory required for a ActiveMatrix BusinessWorks engine is defined by the workload that the engine is designed to handle.

To specify the number of concurrent incoming HTTP requests that can be handled by the web service, set the following properties in the bwengine.tra file:

bw.plugin.http.server.minProcessors

bw.plugin.http.server.maxProcessors

Setting maxProcessors to 100, ensures that upto 100 requests can be accepted concurrently.

To improve the ability to execute process instances concurrently, more engine threads are required. The number of engine threads to be allocated can be set using the property Engine.ThreadCount. The default value is eight. Theoretically, the value of Engine.ThreadCount can be increased till maximum CPU utilization is reached. However, an increase in the thread count and hence, an improved concurrency, may not always result in an improved performance. This is because an improved concurrency also implies an increased resource consumption.

Set the Engine.StepCount property to specify the maximum number of execution steps for a job, unless in a transaction or when the ActivationLimit is set. The default value is 20. Depending on the nature of the jobs being executed, the value of this property can be increased or decreased. A low value of StepCount results in frequent thread switches. This is an overhead, especially when the number of execution steps for most jobs is high.

To specify the size of the thread pool used by the Request-Reply activity on the web service client side, set the properties: bw.plugin.http.client.ResponseThreadPool

bw.plugin.http.client.ResponseThreadPool.type

As the thread pool is created when the engine starts, use a reasonable number to specify the size of the ResponseThreadPool for your system. A high value results in extra resources being allocated which may never be used.