You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2015/09/22 12:36:10 UTC
svn commit: r1704560 - in /james/server/trunk/src/site/xdoc:
config-quota.xml config.xml
Author: btellier
Date: Tue Sep 22 10:36:07 2015
New Revision: 1704560
URL: http://svn.apache.org/viewvc?rev=1704560&view=rev
Log:
JAMES-511 Modify James configuration to add quotas
Added:
james/server/trunk/src/site/xdoc/config-quota.xml
Modified:
james/server/trunk/src/site/xdoc/config.xml
Added: james/server/trunk/src/site/xdoc/config-quota.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/site/xdoc/config-quota.xml?rev=1704560&view=auto
==============================================================================
--- james/server/trunk/src/site/xdoc/config-quota.xml (added)
+++ james/server/trunk/src/site/xdoc/config-quota.xml Tue Sep 22 10:36:07 2015
@@ -0,0 +1,98 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+<document>
+
+ <properties>
+ <title>Apache James Server 3 - Quota Configuration</title>
+ </properties>
+
+<body>
+
+ <section name="Quota Configuration">
+
+ <p>Consult <a href="http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/quota-template.xml">quota-template.xml</a> in SVN to get some examples and hints.</p>
+
+ <p>Use this configuration to define the type of quota storage used to persist the quotas.</p>
+
+ <p>This allow you to configure the behaviour of your James server in regard of the RFC 2087 Quotas.</p>
+
+ <p><a href="https://tools.ietf.org/html/rfc2087">RFC 2087</a> introduces Quotas. A quota is related to a resource. In James, resources are MESSAGE (message count) and
+ STORAGE (size occupied by the messages in bytes). A quota is composed of two values. The first one is the maximum value
+ related to the value. The second one is the current value of the resource. Quota are handled for a Quota Root, a (potentially
+ configurable group of mailboxes.</p>
+
+ <p>
+ The goal of RFC-2087 and related James implementation is to forbid users to exceed a given value for available resources.
+ </p>
+
+ <p>
+ James' implementation is split in different components, and each one of them gets its own responsibility :
+
+ <ul>
+ <li>Quota Root Resolver : This component is responsible of the correspondence between mailboxes and QUOTA ROOT. A default implementation is
+ available and simply group mailboxes in QUOTA ROOT on the base of the owner name.</li>
+ <li>Quota Manager : This component retrieves quota associated with a QUOTA ROOT. A store implementation is available and relies on other components.
+ A fake implementation is available in order to add no overhead.</li>
+ <li>Max Quota Manager : This component retrieves maximum values associated with quotas and gives a way to potentially
+ (depending on the implementation) update these per QUOTA ROOT maximum values. Three implementation are available for now. A NoQuotaManager implementation
+ is read only and returns UNLIMITED maximum values. FixedMaxQuotaManager returns one and only one value for all user. You can configure these maximum values
+ threw the configuration files. A InMemoryPerUserMaxQuotaManager allows you to configure quota for each QUOTA ROOT. Note that it needs to be done threw
+ configuration to be persistent. And finally a Cassandra implementation allows to store maximum quota values in Cassandra.</li>
+ <li>Current Quota Manager : This component can be omitted if you are running a fake QUOTA manager. inmemory implementation is an event updated cache on
+ top of a Quota calculator (that fetches every e-mail metadata of every mailboxes belonging to the QUOTA ROOT: it is expensive). A cassandra implementation
+ is also available.</li>
+ <li>Quota Updater : This components allows to update current quota values. A fake implementation is available. A real, event base solution also exists.</li>
+ </ul>
+ </p>
+
+ <p>
+ To choose the implementation you want for the given components you want simply have a look to the <a href="http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/quota-template.xml">quota-template.xml</a> file.
+ </p>
+
+ <p>
+ Quota integration consists of :
+
+ <ul>
+ <li>Checks in the message manager. An operation that will bring the QUOTA ROOT over quota will be dropped. APPEND and COPY operations are concerned.</li>
+ <li>A matcher is available (IsOverQuota) to better respond to client sending e-mail via SMTP to an over quota mailbox (and prevent the e-mail from being
+ stored in MailRepositories). This matcher just performs a call to the Quota Manager, and is efficient.</li>
+ <li>A user can consult his Quotas using RFC 2087 IMAP commands. Note that SETQUOTA command is disabled. No quota configuration can be done threw IMAP.</li>
+ <li>CLI authorises an admin to consult and manage ones quotas.</li>
+ </ul>
+ </p>
+
+ <p>
+ The administration of QUOTAs can be done :
+
+ <ul>
+ <li>Threw configuration file. Note that this is required to persist a change made to the inmemory or fixed Max Quota
+ Manager. It needs a James reboot to take effect. Finally, using configuration file for setting maximum quota values
+ will override CLI set values. Avoid this option this persistent Max Quota Manager (for instance Cassandra)</li>
+ <li>Threw the CLI : offers immediate configuration changes on quota maximum values. Note that if you are using either a
+ fixed or inmemory Max QUota Manager, your changes need to be done to the XML configuration to be persisted.</li>
+ </ul>
+ </p>
+
+ </section>
+
+</body>
+
+</document>
+
Modified: james/server/trunk/src/site/xdoc/config.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/site/xdoc/config.xml?rev=1704560&r1=1704559&r2=1704560&view=diff
==============================================================================
--- james/server/trunk/src/site/xdoc/config.xml (original)
+++ james/server/trunk/src/site/xdoc/config.xml Tue Sep 22 10:36:07 2015
@@ -65,6 +65,11 @@
<td></td>
</tr>
<tr>
+ <td><a href="http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/quota-template.xml">mailbox.xml</a></td>
+ <td><a href="config-quota.html">Quota Configuration</a></td>
+ <td></td>
+ </tr>
+ <tr>
<td><a href="http://svn.apache.org/repos/asf/james/server/trunk/app/src/main/resources/mailrepositorystore-template.xml">mailrepositorystore.xml</a></td>
<td><a href="config-mailrepositorystore.html">Mail Repository Stores Configuration</a></td>
<td></td>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org