Skip to content

JMS Inbound


The JMS inbound protocol is an alternative to the JMS transport. The JMS inbound protocol implementation requires an active JMS server instance to be able to receive messages, and you need to place the client JARs for your JMS server in the Micro Integrator.


Listed below are the properties used for creating a JMS inbound endpiont.

Required Properties

The following properties are required when creating a JMS inbound endpiont.

Property Description


The JNDI initial context factory class. The class must implement the java.naming.spi.InitialContextFactory interface.


The URL of the JNDI provider.


The JNDI name of the connection factory.

interval The polling interval for the inbound endpoint to execute each cycle. This value is set in milliseconds.
coordination This optional property is only applicable in a cluster environment. In a clustered environment, an inbound endpoint will only be executed in worker nodes. If set to true in a cluster setup, this will run the inbound only in a single worker node. Once the running worker is down, the inbound starts on another available worker in the cluster. By default, coordniation is enabled.
sequential Whether the messages need to be polled and injected sequentially or not.

Optional Properties

The following optional properties can be configured when creating a JMS inbound endpiont.

Property Name


transport.jms.ConnectionFactoryType The type of the connection factory.

Set to queue by default.


The JNDI name of the destination.


The JMS session acknowledgment mode. You can use one of the following: AUTO_ACKNOWLEDGE , CLIENT_ACKNOWLEDGE , DUPS_OK_ACKNOWLEDGE , SESSION_TRANSACTED.


The JMS resource cache level. Possible values are as follows: 0(none), 1(connection), 2(session), 3(consumer).

The default value is 0-none.

Note:To subscribe to topics, set the value of transport.jms.CacheLevel to 3.


The JMS connection username.


The JMS connection password.


The JMS API version. The possible values are as follows: 1.0.2b, 1.1, 2.0.

The default value is 1.1..

transport.jms.SubscriptionDurable Whether the connection factory is subscription durable or not.
transport.jms.DurableSubscriberClientID The ClientId parameter when using durable subscriptions. This property is required if the value specified as transport.jms.SubscriptionDurable is true.

The name of the durable subscriber. This property is required if the value specified as transport.jms.SubscriptionDurable is true.

transport.jms.MessageSelector Message selector implementation.
transport.jms.ReceiveTimeout The time to wait for a JMS message during polling.
Set this parameter value to a negative integer to wait indefinitely. Set it to zero to prevent waiting.

The default value is 1.
transport.jms.ContentType How the inbound listener should determine the content type of received messages. Priority is always given to the JMS message type. Possible values are any simple string value. In which case the transport listener assumes that the received messages always have the specified content type, or a set of rules. For more information, see
transport.jms.ContentTypeProperty Gets the content type from the message property.
transport.jms.ReplyDestination The destination where the response generated by the back-end service is stored.


Whether messages should be published via the same connection that they were received.


If set to true, messages will be forwarded to only one of the consumers and consumers will share the messages that are published to the topic.


List of synapse server names separated by commas or spaces where this inbound endpoint should be deployed. If there is no pinned server list, the inbound endpoint configuration will be deployed in all server instances.

transport.jms.ConcurrentConsumers Number of concurrent threads to be started to consume messages when polling.

The default value is 1. You can change this to any positive integer. However, for topics the value must always be 1.

The retry interval (in miliseconds) to reconnect to the JMS server.

transport.jms.RetriesBeforeSuspension The number of consecutive mediation failures after which polling should be suspended. Specify any positive numerical value based on your requirement. Polling will be suspended when the mediation failure count reaches the specified value.
transport.jms.PollingSuspensionPeriod The period of time that polling is to be suspended when the transport.jms.RetriesBeforeSuspension parameter is set.

Default value is 60000.