数据库的配置

<script type="text/javascript"> google_ad_client = "pub-8800625213955058"; /* 336x280, 创建于 07-11-21 */ google_ad_slot = "0989131976"; google_ad_width = 336; google_ad_height = 280; // </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
数据库的配置

James能够使用兼容JDBC的数据库存储消息和用户数据。这部分阐述了如何配置James使用数据库存储数据。

必要条件

在James中用后台数据库存储数据有明确的要求,但不同的数据库产品的配置是不一样的, 所以我们只能用通用的术语陈述这些要求。

James服务器必须能访问到一个数据库,而且必须有一个具有合适的权限(在表中查询、插入、删除记录,还要能创建表)的账号, 还要有足够的资源支持把数据插入到数据库中保存。另外,既然James用JDBC访问数据库,所以找一个合适的JDBC驱动安装也是必需的。

在将数据库作为James的数据仓库之前验证它的功能也很重要,这可以帮助你把配置中出现的问题正确的识别出来。

连接配置

配置Phoenix容器使它使用JDBC工作是让James支持数据库的第一步。

首先必须让Phoenix能够载入JDBC类,为了让Phoenix能够访问到这些类,需要把JDBC驱动的jar/zip文件放在James安装路径的lib子目录下。 如果JDBC驱动还需要一些非Java标准发布文件的库文件,这些库文件也应该添加到这个目录中。

请注意James的发布文件包含了MySQL的驱动,所以这里没有必要把它的驱动放到lib目录中。

其次,必须修改config.xml文件以使Phoenix初始化数据库连接。相关的配置在database-connections配置块中。 database-connections标签仅有一个子元素data-sources,它是一个简单的容器标签, 包含几个data-source子元素。这些子元素定义了数据库的连接。

每个data-source都有一个必需的属性 name。 每个data-source元素的 name值必须是唯一的。 在config.xml的其它部分中将用这个name值引用数据连接。

data-source元素有5个节点,都是必需的。

  • driver - 数据库驱动器的类名。
  • dburl - 为你的数据库创建的JDBC的URL。
  • user - 这个连接所用的数据库账号的用户ID。
  • password - 这个连接所用的数据库账号的密码
  • max - 这个数据源当前所用的最大JDBC连接数

通常你只需要简单的修改config.xml文件中被注释的内容。 之后数据仓库的前缀应该改为db:或dbfile:,不再用file:。现在你可以随意的 为不同的数据仓库搭配不同的数据存储类型。数据仓库配置 中有详细的介绍。下面有一个简单的配置示例。

SQL 语句的配置

可以在另一个配置文件中精确的定义James用来浏览和修改数据库中存储的数据的SQL语句, apps/james/conf目录下的sqlResources.xml文件是James用来包含SQL语句的配置文件样例。 这些语句的目的以及与它们相关联的数据仓库在文档中都是成套的。

如果你用的SQL数据库用了特殊的SQL命令或数据类型,你可能要在这个文件中添加特定的内容。 James小组确实尽力使sqlResources.xml适用,所以如果你遇到了特殊的情况,请通知我们。

另外,如果数据库的表不是先创建的,而是由James启动时创建,你需要特别注意这个文件中的“create table”语句。 这样的语句通常和数据库产品及其产品的不同版本相关性很大。

James配置示例

config.xml文件的注释中有MySQL 和 MSSQL 两种数据库的标准数据仓库数据源的例子。 例如,如果你要用MySQL,可以去掉注释符号并调整下面的data-source元素。

你必须创建数据库,在这里称为mail,和用户,并赋予用户权限。 你可能在James运行之前创建数据表,或者让James自动创建它所需要的表。 在后一种情况下,用户必须有创建表的权限。

<data-source name="maildb" class="org.apache.james.util.mordred.JdbcDataSource">

  <driver>org.gjt.mm.mysql.Driver</driver>

  <dburl>jdbc:mysql://127.0.0.1/mail</dburl>

  <user>username</user>

  <password>password</password>

  <max>20</max>

</data-source>

一旦创建了data-source元素,就可以在config.xml文件的其它部分引用它。例如,下面的例如告诉 James用maildb数据源和dbfile存储机制作为消息池:

<spoolRepository>

   <repository destinationURL="dbfile://maildb/spool/spool" type="SPOOL"/>

</spoolRepository>

下面的元素告诉James在maildb数据源中存储邮箱:

<inboxRepository>

   <repository destinationURL="db://maildb/inbox/" type="MAIL"/>

</inboxRepository>

配置文件中包含更详细的例子。

已知的问题

一些用户已经观察到在James中使用数据库会出现一些微妙的问题。 他们报告的这些问题(和解决问题的办法)在James FAQ中有记录。 如果你遇到困难请参考FAQ。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值