This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.

Configuring passthru-http.properties

The <ESB_Home>/repository/conf/passthru-http.properties file contains tuning parameters related to the HTTP Pass Through transport. This is the default transport of the WSO2 ESB since it optimises the performance of the ESB in most scenarios. The performance can be further optimised when this transport is used with header based routing or smaller sized messages.

These parameters can be modified as required based on your production environment. This information is provided as a reference for users who are already familiar with the product features and want to know how to configure them.

Pass-through HTTP transport specific tuning parameters

Parameter NameDescriptionDefault Value
worker_pool_size_coreInitial number of threads in the worker pool. If the number of live threads is less than the value defined here, a new thread is created to process the response. The nature of the integration scenario and the number of concurrent requests received by the ESB are the main factors that help to determine worker_pool_size_core. 400
worker_pool_size_max

Maximum number of threads in the worker pool.

If the queue (worker_pool_queue_length) is full and the number of live threads is less than the value defined here, a new thread will be created to process the response.

500
http.socket.timeout

Maximum period of inactivity between two consecutive data packets. Given in milliseconds.

120000
worker_thread_keepalive_sec

The keep-alive time in seconds for idle threads in the worker pool. Once this time has elapsed for an idle thread, it will be destroyed.

The purpose of this parameter is to optimize the usage of resources by avoiding wastage that results from having idle threads.

60
worker_pool_queue_length

The length of the queue that is used to hold runnable tasks to be executed by the worker pool.

If the number of live threads is equal to the core pool size (worker_pool_size_core) and all threads are busy, new tasks will be pushed into the queue so that they can be processed when a thread becomes available.

If you need new threads to be created beyond the core pool size ( worker_pool_size_core ), ensure you change the default value of this parameter so that it becomes a bounded queue

If the queue is full, all threads are busy and the number of live threads is equal to the max pool size (worker_pool_size_max ), new tasks will be rejected by the worker.

-1
io_threads_per_reactorDefines the number of IO dispatcher threads used per reactor. The value for this property should not exceed the number of cores in the server.2
io_buffer_sizeSize in bytes of the buffer through which data passes.16384
http.max.connection.per.host.portDefines the maximum number of connections allowed per host port.32767
http.socket.reuseaddrIf this parameter is set to true, it is possible to open another socket on the same port as that of the socket which is currently used by the ESB server to listen to connections. This is useful when recovering from a crash. On such occasions, if the socket is not properly closed, a new socket can be opened in order to continue with the listening.true
http.socket.buffer-size

This is used to configure the SessionInputBuffer size of http core. The SessionInputBuffer is used to fill data that is read from the OS socket. This parameter does not affect the OS socket buffer size.

8192


Other parameters

Parameter NameDescriptionDefault Value
http.block_service_listIf this parameter is set to true, all the services deployed to the WSO2 ESB cannot be accessed from the http(s):<esb>:8280/services/ URL.true
http.user.agent.preserveIf this parameter is set to true,the User-Agent HTTP header of messages passing through the ESB will be preserved and printed in the outgoing message.false
http.server.preserveIf this parameter is set to true, Server HTTP header of messages passing through the ESB will be preserved and printed in the outgoing message.false
http.connection.disable.keepaliveIf this parameter is set to true, the HTTP connections with the back end service will be closed soon after the request is served. It is recommended to set this property to false so that the ESB does not have to create a new connection every time it sends a request to a back end service. However, you may need to close connections after they are used if the back end service does not provide sufficient support for keep alive connections.false
rest.dispatcher.serviceThis parameter determines how requests from clients to the ESB are dispatched to the REST APIs of the ESB. The MultitenantDispatcherService which is selected by default for this parameter dispatches requests from multiple clients at a given time.MultitenantDispatcherService


Example

The following example shows excerpts from a passthru-http.properties file.

## This file contains the configuration parameters used by the Pass-through HTTP transport
## Pass-through HTTP transport specific tuning parameters
worker_pool_size_core=400
worker_pool_size_max=500
#worker_thread_keepalive_sec=60
#worker_pool_queue_length=-1
#io_threads_per_reactor=2
io_buffer_size=16384
#http.max.connection.per.host.port=32767
# This property is crucial for automated tests
http.socket.reuseaddr=true
## Other parameters
http.block_service_list=true 
#http.user.agent.preserve=false
#http.server.preserve=true
#http.connection.disable.keepalive=false
rest.dispatcher.service=__MultitenantDispatcherServicev

For information on tuning performance of WSO2 ESB using these properties, see Performance Tuning.