JMS engine integration
The Java Message Service (JMS)
provides a framework for enterprise messaging systems. The JMS defines a set
of specifications for enterprise messaging systems that allow messages to be
sent across application components. A number of providers are available for
use, including Apache ActiveMQ, Progress SonicMQ, and IBM WebSphere MQ.
JMS is supported for third-party providers only. NexJ supports internal message queues using ObjectQueue channels. Two resource adapters are available for use with JMS: the NexJ resource adapter and the native resource adapter.
The general process for setting up JMS integration is:
- Add the MessageQueue channels that will use the JMS provider in the connections or environment file.
- Configure each channel with the properties required for the specific JMS provider.
- Configure settings for the JMS provider.
- If using the native resource adapter, configure settings for the application server.
Note: The WebSphere JMS engine can initiate very long running
transactions. When the JMS engine is configured to use a database with the
SNAPSHOT_ISOLATION setting turned on (which is the case with the
DefaultRelationalDatabase on Microsoft SQL Server), all changes to the
database will cause the version store to grow until the transaction is
completed. This is exacerbated by enabling persistent statistics as this
configuration increases the number of database changes made on an idle
cluster. To alleviate this issue, NexJ recommends that you either
configure the WebSphere JMS engine to use a file store or alternatively
use a separate database for the WebSphere JMS store with the
SNAPSHOT_ISOLATION setting turned off for that database.