This documentation is for WSO2 Enterprise Service Bus version 5.0.0. For the latest ESB, view the latest WSO2 Enterprise Integrator documentation.

All docs This doc
||
Skip to end of metadata
Go to start of metadata

The WSO2 ESB JMS inbound protocol is a multi-tenant capable alternative to the WSO2 ESB 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 ESB classpath.

The recommended JMS servers are WSO2 Message Broker or Apache ActiveMQ, but other implementations such as Apache Qpid and Tibco are also supported.

Configuration parameters for a JMS inbound endpoint are XML fragments that represent JMS connection factories.

Following is a sample JMS inbound endpoint configuration:

<inboundEndpoint xmlns="http://ws.apache.org/ns/synapse" 
                 name="jms" sequence="request" 
				 onError="fault" 
				 protocol="jms" 
				 suspend="false">
      <parameters>
         <parameter name="interval">1000</parameter>
         <parameter name="coordination">true</parameter> 
         <parameter name="transport.jms.Destination">ordersQueue</parameter>
         <parameter name="transport.jms.CacheLevel">3</parameter>
         <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
         <parameter name="sequential">true</parameter>
         <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
         <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
         <parameter name="transport.jms.SessionAcknowledgement">AUTO_ACKNOWLEDGE</parameter>
         <parameter name="transport.jms.SessionTransacted">false</parameter>
         <parameter name="transport.jms.ConnectionFactoryType">queue</parameter>
      </parameters>
   </inboundEndpoint>

The parameters interval and coordination are common to all polling inbound endpoints. For descriptions of these parameters, see Common polling inbound endpoint parameters.

JMS inbound endpoint parameters

Parameter Name

Description

Required

Possible Values

Default Value

java.naming.factory.initial

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

Yes

A valid class name

-

java.naming.provider.url

The URL of the JNDI provider.

Yes

A valid URL

-

transport.jms.ConnectionFactoryJNDIName

The JNDI name of the connection factory.

Yes

-

-

sequential
Whether the messages need to be polled and injected sequentially or not.Yes
true, false
true

transport.jms.ConnectionFactoryType

The type of the connection factory.

No

queue, topic

queue

transport.jms.Destination

The JNDI name of the destination.

No

-

The defaults value is the service name.

transport.jms.SessionTransacted

Whether the JMS session should be transacted or not.

No

true , false

true if the transactionality is local.

transport.jms.SessionAcknowledgement

The JMS session acknowledgment mode.

No

AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, SESSION_TRANSACTED

AUTO_ACKNOWLEDGE

transport.jms.CacheLevel

The JMS resource cache level.

No

0 - none, 1 - connection, 2 - session, 3 - consumer

Note

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

0

transport.jms.UserName

The JMS connection username.

No

-

-

transport.jms.Password

The JMS connection password.

No

-

-

transport.jms.JMSSpecVersion

The JMS API version.

No

1.1 , 1.0.2b

1.1

transport.jms.SubscriptionDurableWhether the connection factory is subscription durable or not.Notrue, falsefalse
transport.jms.DurableSubscriberClientIDThe ClientId parameter when using durable subscriptions.Required if the value specified as transport.jms.SubscriptionDurable is true.--

transport.jms.DurableSubscriberName

The name of the durable subscriber.

Required if the value specified as transport.jms.SubscriptionDurable is true.

-

-

transport.jms.MessageSelector

Message selector implementation.

No

-


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.
NoThe number of milliseconds to wait.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.NoA 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.ContentTypePropertyGet the content type from message property.NocontentType-
transport.jms.ReplyDestinationThe destination that the response generated by the back-end service is stored.No-ReplyTo from the message

transport.jms.PubSubNoLocal

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

No

true, false

false

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.

No

true, false

false

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.

No

List of valid synapse server names

-

transport.jms.ConcurrentConsumersNumber of concurrent threads to be started to consume messages when polling.NoAny positive integer.
For topics this must always be 1.
1

transport.jms.retry.duration

The retry interval to reconnect to the JMS server.

No

Retry interval in miliseconds.

-

Samples

See the samples on how one-way message bridging from JMS to HTTP can be done using the JMS inbound endpoint:

  • No labels