| = Distributed James Server — rabbitmq.properties |
| :navtitle: rabbitmq.properties |
| |
| This configuration helps you configure components using RabbitMQ. |
| |
| Consult this link:https://github.com/apache/james-project/blob/master/dockerfiles/run/guice/cassandra-rabbitmq/destination/conf/rabbitmq.properties[example] |
| to get some examples and hints. |
| |
| == RabbitMQ Configuration |
| |
| .rabbitmq.properties content |
| |=== |
| | Property name | explanation |
| |
| | uri |
| | the amqp URI pointing to RabbitMQ server. Details about amqp URI format is in https://www.rabbitmq.com/uri-spec.html[RabbitMQ URI Specification] |
| |
| | management.uri |
| | the URI pointing to RabbitMQ Management Service. James need to retrieve some information about listing queues |
| from this service in runtime. |
| Details about URI format is in https://www.rabbitmq.com/management.html#usage-ui[RabbitMQ Management URI] |
| |
| | management.user |
| | username used to access management service |
| |
| | management.password |
| | password used to access management service |
| |
| | connection.pool.retries |
| | Configure retries count to retrieve a connection. Exponential backoff is performed between each retries. |
| Optional integer, defaults to 10 |
| |
| | connection.pool.min.delay.ms |
| | Configure initial duration (in ms) between two connection retries. Exponential backoff is performed between each retries. |
| Optional integer, defaults to 100 |
| |
| | channel.pool.retries |
| | Configure retries count to retrieve a channel. Exponential backoff is performed between each retries. |
| Optional integer, defaults to 3 |
| |
| | channel.pool.min.delay.ms |
| | Configure initial duration (in ms) between two channel retries. Exponential backoff is performed between each retries. |
| Optional integer, defaults to 50 |
| |
| | channel.pool.size |
| | Configure the size of the channel pool. |
| Optional integer, defaults to 3 |
| |
| | ssl.enabled |
| | Is using ssl enabled |
| Optional boolean, defaults to false |
| |
| | ssl.management.enabled |
| | Is using ssl on management api enabled |
| Optional boolean, defaults to false |
| |
| | ssl.validation.strategy |
| | Configure the validation strategy used for rabbitmq connections. Possible values are default, ignore and override. |
| Optional string, defaults to default |
| |
| | ssl.truststore |
| | Points to the truststore (PKCS12) used for verifying rabbitmq connection. If configured then "ssl.truststore.password" must also be configured, |
| Optional string, defaults to systemwide truststore. "ssl.validation.strategy: override" must be configured if you want to use this |
| |
| | ssl.truststore.password |
| | Configure the truststore password. If configured then "ssl.truststore" must also be configured, |
| Optional string, defaults to empty string. "ssl.validation.strategy: override" must be configured if you want to use this |
| |
| | ssl.hostname.verifier |
| | Configure host name verification. Possible options are default and accept_any_hostname |
| Optional string, defaults to default |
| |
| | ssl.keystore |
| | Points to the keystore(PKCS12) used for client certificate authentication. If configured then "ssl.keystore.password" must also be configured, |
| Optional string, defaults to empty string |
| |
| | ssl.keystore.password |
| | Configure the keystore password. If configured then "ssl.keystore" must also be configured, |
| Optional string, defaults to empty string |
| |=== |
| |
| == RabbitMQ MailQueue Configuration |
| |
| James mail queue is a component acting like a queue where it can enqueue and dequeue mails. |
| Beside of the basic features, it also allows some extra operations like getting size, browsing all items in the mail queue... |
| One of the mailqueue implementation is using RabbitMQ. |
| As RabbitMQ doesn't offer enough features to implement efficiently all mailqueue operations, |
| this implementation relies on Cassandra. |
| |
| .rabbitmq.properties content |
| |=== |
| | Property name | explanation |
| |
| | mailqueue.view.sliceWindow |
| | James divides the view into slices, each slice contains data for a given period, sliceWindow parameter controls this period. |
| This dividing of periods allows faster browsing of the mail queue. Tips for choosing sliceWindow are explained in |
| https://github.com/apache/james-project/blob/master/dockerfiles/run/guice/cassandra-rabbitmq/destination/conf/rabbitmq.properties[rabbitmq.properties] |
| |
| | mailqueue.view.bucketCount |
| | Mails in a mail queue are distributed across the underlying storage service. |
| BucketCount describes how to be distributing mails to fit with your James setup |
| Tips for choosing bucketCount are explained in |
| https://github.com/apache/james-project/blob/master/dockerfiles/run/guice/cassandra-rabbitmq/destination/conf/rabbitmq.properties[rabbitmq.properties] |
| |
| | mailqueue.view.updateBrowseStartPace |
| | To browse, James needs a starting point and to continuously update that point in runtime. |
| UpdateBrowseStartPace describes the probability to update the starting point. |
| Tips for choosing updateBrowseStartPace are explained in |
| https://github.com/apache/james-project/blob/master/dockerfiles/run/guice/cassandra-rabbitmq/destination/conf/rabbitmq.properties[rabbitmq.properties] |
| |
| | mailqueue.size.metricsEnabled |
| | By default, the metrics are disabled for the mail queue size. |
| As computing the size of the mail queue is currently implemented on top of browse operation and thus has a linear complexity, |
| sometimes it can get too big, making it impossible for the ES reporter to handle it correctly without crashing. |
| It can be useful then to disable it. |
| Tips for choosing metricsEnabled are explained in |
| https://github.com/apache/james-project/blob/master/dockerfiles/run/guice/cassandra-rabbitmq/destination/conf/rabbitmq.properties[rabbitmq.properties] |
| |
| |=== |
| |
| == RabbitMQ Tasks Configuration |
| |
| Tasks are WebAdmin triggered long running jobs. RabbitMQ is used to organise their execution in a work queue, |
| with an exclusive consumer. |
| |
| .rabbitmq.properties content |
| |=== |
| | Property name | explanation |
| |
| | task.consumption.enabled |
| | Whether to enable task consumption on this node. |
| Disable with caution (this only makes sense in a distributed setup where other nodes consume tasks). |
| Defaults to true. |
| |
| |=== |