Just a second...

DEPRECATED: Legacy JMS adapter

For backwards compatibility, Diffusion™ provides an older version of the JMS adapter, version 5.1. The version 5.1 JMS adapter is not compatible with the latest version of the JMS adapter.

The version 5.1 JMS adapter is packaged in the file JMSAdapter51.jar and configured using the JMSAdapter51.xml configuration file.

Note: We recommend that you do not develop new solutions using the version 5.1 JMS adapter. Instead use the latest version.

The JMS Adapter for Diffusion, enables Diffusion clients to transparently send and receive messages with topics and queues on a JMS server.

The behavior of a JMS adapter is configured in XML. No coding is required to use a JMS adapter.

The Diffusion server maintains a topic tree. Configure the JMS adapter to map a branch of the topic tree beneath a root topic to JMS topics and queues on your third-party JMS provider.

Considerations when using the JMS adapter

Dynamic topics
Diffusion topics are created dynamically and do not exist until a valid JMS subscription has been made and data received. Mapping to JMS queues is performed in the same way.
Message delivery
Delivery of messages to clients subscribing to a Diffusion topic that is mapped to a JMS queue is different to standard message delivery. Instead it is in keeping with the delivery characteristics of JMS queues.

When there are multiple Diffusion clients listening for data originating from the same JMS queue, each message is delivered to at most one client. Depending on the configuration of the JMS adapter the receiving client is chosen either randomly or based on the client with the fewest number of messages waiting for delivery.

Wildcards
You cannot subscribe to JMS topics using wildcards or topic selectors.
Temporary topics and queues
A common use for temporary queues is to set up a return path for request-reply operations.

A Diffusion client can request access to a JMS temporary topic or queue in the same way as subscribing to a JMS destination.

In the topic tree, temporary topics exist as sub-topics under the jms/tmp/topic topic.

Acknowledgment
The only acknowledgment mode supported is AUTO_ACKNOWLEDGE. This implies that when any message is received from the JMS server, an acknowledgment is sent from the JMS adapter to the JMS server.

Acknowledgments sent from a Diffusion client to the JMS server (CLIENT_ACKNOWLEDGE) are not supported.

Message headers
The JMS adapter copies the standard JMS headers and user-supplied headers when converting between JMS and Diffusion message types.

In Diffusion, headers are logically grouped in pairs. Property n is the name, and n+1 is the value, where n is an even number. In the case of the JMSReplyTo header, the related header DiffusionReplyTo is created. Mapping between a JMSReplyTo destination and a DiffusionReplyTo topic is handled transparently by the adapter.

In most circumstances, a Diffusion client can ignore the JMSReplyTo header. The header is forwarded to the client for completeness.