RabbitMQ Message Store

Introduction

Persists messages in a RabbitMQ queue inside a RabbitMQ broker. The RabbitMQ message store can be configured by specifying the class as org.apache.synapse.message.store.impl.rabbitmq.RabbitmqStore.

Properties

Listed below are the properties used for creating a RabbitMQ Message Store.

Required Properties

The following optional properties can be configured when creating a RabbitMQ Message Store.

Property Description
Name A unique name for the RabbitMQ message store.
RabbitMQ Server Host Name The address of the RabbitMQ broker.
RabbitMQ Server Host Port The port number of the RabbitMQ message broker.
SSL Enabled Whether or not SSL is enabled on the message store. When SSL Enabled is set to true, you can set the parameters relating to the SSL configuration. For descriptions of each of these parameters you can set, see SSL enabled RabbitMQ message store parameters.

Optional Properties

The following optional properties can be configured when creating a RabbitMQ Message Store.

Property Description
RabbitMQ Queue Name (store.rabbitmq.queue.name) The message store queue name. Though this is not a required parameter, we recommend specifying a value for this.
RabbitMQ Exchange Name (store.rabbitmq.exchange.name) The name of the RabbitMQ exchange to which the queue is bound (If the ESB profile has to declare this exchange it will be declared as a direct exchange).
Routing key (store.rabbitmq.route.key) The exchange and queue binding value. Messages will be routed using this. This is considered only when both the exchange name and type are provided. Else messages will be routed using the default exchange and queue name as the routing key.
User Name (store.rabbitmq.username) The user name to connect to the broker.
Password (store.rabbitmq.password) The password to connect to the broker.
Virtual Host (store.rabbitmq.virtual.host) The virtual host name of the broker.
Enable Producer Guaranteed Delivery See the Properties for Guaranteed Delivery of Messages.
Failover Message Store See the Properties for Guaranteed Delivery of Messages.

SSL Properties

Note

Configuring parameters that provide information related to keystores and truststores can be optional based on your broker configuration. For example, if fail_if_no_peer_cert is set to false in the RabbitMQ broker configuration, then you only need to specify <parameter name="rabbitmq.connection.ssl.enabled" locked="false">true</parameter>. Additionally, you can also set <parameter name="rabbitmq.connection.ssl.version" locked="false">true</parameter> parameter to specify the SSL version. If fail_if_no_peer_cert is set to true , you need to provide keystore and truststore information.

Property Description
SSL Key Store Location The location of the keystore file.
SSL Key Store Type The type of the keystore used (e.g., JKS, PKCS12).
SSL Key Store Password The password to access the keystore.
SSL Trust Store Location The location of the Java keystore file containing the collection of CA certificates trusted by this application process (truststore).
SSL Trust Store Type The type of the truststore used.
SSL Trust Store Password The password to unlock the trust store file specified in rabbitmq.connection.ssl.truststore.location.
SSL Version SSL protocol version (e.g., SSL, TLSV1, TLSV1.2).

Properties: Guaranteed Delivery of Messages

If you need to ensure guaranteed delivery of your messages, specify values for the following parameters:

Property Description
Enable Producer Guaranteed Delivery This flag specifies whether guaranteed delivery is enabled on the producer side. The value is set to false by default.
Failover Message Store The message store to which the store mediator should send messages when the original message store fails.
Top