Configuring synapse.properties
The <ESB_Home>/repository/conf/synapse.properties
file contains tuning parameters relating to the mediation engine. These parameters are mainly used when mediators such as Iterate
and Clone
which leverage on internal thread pools are used.
The following table explains the parameters included in the synapse.properties
file.
Parameter Name | Description | Default Value |
---|---|---|
synapse.threads.core | The initial number of synapse threads in the pool. This parameter is applicable only if the Iterate or the Clone mediator is used to handle a higher load. The number of threads specified for this parameter should be increased as required to balance an increased load. | 20 |
synapse.threads.max | The maximum number of synapse threads in the pool. This parameter is applicable only if the Iterate or the Clone mediator is used to handle a higher load. The number of threads specified for this parameter should be increased as required to balance an increased load. | 100 |
synapse.threads.keepalive | The keep-alive time for extra threads defined in milliseconds. This parameter is applicable only if the Iterate or the Clone mediator is used to handle a higher load. | 5 |
synapse.threads.qlen | The length of the queue that is used to hold the runnable tasks to be executed by the pool. This parameter is applicable only if the Iterate or the Clone mediator is used to handle a higher load. | 10 |
synapse.threads.group | The name of the thread group. | synapse-thread-group |
synapse.threads.idprefix | The prefix of each thread name. | SynapseWorker |
synapse.sal.endpoints.session.timeout.default | The session time-out time for the session aware load balance endpoint given in milliseconds. | 600000 |
| The maximum number of milliseconds within which a response for the request should be received. A response which arrives after the specified number of seconds cannot be correlated with the request. Hence, a warning all be logged and the request will be dropped. This parameter is also referred to as the time-out handler | 120000 |
statistics.clean.enable | If this parameter is set to true , all the existing statistics would be cleared before processing a request. This is recommended if you want to increase the processing speed. | false |
synapse.commons.json.preserve.namespace | Preserves the namespace declarations in the JSON output in XML to JSON transformations. | false |
synapse.xpath.dom.failover.enabled
| If this parameter is set to WSO2 EI uses the Saxon Home Edition in implementing XPATH 2.0 functionalities, and thus supports all the functions that are shipped with it. For more information on the supported functions, see Saxon Documentation. | false |
| The back end service to which a request has been sent are repeatedly called back for responses at time intervals specified for this parameter. Any endpoints have timed out are identified during these time intervals, and they are no longer called back. Note that specifying a lower value for this parameter results in a higher overhead on the system. | 15 (seconds) |
synapse.script.mediator.pool.size
| When using externally referenced scripts, this parameter is used to specify the size of the script engine pool to be used per script mediator. The script engines from this pool are used for externally referenced script execution where updates to external scripts on an engine currently in use may otherwise not be thread safe. It is recommended to keep this value at a reasonable size since there will be a pool per externally referenced script. | 15 |
synapse.connection.read_timeout | The connection time-out in milliseconds when ESB is accessing a WSDL URI. | 100000 |
synapse.json.to.xml.processing.instruction.enabled | Enables adding processing instructions when performing JSON to XML conversions. For example, you can add processing instructions to identify array elements in JSON payloads with array indices (i.e., marked with "[ ]") and process them to XML. This property is available for WSO2 ESB 5.0.0 via the WUM update 1938 released on the 24th of November 2017. | false |
The parameters of this file may also need to be changed depending on the NHTTP properties as shown in the example below.
If the NHTTP properties are as follows:
snd_t_core=100 #snd_t_max=250 snd_io_threads=5 lst_t_core=100 #lst_t_max=250 lst_io_threads=5 http.socket.timeout=60000 #http.connection.disable.keepalive=1
A reasonable setting for synapse properties would be as follows:
synapse.threads.core=100 synapse.threads.max=250 synapse.threads.keepalive=5 synapse.threads.qlen=1000 synapse.threads.group=synapse-thread-group synapse.threads.idprefix=SynapseWorker