注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发JSP → 文章内容

数据库的配置

作者:佚名 来源:不详 发布时间:2007-11-29 23:59:38
数据库的配置

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。


更多内容请看PCdog.com--win98使用技巧  数据库相关文章专题

  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved