以前のリリースの Sun Java System 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 は、アドレス帳サーバーの水平方向の拡張に使用されるアーキテクチャーの高レベルの概要を示しています。
アドレス帳の水平方向のスケーラビリティーアーキテクチャーの主要なコンポーネントは、次のとおりです。
個人ストア
DB
DBMap
個人ストアには、ユーザーのアドレス帳情報が保持されます。ユーザーが作成したすべてのアドレス帳の定義のほか、それらのアドレス帳内のすべてのエントリが含まれています。個人ストアは、それが格納されているディレクトリインスタンスと、その特定のディレクトリインスタンス内の DN を示す URL として表現されます。
DB (データベース) には、図 3–1 に示すように個人ストアの集合が含まれています。アドレス帳は、任意の数の DB にアクセスできます。すべての DB は、その DB 用の接続パラメータを指定する DB ID で定義されます。別のタイプの DB は、別の DB の場所を指します。
DBMap は、同じタイプの DB の集合です。各 DBMap には、その DBMap 用の設定情報を示す ID が割り当てられます。
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 を指定しています。
アドレス帳サーバーには、スケーラビリティーポリシーに従ってユーザーの psRoot 値を分散するためのユーティリティーは用意されていません。管理者は、組織にもっとも適した特定のポリシーを設定し、カスタムスクリプトでそのポリシー用の psRoot 値を設定する必要があります。
psRoot 属性は、ドメイン固有の personalstore.properties ファイル内にある db.UserPsRoot パラメータを使用して、有効または無効にすることができます。db_config.properties ファイル内の defaultserver パラメータを使用するには、このパラメータを「false」 に設定します。ユーザーの psRoot 値を使用するには、このパラメータを「true」に設定します。psRoot で使用する各 Directory Server インスタンスには、「db_config.properties ファイルでのアドレス帳個人ストアパラメータの設定」に一覧表示されている個人ストアパラメータを指定する必要があります。実行時に、psRoot 属性の値は db-key.ldaphost と db-key.ldapport を使用して、ディレクトリインスタンスに解決されます。ここで、db-key は、各インスタンスを区別するための任意の文字列です。db-key.ldaphost と db-key.ldapport の一致がまったく発見されなかった場合は、defaultserver インスタンスが使用されます。
ユーザーの LDAP エントリにある属性 psRoot は、ユーザーの個人用アドレス帳エントリの格納や取得を行う際の元の LDAP の場所を定義する、アドレス帳サーバーに準拠した URL です。psRoot 属性を使用すると、管理者は、すべてのユーザーの PAB データが複数のディレクトリの場所に分散するようにユーザーをプロビジョニングできるようになります。
既存の Messenger Express ユーザーの場合、PAB 移行が有効になっていると、psRoot 属性は既存の pabURI 属性を使用して作成され、マッピング表が uwc-deploy-dir/WEB-INF/config/migrate.properties 内に定義されます。
migrate.properties ファイル内のルックアップテーブルは、次の形式をした pabhost および pabport エントリで構成されます。
pabhost.pabport.abhostport = abldaphost:abldapport
ここで、pabhost.pabport はソースディレクトリインスタンスを示し、abldaphost と abldaport は、PAB データを移行するべきターゲットディレクトリインスタンスを示します。
たとえば、PAB データを pab.example.com:389 で動作しているディレクトリから abs.example.com:389 で動作しているアドレス帳ディレクトリに移行する場合、migrate.properties ファイル内のエントリは次のように表示されます。
pab.example.com.389.abhostport = abs.example.com:389
migrate.properties ファイルには、必要なルックアップをいくつでも追加できます。ユーザーの pabURI 属性が pabhost と pabport を使用している場合、デフォルトの psRoot パターンを使用して作成された psRoot は次の形式になります。
ldap://abldaphost: abldapport/piPStoreOwner=%U,o=%D,o=PiServerDb
pabURI 値に対してルックアップが定義されていない場合、つまり、その pabURI に一致するマッピング表にエントリが指定されていない場合は、pabhost 値と pabport 値が abldaphost と abport に対するデフォルト値として使用されます。マッピング表が存在しない場合は、アドレス帳スキーマに従って、Messaging Server の PAB エントリが同じディレクトリインスタンス内の別のルートに移行されます。このシナリオでは、ターゲットディレクトリインスタンスがソースディレクトリインスタンスと同じになります。
ルックアップテーブルは、パッチインストーラでは定義されません。パッチをインストールした後、ルックアップテーブルを定義し、Web Server を再起動する必要があります。
abldaphost:abldapport Directory Server インスタンスが、そのドメインの personalstore.properties で示される db_config.properties ファイル内で定義されていることを確認してください。
新規ユーザーがログインすると、ユーザーのエントリ内の psRoot 属性にデフォルト値が設定されます。
新規ユーザーの psRoot 値は、personalstore.properties ファイル内に定義されている psRoot パターンと、db_config.properties ファイル内の defaultserverhost および defaultserverPort 値を使用して作成されます。たとえば、デフォルトの psRoot パターンを使用すると、デフォルトの psRoot 値は次の形式になります。
ldap://default-server-host :default-server-port/piPStoreOwner=%U,o=%D,o=PiServerDb
ここで使用されているオプション、変数は次のとおりです。
%U = ユーザーのログイン ID例: jsmith
%D = ユーザーのドメイン例: siroe.com