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:
  1. Add the MessageQueue channels that will use the JMS provider in the connections or environment file.
  2. Configure each channel with the properties required for the specific JMS provider.
  3. Configure settings for the JMS provider.
  4. 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.