Sun Java System Communications Express 6.3 管理指南

支持 Address Book Server 的水平可伸缩性

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

此设置无法进行伸缩,因此不能支持每个个人通讯录中包含大量用户和联系人。为了消除此限制,在 Communications Express 6.3 中提供了 psRoot 属性,管理员可以使用该属性置备用户,以便可以将不同用户的 PAB 数据分布在不同的 LDAP 位置。

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

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

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

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

DB(DataBase,数据库)包含个人存储集合,如图 3–1 中所示。通讯录可以访问任意数量的 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:// 指明用户通讯录个人存储是通过 LDAPDB 插件进行访问的。

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

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


注 –

Address Book Server 不提供任何实用程序来根据任何可伸缩性策略为用户分配 psRoot 值。管理员需要设置最适于组织的特定策略,并使用自定义脚本按该策略设置 psRoot 值。


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

支持水平可伸缩性所需的其他配置

用户 LDAP 条目中的 psRoot 属性是 Address Book Server 支持的 URL,它定义在其中存储和检索用户个人通讯录条目的 LDAP 位置。psRoot 属性让管理员可以置备用户,以便可以将所有用户的 PAB 数据分布在多个目录位置。

对于现有的 Messenger Express 用户,如果启用了 PAB 迁移,则使用现有的 pabURI 属性构建 psRoot 属性,并在 uwc-deploy-dir/WEB-INF/config/migrate.properties 中定义一个映射表。

migrate.properties 文件中的查找表包含以下格式的 pabhostpabport 条目:

pabhost.pabport.abhostport = abldaphost:abldapport

其中,pabhost.pabport 指源目录实例,abldaphostabldaport 是应向其迁移 PAB 数据的目标目录实例。

例如,如果要将 PAB 数据从 pab.example.com:389 处运行的目录迁移到 abs.example.com:389 处运行的通讯录目录中,则 migrate.properties 中应存在以下项:

pab.example.com.389.abhostport = abs.example.com:389

migrate.properties 文件中可以有任意数量的查找。如果某个用户的 pabURI 属性使用 pabhostpabport,则使用默认 psRoot 模式构建的 psRoot 的格式如下:

ldap://abldaphost:abldapport/piPStoreOwner=%U,o=%D,o=PiServerDb

如果没有为 pabURI 值定义查找,也就是说,在映射表中未提供与 pabURI 匹配的条目,则使用 pabhostpabport 值作为 abldaphostabport 的默认值。这意味着,如果没有映射表,则 Messaging Server 中的 PAB 条目将按照通讯录模式迁移到同一目录实例中的其他根目录。在这种情况下,目标目录实例将与源目录实例相同。


注 –

修补程序的安装程序未定义查找表。您需要在安装修补程序后定义查找表,然后重新启动 Web 服务器。

请确保在该域的 personalstore.properties 指向的 db_config.properties 文件中定义了 abldaphost:abldapport 目录服务器实例。


自动设置 psRoot

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

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

ldap://default-server-host :default-server-port/piPStoreOwner=%U,o=%D,o=PiServerDb

其中:

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

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