JMS Inbound

Introduction

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.

Properties

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

Required Properties

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

Property Description

java.naming.factory.initial

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

java.naming.provider.url

The URL of the JNDI provider.

transport.jms.ConnectionFactoryJNDIName

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

Property Name

Description

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

Set to queue by default.

transport.jms.Destination/p>

The JNDI name of the destination.

transport.jms.SessionAcknowledgement

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

transport.jms.CacheLevel

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.

transport.jms.UserName

The JMS connection username.

transport.jms.Password

The JMS connection password.

transport.jms.JMSSpecVersion

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.
transport.jms.DurableSubscriberName

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 http://axis.apache.org/axis2/java/transports/jms.html#Service_configuration.
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.

transport.jms.PubSubNoLocal

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

transport.jms.SharedSubscription

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.

pinnedServers

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.
transport.jms.retry.duration

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