Versions Compared

Key

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

WSO2 ESB's Java Message Service (JMS) transport allows you to easily send and receive messages to queues and topics of any JMS service that implements the JMS specification. The following sections describes how you can tune the JMS transport of WSO2 ESB for better performance.

...

To adjust the values of these properties, you can modify the server startup script if you want to increase the available threads for all transports (requires more memory), or create a jms.properties file if you want to increase the available threads just for the JMS transport. Both approaches are described below.

To increase the threads for all transports

...

  1. Open the wso2server.sh or wso2server.bat file in your <ESB_HOME>/bin directory for editing.
  2. Change the values of the properties as follows: 
    •  -Dsnd_t_core=200
    •  -Dsnd_t_max=250
To increase the threads for just the JMS transport

...

  1. Create a file named jms.properties with the following properties:
    • snd_t_core=200

    • snd_t_max=250

  2. Create a directory called conf under your <ESB_HOME> directory and save the file in this directory.

...

  • Add the following parameters to the JMS listener configuration of the <ESB_HOME>/repository/conf/axis2/axis2.xml file.:

    Code Block
    languagexml
    <parameter name="transport.jms.ConcurrentConsumers" locked="false">50</parameter> 
    <parameter name="transport.jms.MaxConcurrentConsumers" locked="false">50</parameter>

...

  • Add the following parameter to the JMS listener configuration of the <ESB_HOME>/repository/conf/axis2/axis2.xml file.:

    Code Block
    languagexml
    <parameter name="transport.jms.CacheLevel">consumer</parameter>

    The possible values for the cache level are none, auto, connection, session and consumer. Out of the possible values, consumer is the highest level that provides maximum performance.

...

  • Add the following parameter to the JMS sender configuration of the <ESB_HOME>/repository/conf/axis2/axis2.xml file.:

    Code Block
    languagexml
    <parameter name="transport.jms.CacheLevel">producer</parameter>

    The possible values for the cache level are noneautoconnectionsession and producer. Out of the possible values, producer is the highest level that provides maximum performance.

...

  • Add the following parameter to the configuration:

    Code Block
    languagexml
    <property name="ClientApiNonBlocking" action="remove" scope="axis2"/>
    
    

...