Sun Java System Directory Server Enterprise Edition 6.3 管理指南

配置目录代理服务器分配算法

目录代理服务器提供了以下分配算法:

配置模式匹配分配算法

目录代理服务器会根据请求的参数与一个或多个模式的匹配情况,将请求分配给数据视图。设置以下参数可配置模式匹配分配算法:

filter 结尾的配置属性是 LDAP 过滤器,而不是正则表达式。这些 LDAP 过滤器的值是基于传入的搜索请求中所包含的 LDAP 过滤器来计算的。

例如,使用以下设置配置模式匹配分配算法,将 uid 为偶数的用户的请求发送给偶数数据视图,将 uid 为奇数的用户的请求发送给奇数数据视图。


$ dpconf set-ldap-data-view-prop even
pattern-matching-base-object-search-filter:'|(uid=\2a)(uid=*0)(uid=*2)\
(uid=*4)(uid=*6)(uid=*8))'\
pattern-matching-one-level-search-filter:'|(uid=\2a)(uid=*0)(uid=*2)\
(uid=*4)(uid=*6)(uid=*8))'\
pattern-matching-subtree-search-filter:'|(uid=\2a)(uid=*0)(uid=*2)\
(uid=*4)(uid=*6)(uid=*8))'\
pattern-matching-dn-regular-expression:'uid=[0-9]+[02468]'
distribution-algorithm: pattern-matching 

$ dpconf set-ldap-data-view-prop odd
pattern-matching-base-object-search-filter:'|(uid=\2a)(uid=*1)(uid=*3)\
(uid=*5)(uid=*7)(uid=*9))'\
pattern-matching-one-level-search-filter:'|(uid=\2a)(uid=*1)(uid=*3)\
(uid=*5)(uid=*7)(uid=*9))'\
pattern-matching-subtree-search-filter:'|(uid=\2a)(uid=*1)(uid=*3)\
(uid=*5)(uid=*7)(uid=*9))'\
pattern-matching-dn-regular-expression:'uid=[0-9]+[13579]'
distribution-algorithm: pattern-matching 

(uid=\2a) 表达式中,\2a* 的 ASCII 表示形式,其中 2a 是两个十六进制数字。(uid=\2a) 表达式可确保数据视图接受所有 uid 的请求。

模式匹配算法支持的语法由 Java 模式类(请参见 http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html 上提供的文档)来指定。此语法不同于常规的 regex 语法。

配置数字分配算法

目录代理服务器会根据请求中的 RDN 数值,将请求分配给数据视图。将从数据视图的基 DN 下的第一个 RDN 值中获取该数值。设置以下参数来定义数字范围:

例如,配置数字分配算法,将介于 0 和 99 之间的 uid 的请求发送给特定数据视图。对于其余用户,使用相同的语法,但用不同的数据视图。


$ dpconf set-ldap-data-view-prop dataview distribution-algorithm:numeric \
 numeric-attrs:uid numeric-lower-bound:0 numeric-upper-bound:99

配置字典顺序分配算法

目录代理服务器会根据请求中 RDN 的字典顺序值,将请求分配给数据视图。将从数据视图的基 DN 下的第一个 RDN 值中获取字典顺序范围。设置以下参数来定义字典顺序范围:

例如,配置字典顺序分配算法,将名称以 AM 开头的用户的请求发送给一个数据视图,而将其余用户的请求发送给另一个数据视图。


$ dpconf set-ldap-data-view-prop dataview distribution-algorithm:lexicographic \
 lexicographic-attrs:cn lexicographic-lower-bound:A lexicographic-upper-bound:M

配置复制分配算法

目录代理服务器会根据数据视图在复制中的角色,将请求分配给数据视图。该算法将写入操作分配给数据源池中的所有数据源,将读取操作分配给单个数据源。复制角色由 replication-role 参数来定义。数据视图可以具有提供者角色或使用者角色。


$ dpconf set-ldap-data-view-prop dataview distribution-algorithm:replication

配置自定义分配算法

可以为所有类型的数据视图配置自定义分配算法,即 ldap-data-viewjdbc-data-viewldif-data-viewjoin-data-view。在以下步骤中,将仅为 ldap-data-view 设置该算法。

Procedure配置自定义分配算法

  1. 设置 extension-jar-file-url 属性以包含 Java 归档 (Java Archive, JAR) 文件(包含分配算法类)的路径。


    $ dpconf set-server-prop -h host -p port extension-jar-file-url:jar file path
    

    可以将 jar file path 替换为有效 JAR 文件路径,如 file:/expt/dps/custom_plugin/myjar.jar

  2. 在配置 custom-distribution-algorithm 之前,请将 distribution-algorithm 设置为 none


    $ dpconf set-ldap-data-view-prop view name distribution-algorithm:none
  3. custom-distribution-algorithm 属性设置为自定义分配算法类。


    $ dpconf set-ldap-data-view-prop view name custom-distribution-algorithm:PackageName.AlgoClassName