ActiveMQ JMS Queue

2024-04-16

Using the data pipeline with ActiveMQ is not a typical configuration and may require significant customization. If you are interested in using this feature, please contact LabKey to inquire about support options.

Configuring the data pipeline with ActiveMQ requires a JMS Queue to transfer messages between the different pipeline services. LabKey Server supports the ActiveMQ JMS Queue from the Apache Software Foundation.

The steps outlined in this topic give you a general idea of the process required.

JMS: Installation Steps

  1. Choose a server on which to run the JMS Queue
  2. Install Java
  3. Install and configure ActiveMQ
  4. Test the ActiveMQ installation.
ActiveMQ supports all major operating systems (including Windows, Linux, and OSX). For this documentation we will assume you are installing on a Linux based server.

Install Java

  1. Install the Java version supported by your server. For details see Supported Technologies.
  2. Create the JAVA_HOME environmental variable to point at your installation directory.

Install and Configure ActiveMQ

Download and Unpack ActiveMQ

  1. Download the most recent release of ActiveMQ 5.18 from ActiveMQ's download site
  2. Unpack the binary distribution.
  3. Create the environmental variable ACTIVEMQ_HOME and have it point at that distribution location.

Configure logging for the ActiveMQ server

To log all messages sent through the JMSQueue, add the following to the <broker> node in the config file located at <ACTIVEMQ-HOME>/conf/activemq.xml

<plugins>
<!-- lets enable detailed logging in the broker -->
<loggingBrokerPlugin/>
</plugins>

During the installation and testing of the ActiveMQ server, consider showing debug output. You can enable this by editing the file <ACTIVEMQ-HOME>/conf/log4j.properties to uncomment this line:

#log4j.rootLogger=DEBUG, stdout, out

and comment out:

log4j.rootLogger=INFO, stdout, out

Authentication, Management and Configuration

  1. Configure JMX to allow the use of Jconsole and the JMS administration tools to monitor the JMS Queue.
  2. We recommend configuring Authentication for your ActiveMQ server. There are number of ways to implement authentication. See http://activemq.apache.org/security.html
  3. We recommend configuring ActiveMQ to create the required Queues at startup. This can be done by adding the following to the configuration file <ACTIVEMQ-HOME>/conf/activemq.xml
<destinations>
<queue physicalName="job.queue" />
<queue physicalName="status.queue" />
</destinations>

Start the ActiveMQ Server

To start the ActiveMQ server, follow the documentation to start the server specifying the following (example values and exact syntax needed may differ from what you need to use):

  • Logs: Write to <ACTIVEMQ_HOME>/data/activemq.log
  • StdOut: Write to a location similar to <ACTIVEMQ_HOME>/smlog
  • JMS Queue messages, status information, etc.: Store in <ACTIVEMQ_HOME>/data
  • Make the job.queue and status.queue both durable and persistent. Messages on the queue should be saved through a restart of the process.
  • Use AMQ Message Store to store Queue messages and status information
To start the server, execute a command appropriate to your installation. It may be similar to:
<ACTIVEMQ_HOME>/bin/activemq-admin start xbean:<ACTIVEMQ_HOME>/conf/activemq.xml > <ACTIVEMQ_HOME>/smlog 2>&1 &

Monitor JMS Server, View JMS Queue Configuration and View Messages on a JMS Queue

Use the ActiveMQ management tools following their documentation to:

  • Browse the messages on queue.
  • View runtime configuration, usage and status of the server.

Next Steps

Related Topics