blob: ffcd4f454d8c6c835a0ecb11a0de797133003952 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>James Server -
Repositories</title>
<style type="text/css" media="all">
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");
@import url("./css/site.css");
</style>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>
<body class="composite">
<div id="banner">
<a href="http://james.apache.org/index.html" id="bannerLeft">
<img src="images/james-server-logo.gif" alt="" />
</a>
<a href="http://www.apache.org/index.html" id="bannerRight">
<img src="images/asf-logo-reduced.gif" alt="" />
</a>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
Last Published: 09/02/2009
</div>
<div class="xright"> <a href="../../index.html">JAMES Project</a>
|
<a href="../../server/index.html">Server</a>
|
<a href="../../mailet/index.html">Mailets</a>
|
<a href="../../jspf/index.html">jSPF</a>
|
<a href="../../mime4j/index.html">Mime4J</a>
|
<a href="../../jsieve/index.html">JSieve</a>
|
<a href="../../postage/index.html">Postage</a>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>James Server</h5>
<ul>
<li class="none">
<a href="../index.html">Overview</a>
</li>
<li class="none">
<a href="../design_objectives.html">Objectives</a>
</li>
<li class="expanded">
<a href="../FAQ.html">James FAQ</a>
<ul>
<li class="none">
<a href="../james_and_sendmail.html">James and Sendmail</a>
</li>
</ul>
</li>
<li class="none">
<a href="http://wiki.apache.org/james">Wiki</a>
</li>
<li class="none">
<a href="../rfclist.html">Useful RFCs</a>
</li>
</ul>
<h5>Overview</h5>
<ul>
<li class="none">
<a href="index.html">Introduction</a>
</li>
<li class="none">
<a href="release-notes.html">Release Notes</a>
</li>
</ul>
<h5>Concepts</h5>
<ul>
<li class="none">
<a href="summary.html">Summary</a>
</li>
<li class="none">
<a href="spoolmanager.html">SpoolManager</a>
</li>
<li class="none">
<strong>Repositories</strong>
</li>
<li class="none">
<a href="mailet_api.html">The Mailet API</a>
</li>
</ul>
<h5>How to...</h5>
<ul>
<li class="none">
<a href="build_instructions.html">Build James</a>
</li>
<li class="none">
<a href="installation_instructions.html">Install James</a>
</li>
</ul>
<h5>Configuration</h5>
<ul>
<li class="none">
<a href="dns_configuration.html">DNS Server</a>
</li>
<li class="none">
<a href="pop3_configuration.html">POP3 Server</a>
</li>
<li class="none">
<a href="smtp_configuration.html">SMTP Server</a>
</li>
<li class="none">
<a href="nntp_configuration.html">NNTP Server</a>
</li>
<li class="none">
<a href="fetchmail_configuration.html">FetchMail</a>
</li>
<li class="none">
<a href="remotemanager_configuration.html">RemoteManager</a>
</li>
<li class="none">
<a href="spoolmanager_configuration.html">SpoolManager</a>
</li>
<li class="none">
<a href="serverwide_configuration.html">Server-wide</a>
</li>
<li class="none">
<a href="adding_users.html">Adding Users</a>
</li>
<li class="none">
<a href="provided_matchers.html">Provided Matchers</a>
</li>
<li class="none">
<a href="provided_mailets.html">Provided Mailets</a>
</li>
</ul>
<h5>Common Configurations</h5>
<ul>
<li class="none">
<a href="smtp_auth.html">Using SMTP AUTH</a>
</li>
<li class="none">
<a href="using_database.html">Using a Database with James</a>
</li>
<li class="none">
<a href="usingTLS.html">Using TLS/SSL</a>
</li>
<li class="none">
<a href="mailing_lists.html">Creating Mailing Lists</a>
</li>
</ul>
<h5>Customization</h5>
<ul>
<li class="none">
<a href="custom_matcher.html">How to write a custom Matcher</a>
</li>
<li class="none">
<a href="custom_mailet.html">How to write a custom Mailet</a>
</li>
</ul>
<h5>Project</h5>
<ul>
<li class="none">
<a href="changelog.html">Changelog</a>
</li>
</ul>
<h5>Project Documentation</h5>
<ul>
<li class="collapsed">
<a href="project-info.html">Project Information</a>
</li>
<li class="collapsed">
<a href="project-reports.html">Project Reports</a>
</li>
</ul>
<h5>Project</h5>
<ul>
<li class="none">
<a href="http://issues.apache.org/jira/browse/JAMES">Bug Database</a>
</li>
<li class="none">
<a href="http://svn.apache.org/viewvc/james/server/">Source Code</a>
</li>
<li class="none">
<a href="../todo.html">TODO</a>
</li>
</ul>
<h5>Downloads</h5>
<ul>
<li class="none">
<a href="../../download.cgi">Stable releases</a>
</li>
<li class="none">
<a href="../../downloadunstable.cgi">Unstable releases</a>
</li>
<li class="none">
<a href="http://people.apache.org/builds/james/nightly/">Nightly builds</a>
</li>
</ul>
<a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
<img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<a name="Repositories"></a><div class="section"><h2>Repositories</h2>
<p>James uses a number of different repositories to both store message data (email, news messages) and
user information. User repositories store user information, including user names, authentication
information, and aliases. Mail repositories store messages that have been delivered locally. Spool
repositories store messages that are still being processed. Finally, news repositories are used to
store news messages.</p>
</div>
<a name="Storage Types"></a><div class="section"><h2>Storage Types</h2>
<p>Aside from the type of data they store, repositories are distinguished by
where they store data. There are three types of storage - File, Database, and DBFile.</p>
<a name="File Repositories"></a><div class="section"><h3>File Repositories</h3>
<p>File-based repositories store all data in the file system. In general, these repositories are extremely
simple to configure, but may compare poorly in terms of performance when compared to other repository
types. File repositories are not recommended for large or performance-critical configurations. In the
default configuration, all repositories are file repositories.</p>
<p>File repository paths typically begin with the prefix &quot;file&quot;. Paths are relative to the application
base directory, unless the path begins with a slash. As an example, assume that James is running in
/usr/james/phoenix/apps/james. Then &quot;file://var/mail/spool/&quot; would refer to the directory /usr/james/phoenix/apps/james/var/mail/spool.
And &quot;file:///var/mail/spool/&quot; (note the extra '/') would refer to the directory /var/mail/spool.</p>
<p>All repository types (mail, spool, user, and news) have file-based implementations. No special configuration is required to enable file-based repositories</p>
</div>
<a name="Database (JDBC) Repositories"></a><div class="section"><h3>Database (JDBC) Repositories</h3>
<p>Database repositories store all data in an administrator-supplied database. Configuration is somewhat
more complex, requiring that the administrator adjust the data-connections section. Detailed directions
are included in the sample configuration file. The administrator will need to know the JDBC driver class,
the appropriate URL for use with his database, and a valid username/password for the database.</p>
<p>If the administrator wants to configure a database other than MySQL, it will be necessary to add the jar
or zip file containing the JDBC driver classes to the lib subdirectory of the installation directory. This
will allow Phoenix to properly load the driver when it is initializing the database repository. The MySQL
driver is pre-packaged with James.</p>
<p>Database repository paths typically begin with the prefix &quot;db&quot;. The format is &quot;db://&lt;data-source&gt;/&lt;table&gt;&quot;
where &lt;data-source&gt; is the name of the data-source defined in the data-connections section. And &lt;table&gt; is
the particular table associated with the repository.</p>
<p>Mail, spool, and user repositories have JDBC-based implementations.</p>
</div>
<a name="DBFile Repositories"></a><div class="section"><h3>DBFile Repositories</h3>
<p>This is a special repository type used only for mail repositories. DBFile repositories store the body of
a mail message in the file system, while headers are stored in the database. This allows the administrator
to minimize the size of data stored in the database, while conserving most of the performance of the
database repository.</p>
<p>Only mail repositories have dbfile-based implementations.</p>
</div>
</div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">&#169;
2002-2009
The Apache Software Foundation
</div>
<div class="clear">
<hr/>
</div>
</div>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-1384591-1";
urchinTracker();
</script>
</body>
</html>