You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.
Automatic configuration
The following steps will overwrite any existing configuration. If you are using an existing RabbitMQ installation please refer to Configuring RabbitMQ.
After RabbitMQ has been installed, we can configure the queues, exchanges and the bindings between the exchanges and queues. A default configuration has been attached below. 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".
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:
- The exchanges should be created with type "fanout", all other properties can be left on their default value.
- All queues should be created with the default values.
- For each exchange, create a binding to the corresponding queue on the right.
- For each dead letter exchange, create a binding to the corresponding dead letter queue on the right.
All names below can be changed if needed however, the 'dlx.' prefix for dead letter exchanges is mandatory and the dead letter exchange name should be the same as its corresponding exchange.
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 |
|
|
Case Engine | dcmMaintenanceEvents | dcmMaintenanceEventsQueue | DCM Maintenance App |
| |
Case Engine | dcmScheduledEvents* | dcmEventsQueue | Case Engine | dlx.dcmScheduledEvents | dcmScheduledEventsDlq |
Case Engine | dcmTasksEvents | dcmTasksEventsQueue | Case Engine, Runtime | dlx.dcmTaskEvents | dcmTasksEventsDlq |
Case Engine, Runtime | timelineEvents | timelineQueue | Case Engine, Runtime |
|
|
Case Engine, Runtime | traceEvents | traceQueue | Case Engine, Runtime |
|
|
* This exchange publishes to the same queue as the dcmEvents exchange.
Application properties
Its necessary to configure the right exchanges and queues in the right application, the following properties can be used.
Note that not all properties have been described. The host, port, virtualHost, username, password etc. are ommited for brevity and replaced by "..." in the configuration below. Examples of the property files can be viewed at the page of its corresponding component.
Case Engine
Add the following exchanges and queues to the Case Engine properties:
blueriq.case.engine.maintenance.rabbitmq.exchangeName=dcmMaintenanceEvents ... blueriq.case.engine.rabbitmq.queueNames=dcmEventsQueue ... blueriq.case.engine.rabbitmq.exchangeName=dcmEvents ... blueriq.case.engine.scheduler.rabbitmq.exchangeName=dcmScheduledEvents ... blueriq.process.engine.v2.automatic-task.rabbitmq.exchangeName=dcmTasksEvents ...
If the Trace publisher is enabled add the the following to the Case Engine properties:
blueriq.trace.event.publisher.channel.amqp.rabbitmq.exchangeName=traceEvents ...
If the Timeline publisher is enabled add the following to the Case Engine properties:
blueriq.timeline.event.publisher.amqp.rabbitmq.exchangeName=timelineEvents ...
For the Case Engine to communicate to the DCM Lists Service add the following to the Case Engine properties:
blueriq.dcm.lists-publisher.rabbitmq.exchangeName=dcmListsEvents ...
Runtime
Add the following exchanges and queues to the Runtime properties:
blueriq.dcm.rabbitmq.exchangeName=dcmEvents ... blueriq.dcm.rabbitmq.queueNames=dcmTasksEventsQueue ... blueriq.process.engine.v2.automatic-task.rabbitmq.exchangeName=dcmTasksEvents ...
If the Trace publisher is enabled add the the following to the Runtime properties:
blueriq.trace.event.publisher.channel.amqp.rabbitmq.exchangeName=traceEvents ...
If the Trace SQL Store is enabled add the the following to the Runtime properties:
blueriq.trace.event.listener.amqp.rabbitmq.queueNames=traceQueue ...
If the Timeline publisher is enabled add the following to the Runtime properties:
blueriq.timeline.event.publisher.amqp.rabbitmq.exchangeName=timelineEvents ...
If the Timeline SQL Store is enabled add the following to the Runtime properties:
blueriq.timeline.event.listener.amqp.rabbitmq.queueNames=timelineQueue ...
DCM Lists Service
Add the following queue to the DCM Lists Service properties:
blueriq: dcm: lists: event: consumer: rabbitmq: queueNames: dcmListsServiceEventsQueue ...
DCM Maintenance App
Add the following to the DCM Maintenance App properties:
blueriq: dcm: maintenance: app: dlq: listener: rabbitmq: queueNames: - dcmEventsDlq - dcmTasksEventsDlq - dcmScheduledEventsDlq ... case-engine: listener: rabbitmq: queueNames: - dcmMaintenanceEventsQueue ...