This documentation is for WSO2 Enterprise Service Bus version 4.8.1 . View documentation for the latest release.

All docs This doc

Versions Compared


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



you get the error SYSTEM ALERT - HttpServerWorker threads were in BLOCKED state during last minute., it may have occurred because an extraordinarily high number of requests have been sent at a time when all the threads in the pool are busy and this maximum number of threads is already reached

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

Parameter NameDescriptionDefault Value
worker_pool_size_coreInitial number of threads in the worker thread pool. This can be increased to match an increased number of messages to be processed unit the value specified for the worker_pool_size_max parameter is reachedIf the number of live threads is less than the value defined here, a new thread is created to process the response.400

Maximum number of threads in the worker thread pool. Specifying a maximum limit helps to avoid performance degradation that can occur due to context switching.


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

worker_thread_keepalive_secDefines the

The keep-alive time in seconds for


idle threads in the worker pool

. This should be less than the socket timeout

. 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

unutilized extra

idle threads.

worker_pool_queue_lengthDefines the

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

The thread pool starts queuing jobs when all the existing threads are busy and the pool has reached the maximum number of threads. The value for this parameter should be -1 to use an unbounded queue. If a bound queue is used and the queue gets filled to its capacity, any further attempts to submit jobs will fail causing some messages to be dropped by Synapse

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.

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 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

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.