Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Automatic configuration

After RabbitMQ has been installed, we can configure the queues, exchanges and the bindings between the exchanges and queues. A default configuration is available (definitions.json). This is a JSON file which contains all queues, exchanges and bindings necessary for the DCM setup. It can be imported in the RabbitMQ dashboard in the "Overview" tab, under "Import definitions". 

Warning

The following steps will overwrite any existing configuration. So make sure any other relevant configuration is backed up before trying the automatic configuration step.


Image Modified

After importing the file it might be necessary to reconfigure the users, to add a new user so you can remove the guest user. please see: https://www.rabbitmq.com/access-control.html

Manual configuration

Its possible to configure RabbitMQ manually using the following steps:

...

Producing Component(s)

Exchange

Queue

Consuming

Component(s)

Dead letter exchange

Dead letter queue

Case Engine, Runtime

dcmEvents

dcmEventsQueue

Case Engine

dlx.dcmEvents

dcmEventsDlq

Case Engine

dcmListsEvents

dcmListsServiceEventsQueue

DCM Lists Service

dlx.dcmListsEvents

dcmListsServiceEventsDlq

Case Engine

dcmMaintenanceEvents

dcmMaintenanceEventsQueue

DCM Maintenance App

dlx.dcmMaintenanceEvents

dcmMaintenanceEventsDlq

Case Engine

dcmScheduledEvents*

dcmEventsQueue

Case Engine

dlx.dcmScheduledEvents

dcmScheduledEventsDlq

Case Engine

dcmTasksEvents

dcmTasksEventsQueue

Runtime

dlx.dcmTasksEvents

dcmTasksEventsDlq

Case Engine, Runtime

timelineEvents

timelineQueue

Case Engine OR Runtime

 dlx.timelineEvents

timelineDlq

Case Engine, Runtime

traceEvents

traceQueue

Case Engine OR Runtime

 dlx.traceEvents

traceDlq

Audit ConsumerauditEventsauditEventsQueueCase Engine or Runtimedlx.auditEventsauditEventsDlq
DCM Maintenance APPdlx.dcmMaintenanceEventsdcmMaintenanceAppdcmMaintenanceEventsDlqdcmMaintenanceAppDlqNo Consumer
--

* This exchange publishes to the same queue as the dcmEvents exchange.

Application properties

For each component that uses RabbitMQ, one or more queues/exchanges need be configured including the properties of the RabbitMQ instance.

...

if the property ssl.enabled is not set at all it will default to false regardless.

Case Engine

Add the following exchanges and queues to the Case Engine properties when you want to override queues and exchanges with your own:

...

Code Block
languagepowershell
titleapplication-dcm-lists-publisher.properties
blueriq.dcm.lists-publisher.rabbitmq.exchangeName=dcmListsEvents
...

Runtime

Add the following exchanges and queues to the Runtime properties when you want to override queues and exchanges with your owns:

...

Code Block
languagepowershell
titleapplication-timeline-sql-store.properties
blueriq.timeline.event.listener.amqp.rabbitmq.queueNames=timelineQueue
...

DCM Lists Service

Add the following queue to the DCM Lists Service properties  when you want to override queues and exchanges with your own:

Code Block
languageyml
titleblueriq-dcm-lists.yml
blueriq:
  dcm:
    lists:
      event:
        consumer:
          rabbitmq:
            queueNames: dcmListsServiceEventsQueue
			...

DCM Maintenance App

Add the following to the DCM Maintenance App properties  when you want to override queues and exchanges with your own:

Code Block
languageyml
titleblueriq-dcm-maintenance-app.yml
blueriq:
  dcm:
    maintenance:
      app:   
        dlq:
          listener:
            rabbitmq:
              queueNames:                  
				- dcmEventsDlq
                - dcmTasksEventsDlq
                - dcmScheduledEventsDlq
                - traceDlq
                - timelineDlq
                - dcmMaintenanceEventsDlq
                - auditEventsDlq
				- dcmListsServiceEventsDlq
                ...
            errorExchange: dlx.dcmMaintenanceApp

        case-engine:
          listener:
            rabbitmq:
              queueNames: 
                - dcmMaintenanceEventsQueue
              errorExchange: dlx.dcmMaintenanceEvents
      		  ...

Concurrent consumers

For the trace-sql-store, timeline-sql-store, case-engine-client components as well as the Case Engine, it's possible to set a number of concurrent consumers.

...