在舊版 Sun Java Communications Express 中,特定網域的個人通訊錄項目儲存在單一 LDAP 位置,該位置以 db_config.properties 檔案中定義的 defaultserver 實例表示。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 伺服器的架構之高層次概觀。
下列為「通訊錄」水平可伸縮性架構的關鍵元件:
個人存放區
DB
DBMap
「個人存放區」維護使用者的通訊錄資訊。它包含使用者以通訊錄中所有項目建立的所有通訊錄定義。「個人存放區」會以 URL 顯示,描述它們所在的目錄實例,以及特殊目錄實例中的 DN。
如圖 3–1 所示,DB (資料庫) 包含個人存放區的集合。通訊錄可存取任意數量的 DB。每個 DB 是由定義該 DB 連線參數的 DB-ID 定義。不同類型的 DB 會指向不同的 DB 位置。
DBMap 是相同類型 DB 的集合。每個 DBMap 有一個 ID,它會指引到該 DBMap 的配置資訊。
psRoot 是使用者的 LDAP 屬性,指定儲存使用者通訊錄項目的主機、目錄實例的連接埠和 DN。psRoot 的格式為:ldap://ldap_host:ldap_port/DN。
psRoot 屬性的值決定 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。
Address Book 伺服器未提供任何公用程式,以根據任何可伸縮性策略為使用者分配 psRoot 值。管理員需要設定最符合組織的特定策略,並使用自訂的程序檔為該策略設定 psRoot 值。
可使用網域特定的 personalstore.properties 檔案中的 db.UserPsRoot 參數開啟或關閉 psRoot 屬性。將參數設定為「false」,以使用 db_config.properties 檔案中的 defaultserver 參數。將參數設定為「true」,以使用使用者的 psRoot 值。必須為 psRoot 中使用的每個唯一目錄伺服器實例提供在 db_config.properties 檔案中配置通訊錄個人存放區參數列出的個人存放區參數。在執行階段中 psRoot 屬性值將被解析為使用 db-key.ldaphost 和 db-key.ldapport 的目錄實例,其中 db-key 是能夠區分不同實例的任意字串。如果無法找到與 db-key.ldaphost 和 db-key.ldapport 相符的實例,則將使用 defaultserver 實例。
使用者 LDAP 項目中的 psRoot 屬性是 Address Book 伺服器相容的 URL,定義儲存並擷取個人通訊錄項目的 LDAP 位置。psRoot 屬性可讓管理員佈建使用者,從而可以跨多目錄位置散佈所有使用者的 PAB 資料。
對於現有 Messenger Express 使用者,如果 PAB 遷移已啟用,將會使用現有 pabURI 屬性來建構 psRoot 屬性,且 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。
確定該網域 personalstore.properties 指向的 db_config.properties 檔案中已定義 abldaphost: abldapport 目錄伺服器實例。
當新使用者登入時,會將使用者項目的 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 = 使用者的登入識別碼。例如,jsmith。
%D = 使用者的網域。例如,siroe.com。