Message Queues

This section provides a summary about the configuration of the default message handling solutions. There are two major areas of the application of JMS (ActiveMQ) solutions in Compound Registration:

  1. Queue(s) for the bulk input of the system - the bulk upload feature splits the uploaded file into individual records, which are submitted one-by-one to a queue; the application consumes these messages in the defined order using a specified number of threads.

  2. All the modifications that happen within the system are published regularly as JMS messages - downstream consumers can subscribe to this topic and process the messages later. An example implementation of the downstream consumer is provided that can be easily modified according to local needs.

Configuration

The settings of the downstream solution can be altered in two places. The connection related options are exposed in the registry.properties file, while the publishing itself can be enabled via the administration web interface (requires a restart of the application after changing the setting).

The relevant entries in the registry.properties file:

JMS settings
#DOWNSTREAM JMS
#Real activemq: RegDownstreamJmsBrokerURL=failover:(tcp://localhost:61616)
#embedded: vm://localhost?broker.persistent=false&broker.useShutdownHook=false&broker.useJmx=false
#Local JMS broker settings
RegDownstreamJmsBrokerURL=tcp://0.0.0.0:61616
RegDownstreamJmsBrokerJmxEnabled=true
#Where to send ds messages. By default we use vm://localhost which means we use the local JMS broker.
RegDownstreamJmsDestinationURL=vm://localhost
#Destination queue name(s). If you have multiple DS clients, add one for each of them in this format:RegDownstreamJmsDestinationName=REGISTRATION.DS1,REGISTRATION.DS2 and configure the clients to use their dedicated queue
RegDownstreamJmsDestinationName=REGISTRATION.DS
RegDownstreamJmsPersistent=true
 
#BULKLOADER
#Number of consumer threads
BulkloaderConsumerThreads=1

For further information about the solutions please consult the JMS specifications and/or the documentation of ActiveMQ.