Sun Java System Communications Express 6 2005Q4 管理指南

支持 Addressbook Server 的水平可伸缩性

在 Sun Java System Communications Express 的上一发行版中,特定域的个人通讯录条目存储在由 defaultserver 实例(在 db_config.properties 文件中定义)表示的单个 LDAP 位置中。db_config.properties 文件位于域的 personalstore.properties 所指向的目录中。例如 uwc-install/WEB-INF/config/ldappstore

此部署无法进行伸缩,以支持在每个个人通讯录中包含大量的用户和联系人。为克服此限制,Sun Java System Communications Express 6.2 中的 psRoot 属性可以允许管理员置备用户,从而将不同用户的 PAB 数据分布在不同的 LDAP 位置中。

例如 ldap://mydir.com:389/piPStoreOwner=jsmith,o=siroe.com,o=PiServerDb

图 3-1 高度概括了用于水平伸缩 Addressbook Server 的体系结构。

通讯录水平可伸缩性体系结构的主要组件有:

个人存储维护用户的通讯录信息。它包含用户已经创建的所有通讯录的定义,以及这些通讯录中的所有条目。个人存储以 URL 表示,URL 说明了个人存储所在的目录实例,以及该特定目录实例中的 DN。

DB 包含个人存储的集合(如图 3-1 所示),Address Book Server 可以访问任意数目的 DB。 每个 DB 都由定义该 DB 的连接参数的 DB-ID 定义。DB 可以具有不同类型,并可以指向不同的 DB 位置。

DBMap 是类型相同的 DB 的集合。每个 DBMap 都有一个引用该 DBMap 的配置信息的 ID。

图 3–1 通讯录的水平可伸缩性

通讯录的水平可伸缩性

psRoot 是用户 LDAP 中的一个属性,它指定目录实例的主机、端口,以及用于存储用户通讯录条目的 DN。psRoot 的格式如下:ldap://ldap_host:ldap_port/DN

psRoot 属性值确定 DB 类型和 DB 位置。

在 psRoot 示例 ldap://mydir.com:389/piPStoreOwner=jsmith,o=siroe.com,o=PiServerDb 中:

ldap:// 指示使用 LDAP DB 插件访问用户的通讯录个人存储。

mydir.com:389 指定 LDAP 主机和端口。

piPStoreOwner=jsmith,o=siroe.com,o=PiServerDb 指定个人存储的 DN。


注 –

Addressbook Server 没有提供任何用于为用户分发 psRoot 值(根据任何可伸缩性策略)的实用程序。管理员需要设置最适合于组织的特定策略,并使用自定义脚本为该策略设置 psRoot 值。


可以使用 db.UserPsRoot 参数打开或关闭 psRoot 属性,该参数位于特定于域的 personalstore.properties 文件中。将该参数设置为 "false" 可以使用 db_config.properties 文件中的 defaultserver 参数。将该参数设置为 "ture" 可以使用用户的 psRoot 值。必须为 psRoot 中使用的每个唯一的 Directory Server 实例提供在 db_config.properties 文件中配置通讯录个人存储参数中列出的个人存储参数。 运行时,系统使用 db-key.ldaphostdb-key.ldapport(其中 db-key 为将实例相互区分开的任意字符串)将 psRoot 属性值解析为目录实例。如果找不到 db-key.ldaphostdb-key.ldapport 的匹配项,则使用 defaultserver 实例。

自动设置 psRoot 值

新用户登录时,将为该用户条目中的 psRoot 属性设置默认值。

对于新用户,将使用 personalstore.properties 文件中定义的 psRoot 模式以及 db_config.properties 文件中的 defaultserverhostdefaultserverPort 值来构建 psRoot 值。例如,使用默认的 psRoot 模式时,默认的 psRoot 值的格式为:

ldap://defaultserver_host:defaultserver_port/piPStoreOwner=%U,o=%D,o=PiServerDb

其中

%U = 用户的登录 ID,例如 jsmith。

%D = 用户的域,例如 siroe.com。