Overview of the Provider for JMS
This guide describes the programmatic steps you can take in order to use Universal Messaging Provider for JMS. There is also a section that will help you discover how to perform administration of JMS objects in the Universal Messaging Enterprise Manager section.
Topics and Queues
Universal Messaging Enterprise Server includes support for JMS functionality such as topics and queues.
JMS topics correspond to channels in Universal Messaging publish / subscribe, and JMS queues correspond to Universal Messaging message queues.
Communication Drivers
The pluggable communications drivers enable JMS to be used on public, private and wireless networks transparently. JMS functionality can be delivered over normal TCP/IP based sockets, SSL enabled sockets, HTTP and HTTPS. When supporting JMS using HTTP or HTTPS, Universal Messaging can traverse proxy servers and network address translation devices, and it does not require any additional web server to perform.
JMS Message Filtering
JMS message selector support is offered via Universal Messaging's high performance server side message filtering engine. This ensures that only messages with content that your clients register an interest in are delivered over the network, thus conserving network bandwidth.
Round-Robin Connection Factories
The Universal Messaging API for JMS allows you to configure round-robin connection factories. These factories allow clients to publish messages in a round-robin fashion, so that one message or transaction gets published to the first realm node or cluster, the next message to the next realm node or cluster, and so on. These connection factories have the following limitations:
1. Event consumption is not supported through these factories, so for example message listeners cannot be registered and consumers cannot be created via the sessions created from these connection factories.
2. The sessions created through these connections factories do not support distributed (XA) transactions.
Message Batching
Universal Messaging provides a non-standard extension to JMS that allows clients to send messages to the JMS provider in batches. This mechanism can lead to performance improvements, because multiple messages can be sent in a single API call without waiting for the acknowledgment for each message.
This is particularly relevant for synchronous publishing (PERSISTENT messages and SyncPersistent enabled), as multiple messages in a single API call will allow you to send the messages in a single transaction to achieve higher throughput.
If you are using asynchronous publishing (NON_PERSISTENT messages), you can also batch the messages, but no performance gain will be expected. This is because multiple messages can be sent without batching in separate API calls without waiting for any confirmation from the server.
For API details of message batching, see the API documentation for the class com.pcbsys.nirvana.nJMS.