目錄代理伺服器會根據請求的參數與一或多個模式之間的對應,將請求分佈至資料檢視。設定下列參數可配置模式對應分佈演算法:
pattern-matching-base-object-search-filter pattern-matching-base-object-search-filter(5dpconf)
pattern-matching-dn-regular-expression pattern-matching-dn-regular-expression(5dpconf)
pattern-matching-one-level-search-filter pattern-matching-one-level-search-filter(5dpconf)
pattern-matching-subtree-search-filter pattern-matching-subtree-search-filter(5dpconf)
結尾是 filter 的配置屬性為 LDAP 篩選,而非常規表示式。這些 LDAP 篩選會對內送搜尋請求中所包含的 LDAP 篩選進行評估。
例如,使用下列設定可配置模式對應分佈演算法,將使用者 uid 為偶數的請求傳送至 even 資料檢視,並將使用者 uid 為奇數的請求傳送至 odd 資料檢視。
$ 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 表示法,其中 2 與 a 是兩個十六進制數字。(uid=\2a) 表示式會確定資料檢視接受所有 uid 的請求。
模式對應演算法支援的語法由 Java Pattern 類別所指定 (請參閱 http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html)。此語法與常用之 regex 語法不同。