13.3 設定快取設定的組態

您可以使用「快取」頁面來顯示和變更叢集或非叢集應用程式伺服器環境的快取組態設定。 系統會立即儲存您的變更,但是它們要到下一次重新啟動使用者應用程式時才會生效。

提示:若要重新啟動使用者應用程式,您可以進行下列其中一個動作: 將應用程式伺服器重新開機;重新部署應用程式 (如果已透過某種方法變更 WAR);或者強制讓應用程式重新啟動 (如應用程式伺服器文件中所述)。

若要設定快取設定的組態,您需要瞭解:

13.3.1 如何實作快取

在 Identity Manager 使用者應用程式中,快取是透過 JBoss 快取來實作。 「JBoss 快取」是開放原始碼快取結構,其包含在 JBoss Application Server 中,但也會在其他應用程式伺服器上執行。

若要瞭解「JBoss 快取」的相關資訊,請至 www.jboss.org/products/jbosscache

13.3.2 如何儲存快取設定

您可以使用兩個層級的設定來控制快取組態。 您可以共同使用它們,以調整 Identity Manager 使用者應用程式的快取行為。

層級

描述

全域設定

全域設定是儲存在中心位置 (身份儲存區),如此多個應用程式伺服器才能使用相同的設定值。 例如,具有應用程式伺服器叢集的使用者通常會使用叢集組態值的全域設定。

若要在您的身份儲存區中尋找全域設定,請查看位於 Identity Manager 使用者應用程式驅動程式下的下列物件:


configuration.AppDefs.AppConfig

例如:


configuration.AppDefs.AppConfig.MyUserApplicationDriver.MyDriverSet.MyOrg

組態物件的 XmlData 屬性包含全域設定資料。

本地設定

本地設定是分別儲存在每個應用程式伺服器上,如此個別伺服器才能置換一或多個全域設定的值。 例如,您應該要指定本地設定,從全域設定所指定的叢集中移除應用程式伺服器,或者將伺服器重新指定至不同的叢集。

若要在您的應用程式伺服器上尋找本地設定,請查看位於 JBoss 伺服器組態 conf 目錄下的下列檔案:


sys-configuration-xmldata.xml

例如:


jboss/server/IDM/conf/sys-configuration-xmldata.xml

如果您的伺服器具有本地設定,則該資料會包含在此檔案中 (如果尚未指定任何本地設定,則該檔案不存在)。

對於每個使用使用者應用程式驅動程式特定例項的應用程式伺服器,您應該將全域設定視為預設值。 當您變更全域設定時,會影響其中每個伺服器 (在下次重新啟動使用者應用程式時),但其中個別伺服器指定本地置換的情況除外。

13.3.3 如何顯示快取設定

「快取」頁面顯示目前快取設定 (最近一次使用者應用程式重新啟動)。 它還會顯示那些設定相對應的全域和本地值,並可讓您變更它們 (用於下次使用者應用程式重新啟動)。

描述: 描述: 圖例

請注意,全域設定一直都具有值。 本地設定是選擇性的。

13.3.4 基本快取設定

這些快取設定適用於叢集和非叢集應用程式伺服器。

若要設定基本快取設定的組態,請執行下列動作:

  1. 移至「快取」頁面。

  2. 在該頁面的「快取組態」區段中,視情況為下列設定指定全域或本地值

    設定

    操作

    鎖定擷取逾時

    指定當在物件上取得鎖定時,快取要等待的時間間隔 (以毫秒為單位)。 如果使用者應用程式在應用程式記錄中取得許多鎖定逾時例外,則您可能要增加此設定。 預設值為 15000 毫秒。

    收回規則類別

    指定要使用之快取收回規則的類別名稱。 預設值是「JBoss 快取」提供的「近來最少使用 (Least Recently Used,LRU)」收回規則:

    
    org.jboss.cache.eviction.LRUPolicy
    

    如有需要,您可以將此規則變更為「JBoss 快取」支援的另一個收回規則。

    若要瞭解受支援的收回規則,請至 www.jboss.org/products/jbosscache

    喚醒間隔秒數

    指定在喚醒快取收回規則以進行下列動作之前,該規則要等待的時間間隔 (以秒為單位)

    • 處理收回的節點事件
    • 清理大小限制和過期節點

    最大節點數

    指定快取中允許的最大節點數。 如果沒有限制,請指定:

    
    0
    

    存活時間秒數

    指定在清除節點之前要閒置的時間 (以秒為單位)。 如果沒有限制,請指定:

    
    0
    

    這些設定是必要的,其表示對於每個設定都必須有一個全域值和一個選擇性的本地值。

    如果您要將設定的全域值置換為本地值,則選取該設定的「啟用本地」核取方塊。 然後指定本地值 (請確定您的所有本地值都是有效的。否則,您將無法儲存變更)。

    附註:對於那些沒有選取「啟用本地」的設定,任何現有的本地值會在您儲存時被刪除。

  3. 按一下「儲存」。

  4. 當您準備讓儲存的設定生效時,請在適合的應用程式伺服器上重新啟動使用者應用程式

