WAS v8.5 > Tune performance > Tune web servicesTune bus-enabled web services
We can use the dmgr console or a Jacl script to tune performance settings for service integration bus-enabled web services. Bus-enabled web services dynamically use a fast-path route through the bus where possible. This fast-path route is used if the following criteria are met:
- The inbound port and outbound port for the service are on the same server.
- There are no mediations on the path from the inbound port to the outbound port.
Further optimizations can be made, if your configuration also meets the following criteria:
- The inbound template WSDL URI is the same location as the Outbound Target Service WSDL location URI.
- The inbound service template WSDL service name matches the outbound WSDL service name.
- The inbound service template port name matches the outbound WSDL port name.
- The mapping of the namespaces is disabled (that is, we have set the inbound service property com.ibm.websphere.wsgw.mapSoapBodyNamespace to false).
- Operation-level security is not enabled on the outbound service.
If the web services use the fast-path route, you need not tune mediations or the service integration bus. However it is good practise to do so, because a typical environment will have at least one non-fast-path (for example, mediated) service.
To improve the performance of bus-enabled web services we can tune the following parameters:
- The Java virtual machine heap size. This helps ensure there is enough memory available to process large messages, or messages with large attachments.
- Maximum number of instances of a message-driven bean that are permitted by the activation specification for the service integration technologies resource adapter. This throttles the number of concurrent clients serviced.
- Maximum batch size for batches of messages to be delivered to a client. By default, only a single message is delivered to a message-driven bean instance at one time; we can improve performance by allowing messages to be sent in batches to a message-driven bean.
- The number of threads available to service requests for each client. That is, the number of threads available in the default thread pool, the web container thread pool and the mediation thread pool for a given application server.
- The number of threads available in the mediation thread pool. This assumes that your mediations use concurrent support where appropriate, as explained in Concurrent mediations.
If we have mediations that act on SOAP headers, we can improve performance by inserting the associated header schemas (.xsd files) into the SDO repository.
- Optional: Use the dmgr console to tune bus-enabled web services by completing the following steps:
- Use the topic Tune the IBM virtual machine for Java to set the JVM heap size to a larger value than the default value (256 megabytes). The value should generally be as large as possible without incurring paging.
- Use the topic Tune service integration messaging to tune the maximum number of instances of a message-driven bean, the maximum batch size for batches of messages for a bean, and the number of threads available to service requests for a bean.
- Use the topic Tune the application serving environment to tune the general application serving environment, in particular the size of the web container thread pool. In a server that is exclusively serving requests to bus-enabled web services, the default thread pool and the web container thread pool should be the same size.
- Use the topic Configure the mediation thread pool to configure the number of threads available to concurrent mediations.
- Optional: If we have mediations that act on SOAP headers, insert the associated schemas (.xsd files) into the SDO repository as described in Including SOAP header schemas in the SDO repository.
Subtopics
- Including SOAP header schemas in the SDO repository
Use this task to improve mediation performance by inserting the SOAP header schema into the SDO repository.
Related concepts:
Performance tuning for mediations