Sun Java System Directory Server Enterprise Edition 6.3 관리 설명서

디렉토리 프록시 서버 배포 알고리즘 구성

디렉토리 프록시 서버는 다음의 배포 알고리즘을 제공합니다.

패턴 일치 배포 알고리즘 구성

디렉토리 프록시 서버는 요청 매개 변수와 하나 이상의 패턴 간의 일치를 기준으로 데이터 보기에 요청을 배포합니다. 다음 매개 변수를 설정하여 패턴 일치 배포 알고리즘을 구성합니다.

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) 표현식에서 \2a2a가 두 개의 16진수인 *의 ASCII 표현입니다. (uid=\2a) 표현식은 데이터 보기에서 모든 uid에 대한 요청을 허용하도록 합니다.

패턴 일치 알고리즘에서 지원되는 구문은 Java Pattern 클래스(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 값에서 가져옵니다. 다음 매개 변수를 설정하여 사전 경계를 정의합니다.

예를 들어 A~M 사이 문자로 시작되는 이름의 사용자 요청을 한 데이터 보기로 보내고 나머지 사용자의 요청을 다른 데이터 보기로 보내는 사전 배포 알고리즘을 구성합니다.


$ 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-view, jdbc-data-view, ldif-data-viewjoin-data-view와 같은 모든 데이터 보기 유형에 대해 사용자 정의 배포 알고리즘을 구성할 수 있습니다. 다음 절차에서 알고리즘은 ldap-data-view에 대해서만 설정됩니다.

Procedure사용자 정의 배포 알고리즘을 구성하는 방법

  1. 배포 알고리즘 클래스가 들어 있는 JAR(Java Archive) 파일의 경로를 포함하도록 extension-jar-file-url 등록 정보를 설정합니다.


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

    jar file pathfile:/expt/dps/custom_plugin/myjar.jar과 같은 유효한 JAR 파일 경로로 대체될 수 있습니다.

  2. custom-distribution-algorithm을 구성하기 전에 distribution-algorithmnone으로 설정합니다.


    $ 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