13.3.5 叢集的快取設定

本節討論當您在應用程式伺服器叢集間執行 Identity Manager 使用者應用程式時,如何設定快取的組態。 您需要瞭解:

如何實作叢集

在 Identity Manager 使用者應用程式中,快取的叢集支援會透過 JGroups 實作。 JGroups 是開放原始碼叢集結構,其包含在 JBoss Application Server 中,但也會在其他應用程式伺服器上執行。

使用者應用程式的叢集包含網路上執行 JGroups 和使用公用群組 ID 的節點。 在預設狀態下,提供給使用者應用程式叢集的「群組 ID」是通用唯一識別碼 (UUID),如下所示:

c373e901aba5e8ee9966444553544200

通用唯一識別碼 (UUID) 可協助您確保獨特性,如此使用者應用程式叢集的「群組 ID」才不會與您環境中其他叢集的「群組 ID」發生衝突。 例如,JBoss Application Server 本身使用兩個 JGroups 叢集,並為它們保留「群組 ID」DefaultPartition 和 TreeCache

若要瞭解 JGroups 的相關資訊,請至 www.jboss.org/products/jgroups

快取如何與叢集搭配使用

當您啟動使用者應用程式時,該應用程式的快取組態設定會決定是否要參與叢集,並將快取變更複製到叢集中的其他節點。 如果已啟用叢集,則使用者應用程式會藉由在發生變更時將快取項目無效訊息傳送至每個節點,以完成此複製。

準備使用叢集

透過叢集使用快取需要下列兩個主要步驟:

  1. 設定您的 JGroups 叢集

    這包括安裝 JBoss Application Server 以使用所有組態,然後通常會透過將 Identity Manager 使用者應用程式 (IDM.war) 置於 farm 目錄中,將其配送至叢集中的每個伺服器。

  2. 在使用者應用程式快取組態設定中開始使用該叢集

    請參閱設定叢集的快取設定組態 (如下)。

設定叢集的快取設定組態

在準備使用叢集時,您可以針對透過該叢集的快取支援指定設定。

若要設定叢集的快取設定組態,請執行下列動作:

  1. 移至「快取」頁面。

  2. 在該頁面的「叢集組態」區段中,視情況為下列設定指定全域或本地值

    設定

    操作

    叢集已開啟

    選取「True」以複製快取變更到由「群組 ID」指定之叢集中的其他節點。 如果您不想參與叢集,請選取「False」。

    群組 ID

    指定您要參與之 JGroups 叢集的「群組 ID」。 不需要變更預設之提供給使用者應用程式叢集的「群組 ID」,除非您想要使用不同的叢集

    請注意,保留下列「群組 ID」以用於 JBoss Application Server: DefaultPartition 和 TreeCache。

    提示:若要查看記錄訊息中的「群組 ID」,請確定快取記錄 (com.sssw.fw.cachemgr) 的層級是設為 Info 或更高。

    叢集內容

    指定由「群組 ID」所指定之叢集的 JGroups 通訊協定堆疊。 請注意,此設定是針對具備經驗的管理員,這些管理員可能需要調整叢集內容。 否則,您不應該變更預設通訊協定堆疊。

    若要查看目前的叢集內容,請按一下「檢視」。

    如需 JGroups 通訊協定堆疊的詳細資料,請至 www.joss.org/wiki/Wiki.jsp?page=JGroups

    如果您要將設定的全域值置換為本地值,則選取該設定的「啟用本地」核取方塊。 然後指定本地值。

    附註:對於那些沒有選取「啟用本地」的設定而言,任何現有的本地值會在您儲存時被刪除。。

    請確定您叢集中的所有節點指定相同的「群組 ID」和「叢集內容」(若要查看這些特定節點的設定,您必須藉由瀏覽至該伺服器上使用者介面的 URL,存取在該節點上執行的 Identity Manager 使用者介面,然後在該處顯示「快取」頁面)。

  3. 按一下「儲存」。

  4. 當您準備讓儲存的設定生效時,請在適合的應用程式伺服器上重新啟動使用者應用程式