| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <!-- Generated by Apache Maven Doxia at 2021-09-26 --> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
| <title>Apache James Project – Apache James Server 3 - RabbitMQ Configuration</title> |
| <style type="text/css" media="all"> |
| @import url("../css/james.css"); |
| @import url("../css/maven-base.css"); |
| @import url("../css/maven-theme.css"); |
| @import url("../css/site.css"); |
| @import url("../js/jquery/css/custom-theme/jquery-ui-1.8.5.custom.css"); |
| @import url("../js/jquery/css/print.css"); |
| @import url("../js/fancybox/jquery.fancybox-1.3.4.css"); |
| </style> |
| <script type="text/javascript" src="../js/jquery/js/jquery-1.4.2.min.js"></script> |
| <script type="text/javascript" src="../js/jquery/js/jquery-ui-1.8.5.custom.min.js"></script> |
| <script type="text/javascript" src="../js/fancybox/jquery.fancybox-1.3.4.js"></script> |
| <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" /> |
| <meta name="Date-Revision-yyyymmdd" content="20210926" /> |
| <meta http-equiv="Content-Language" content="en" /> |
| |
| <!-- Google Analytics --> |
| <script type="text/javascript"> |
| |
| var _gaq = _gaq || []; |
| _gaq.push(['_setAccount', 'UA-1384591-1']); |
| _gaq.push(['_trackPageview']); |
| |
| (function() { |
| var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; |
| ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; |
| var s = document.getElementsByTagName('script').item(0); s.parentNode.insertBefore(ga, s); |
| })(); |
| |
| </script> |
| </head> |
| <body class="composite"> |
| <div id="banner"> |
| <a href="../index.html" id="bannerLeft" title="james-logo.png"> |
| |
| |
| <img src="../images/logos/james-logo.png" alt="James Project" /> |
| </a> |
| <a href="https://www.apache.org/index.html" id="bannerRight"> |
| |
| |
| <img src="images/logos/asf_logo_small.png" alt="The Apache Software Foundation" /> |
| </a> |
| <div class="clear"> |
| <hr/> |
| </div> |
| </div> |
| <div id="breadcrumbs"> |
| |
| |
| <div class="xleft"> |
| <span id="publishDate">Last Published: 2021-09-26</span> |
| </div> |
| <div class="xright"> <a href="../index.html" title="Home">Home</a> |
| | |
| <a href="../documentation.html" title="James">James</a> |
| | |
| <a href="../mime4j/index.html" title="Mime4J">Mime4J</a> |
| | |
| <a href="../jsieve/index.html" title="jSieve">jSieve</a> |
| | |
| <a href="../jspf/index.html" title="jSPF">jSPF</a> |
| | |
| <a href="../jdkim/index.html" title="jDKIM">jDKIM</a> |
| |
| |
| </div> |
| <div class="clear"> |
| <hr/> |
| </div> |
| </div> |
| <div id="leftColumn"> |
| <div id="navcolumn"> |
| |
| |
| <h5>James components</h5> |
| <ul> |
| <li class="collapsed"> |
| <a href="../documentation.html" title="About James">About James</a> |
| </li> |
| <li class="expanded"> |
| <a href="../server/index.html" title="Server">Server</a> |
| <ul> |
| <li class="none"> |
| <a href="../server/advantages.html" title="Advantages">Advantages</a> |
| </li> |
| <li class="none"> |
| <a href="../server/objectives.html" title="Objectives">Objectives</a> |
| </li> |
| <li class="expanded"> |
| <a href="../server/quick-start.html" title="User Manual">User Manual</a> |
| <ul> |
| <li class="collapsed"> |
| <a href="../server/features.html" title="1. Features">1. Features</a> |
| </li> |
| <li class="none"> |
| <a href="../server/packaging.html" title="2. Packaging">2. Packaging</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../server/install.html" title="3. Install James">3. Install James</a> |
| </li> |
| <li class="expanded"> |
| <a href="../server/config.html" title="4. Configure James">4. Configure James</a> |
| <ul> |
| <li class="none"> |
| <a href="../server/config-listeners.html" title="Additional mailbox listeners">Additional mailbox listeners</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-antispam.html" title="Anti Spam">Anti Spam</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-blob-export.html" title="Blob Export">Blob Export</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-blobstore.html" title="BlobStore">BlobStore</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-cassandra.html" title="Cassandra">Cassandra</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-elasticsearch.html" title="ElasticSearch">ElasticSearch</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-vault.html" title="Deleted Messages Vault">Deleted Messages Vault</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-dnsservice.html" title="DNS Service">DNS Service</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-domainlist.html" title="Domain List">Domain List</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-fetchmail.html" title="FetchMail">FetchMail</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-guice.html" title="Guice">Guice</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-imap4.html" title="IMAP4">IMAP4</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-jmap.html" title="JMAP">JMAP</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-mailrepositorystore.html" title="Mail Repository Stores">Mail Repository Stores</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-mailbox.html" title="Mailbox">Mailbox</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-mailetcontainer.html" title="Mailet Container">Mailet Container</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-healthcheck.html" title="Periodical Health Checks">Periodical Health Checks</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-pop3.html" title="POP3">POP3</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-quota.html" title="Quota">Quota</a> |
| </li> |
| <li class="none"> |
| <strong>RabbitMQ</strong> |
| </li> |
| <li class="none"> |
| <a href="../server/config-recipientrewritetable.html" title="Recipient Rewrite">Recipient Rewrite</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-smtp-lmtp.html" title="SMTP LMTP">SMTP LMTP</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-sieve.html" title="Sieve">Sieve</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-ssl-tls.html" title="SSL/TLS">SSL/TLS</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-system.html" title="System">System</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-spring-jpa-postgres.html" title="Spring JPA Postgres">Spring JPA Postgres</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-users.html" title="Users">Users</a> |
| </li> |
| <li class="none"> |
| <a href="../server/config-webadmin.html" title="WebAdmin">WebAdmin</a> |
| </li> |
| </ul> |
| </li> |
| <li class="collapsed"> |
| <a href="../server/manage.html" title="5. Manage">5. Manage</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../server/monitor.html" title="6. Monitor">6. Monitor</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../server/upgrade.html" title="7. Upgrade">7. Upgrade</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../server/dev.html" title="8. Developers Corner">8. Developers Corner</a> |
| </li> |
| </ul> |
| </li> |
| <li class="none"> |
| <a href="../mail.html#James_Mailing_lists" title="Mailing Lists">Mailing Lists</a> |
| </li> |
| <li class="none"> |
| <a href="../server/release-notes.html" title="Release Notes">Release Notes</a> |
| </li> |
| <li class="none"> |
| <a href="../server/apidocs/index.html" title="Javadoc">Javadoc</a> |
| </li> |
| <li class="none"> |
| <a href="https://issues.apache.org/jira/browse/JAMES" title="Issue Tracker">Issue Tracker</a> |
| </li> |
| <li class="none"> |
| <a href="https://github.com/apache/james-project" title="Sources">Sources</a> |
| </li> |
| <li class="none"> |
| <a href="../server/rfcs.html" title="RFCs">RFCs</a> |
| </li> |
| <li class="none"> |
| <a href="../download.cgi#Apache_James_Server" title="Download releases">Download releases</a> |
| </li> |
| </ul> |
| </li> |
| <li class="collapsed"> |
| <a href="../mailet/index.html" title="Mailets">Mailets</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../mailbox/index.html" title="Mailbox">Mailbox</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../protocols/index.html" title="Protocols">Protocols</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../mpt/index.html" title="MPT">MPT</a> |
| </li> |
| </ul> |
| <h5>Apache Software Foundation</h5> |
| <ul> |
| <li> |
| <strong> |
| <a title="ASF" href="http://www.apache.org/">ASF</a> |
| </strong> |
| </li> |
| <li> |
| <a title="Get Involved" href="http://www.apache.org/foundation/getinvolved.html">Get Involved</a> |
| </li> |
| <li> |
| <a title="FAQ" href="http://www.apache.org/foundation/faq.html">FAQ</a> |
| </li> |
| <li> |
| <a title="License" href="http://www.apache.org/licenses/" >License</a> |
| </li> |
| <li> |
| <a title="Sponsorship" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a> |
| </li> |
| <li> |
| <a title="Thanks" href="http://www.apache.org/foundation/thanks.html">Thanks</a> |
| </li> |
| <li> |
| <a title="Security" href="http://www.apache.org/security/">Security</a> |
| </li> |
| </ul> |
| <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> |
| <img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /> |
| </a> |
| |
| |
| </div> |
| </div> |
| <div id="bodyColumn"> |
| <div id="contentBox"> |
| |
| |
| |
| |
| <section> |
| <h2><a name="RabbitMQ_Server_Configuration"></a>RabbitMQ Server Configuration</h2> |
| |
| <p> |
| RabbitMQ is used in distributed James in order to have a distributed MailQueue and distributed Event dispatching system. |
| |
| This configuration helps you configure components using RabbitMQ in case you want to setup a distributed James. |
| And it is only applicable with Guice products. |
| </p> |
| |
| <p> |
| Consult <a class="externalLink" href="https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/rabbitmq.properties">rabbitmq.properties</a> |
| in GIT to get some examples and hints. |
| </p> |
| |
| |
| <p> |
| RabbitMQ Configuration |
| </p> |
| |
| <dl> |
| |
| <dt><b>uri</b></dt> |
| |
| <dd> |
| the amqp URI pointing to RabbitMQ server. Details about amqp URI format is in <a class="externalLink" href="https://www.rabbitmq.com/uri-spec.html">RabbitMQ URI Specification</a> |
| </dd> |
| |
| |
| <dt><b>management.uri</b></dt> |
| |
| <dd> |
| 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 <a class="externalLink" href="https://www.rabbitmq.com/management.html#usage-ui">RabbitMQ Management URI</a> |
| </dd> |
| |
| |
| <dt><b>management.user</b></dt> |
| |
| <dd>username used to access management service</dd> |
| |
| |
| <dt><b>management.password</b></dt> |
| |
| <dd>password used to access management service</dd> |
| |
| |
| <dt><b>connection.pool.retries</b></dt> |
| |
| <dd>Configure retries count to retrieve a connection. Exponential backoff is performed between each retries. |
| Optional integer, defaults to 10</dd> |
| |
| |
| <dt><b>connection.pool.min.delay.ms</b></dt> |
| |
| <dd>Configure initial duration (in ms) between two connection retries. Exponential backoff is performed between each retries. |
| Optional integer, defaults to 100</dd> |
| |
| |
| <dt><b>channel.pool.retries</b></dt> |
| |
| <dd>Configure retries count to retrieve a channel. Exponential backoff is performed between each retries. |
| Optional integer, defaults to 3</dd> |
| |
| |
| <dt><b>channel.pool.min.delay.ms</b></dt> |
| |
| <dd>Configure initial duration (in ms) between two channel retries. Exponential backoff is performed between each retries. |
| Optional integer, defaults to 50</dd> |
| |
| |
| <dt><b>channel.pool.size</b></dt> |
| |
| <dd>Configure the size of the channel pool. |
| Optional integer, defaults to 3</dd> |
| |
| |
| <dt><b>ssl.enabled</b></dt> |
| |
| <dd>Is using ssl enabled |
| Optional boolean, defaults to false</dd> |
| |
| |
| <dt><b>ssl.management.enabled</b></dt> |
| |
| <dd>Is using ssl on management api enabled |
| Optional boolean, defaults to false</dd> |
| |
| |
| <dt><b>ssl.validation.strategy</b></dt> |
| |
| <dd>Configure the validation strategy used for rabbitmq connections. Possible values are default, ignore and override. |
| Optional string, defaults to using systemwide ssl configuration</dd> |
| |
| |
| <dt><b>ssl.truststore</b></dt> |
| |
| <dd>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</dd> |
| |
| |
| <dt><b>ssl.truststore.password</b></dt> |
| |
| <dd>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</dd> |
| |
| |
| <dt><b>ssl.hostname.verifier</b></dt> |
| |
| <dd>Configure host name verification. Possible options are default and accept_any_hostname |
| Optional string, defaults to subject alternative name host verifier</dd> |
| |
| |
| |
| <dt><b>ssl.keystore</b></dt> |
| |
| <dd>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</dd> |
| |
| |
| <dt><b>ssl.keystore.password</b></dt> |
| |
| <dd>Configure the keystore password. If configured then "ssl.keystore" must also be configured, |
| Optional string, defaults to empty string</dd> |
| |
| |
| <dt><b>quorum.queues.enable</b></dt> |
| |
| <dd>Boolean. Whether to activate Quorum queue usage for use cases that benefits from it (work queue). |
| Quorum queues enables high availability. |
| False (default value) results in the usage of classic queues.</dd> |
| |
| |
| <dt><b>quorum.queues.replication.factor</b></dt> |
| |
| <dd> Strictly positive integer. The replication factor to use when creating quorum queues.</dd> |
| |
| |
| <dt><b>hosts</b></dt> |
| |
| <dd>Optional, default to the host specified as part of the URI. |
| Allow creating cluster aware connections. |
| A coma separated list of hosts, example: hosts=ip1:5672,ip2:5672</dd> |
| </dl> |
| </section> |
| |
| <section> |
| <h2><a name="RabbitMQ_MailQueue_Configuration"></a>RabbitMQ MailQueue Configuration</h2> |
| |
| <p> |
| RabbitMQ MailQueue Configuration |
| </p> |
| |
| <p> |
| 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. |
| </p> |
| |
| <dl> |
| |
| <dt><b>mailqueue.view.sliceWindow</b></dt> |
| |
| <dd> |
| James divide 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 |
| <a class="externalLink" href="https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/rabbitmq.properties">rabbitmq.properties</a> |
| </dd> |
| |
| |
| <dt><b>mailqueue.view.bucketCount</b></dt> |
| |
| <dd> |
| 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 |
| <a class="externalLink" href="https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/rabbitmq.properties">rabbitmq.properties</a> |
| </dd> |
| |
| |
| <dt><b>mailqueue.view.updateBrowseStartPace</b></dt> |
| |
| <dd> |
| 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 |
| <a class="externalLink" href="https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/rabbitmq.properties">rabbitmq.properties</a> |
| </dd> |
| |
| |
| <dt><b>mailqueue.size.metricsEnabled</b></dt> |
| |
| <dd> |
| 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 have 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 |
| <a class="externalLink" href="https://github.com/apache/james-project/blob/master/server/apps/distributed-app/sample-configuration/rabbitmq.properties">rabbitmq.properties</a> |
| </dd> |
| </dl> |
| </section> |
| |
| <section> |
| <h2><a name="RabbitMQ_Tasks_Configuration"></a>RabbitMQ Tasks Configuration</h2> |
| |
| <p>Tasks are WebAdmin triggered long running jobs. RabbitMQ is used to organise their execution in a work queue, |
| with an exclusive consumer. |
| </p> |
| |
| <dl> |
| |
| <dt><b>task.consumption.enabled</b></dt> |
| |
| <dd> |
| 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. |
| </dd> |
| </dl> |
| </section> |
| |
| |
| |
| |
| </div> |
| </div> |
| <div class="clear"> |
| <hr/> |
| </div> |
| <div id="footer"> |
| <div class="xright">Copyright © 2006-2021 |
| <a href="https://www.apache.org/">The Apache Software Foundation</a>. |
| All Rights Reserved. |
| |
| </div> |
| <div class="clear"> |
| <hr/> |
| </div> |
| </div> |
| </body> |
| </html> |