13.3 キャッシュを設定する

[キャッシング]ページを使用して、クラスタアプリケーションサーバ環境または非クラスタアプリケーションサーバ環境のキャッシュ環境設定を表示または変更できます。変更はただちに保存されますが、次回ユーザアプリケーションが再起動されるまで有効になりません。

ヒント:ユーザアプリケーションを再起動するには、アプリケーションサーバの再起動、アプリケーションの再展開(WARが変更されている場合)、アプリケーションの強制的な再起動(アプリケーションサーバのマニュアルに記載されている方法による)のいずれかを行います。

キャッシュを設定するには、次について理解している必要があります。

13.3.1 キャッシングの実装について

Identity Managerユーザアプリケーションでは、キャッシングはJBoss Cacheにより実装されます。JBoss Cacheは、JBoss Application Serverに含まれているオープンソースのキャッシングアーキテクチャであり、他のアプリケーションサーバでも実行できます。

JBoss Cacheの詳細については、www.jboss.org/products/jbosscacheを参照してください。

13.3.2 キャッシュ設定の保存について

キャッシュ環境設定を制御するための設定には2つのレベルがあります。これら2つのレベルの設定を使用して、Identity Managerユーザアプリケーションのキャッシング動作をカスタマイズできます。

レベル

説明

グローバル設定

グローバル設定は、複数のアプリケーションサーバが同じ設定値を使用できるように、まとめてアイデンティティボールトに格納されます。たとえば、アプリケーションサーバがクラスタになっている場合、通常、クラスタ環境設定のグローバル設定値が使用されます。

アイデンティティボールトからグローバル設定を見つけるには、Identity Managerユーザアプリケーションドライバの下にある次のオブジェクトを探します。


configuration.AppDefs.AppConfig

例:


configuration.AppDefs.AppConfig.MyUserApplicationDriver.MyDriverSet.MyOrg

環境設定オブジェクトのXmlData属性には、グローバル設定データが含まれています。

ローカル設定

ローカル設定は、各サーバが1つまたは複数のグローバル設定の値を上書きできるように、各アプリケーションサーバに個別に保存されます。たとえば、アプリケーションサーバをグローバル設定で指定したクラスタから削除したり、サーバを別のクラスタに再割り当てしたりする場合に、ローカル設定を指定できます。

アプリケーションサーバからローカル設定を見つけるには、JBossサーバ環境設定のconfディレクトリの下にある次のファイルを探します。


sys-configuration-xmldata.xml

例:


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

サーバがローカル設定になっている場合、そのデータはこのファイルに含まれます(ローカル設定が指定されていない場合、このファイルは存在しません)。

グローバル設定は、ユーザアプリケーションドライバの特定のインスタンスを使用する各アプリケーションサーバのデフォルト値と考えます。グローバル設定の変更は、サーバが個別にローカル上書きを指定している場合を除き、次回ユーザアプリケーションの再起動時に、各サーバに反映されます

13.3.3 キャッシュ設定の表示について

[キャッシング]ページでは、現在の(最後にユーザアプリケーションを再起動してからの)キャッシュ設定が表示されます。また、これらの設定に対応するグローバル値およびローカル値も表示され、設定を変更することもできます(変更された設定は、次回ユーザアプリケーションの再起動時から有効になります)。

説明:説明:図

グローバル設定では、値の設定が必須です。ローカル設定はオプションです。

13.3.4 基本キャッシュ設定

次のキャッシュ設定は、クラスタアプリケーションサーバ環境および非クラスタアプリケーションサーバ環境の両方に適用されます。

基本キャッシュ設定を設定するには:

  1. [キャッシング]ページに移動します。

  2. キャッシュ環境設定]セクションで、必要に応じて、次の設定のグローバル値またはローカル値を指定します。

    設定

    操作

    ロック取得タイムアウト

    オブジェクトでロックが取得されるまでキャッシュが待機する間隔(ミリ秒)を指定します。ユーザアプリケーションのアプリケーションログに大量のロックタイムアウト例外が書き込まれる場合に、この設定値を増やすことができます。デフォルトは15000ミリ秒です。

    立ち退きポリシークラス

    使用するキャッシュ立ち退きポリシーのクラス名を指定します。デフォルトは、JBoss Cacheが提供するLRU立ち退きポリシーです。

    
    org.jboss.cache.eviction.LRUPolicy
    

    この設定は、必要に応じて、JBoss Cacheがサポートする別の立ち退きポリシーに変更できます。

    サポート対象の立ち退きポリシーについては、www.jboss.org/products/jbosscacheを参照してください。

    ウェイクアップ間隔(秒)

    次の動作を実行するためにキャッシュ立ち退きポリシーがウェイクアップするまでの待機間隔(秒)を指定します。

    • 立ち退きノードイベントの処理
    • サイズ制限および期限切れノードのクリーンアップ

    最大ノード

    キャッシュで許容される最大ノード数を指定します。無制限の場合は、次の値を指定します。

    
    0
    

    ライブまでの時間(秒)

    ノードが一掃されるまでのアイドル時間(秒)を指定します。無制限の場合は、次の値を指定します。

    
    0
    

    これらの設定は必須です。各設定にはグローバル値を指定する必要があり、ローカル値もオプションで使用される場合があります。

    設定のグローバル値をローカル値で上書きする場合は、その設定の[ローカルの有効化]チェックボックスをオンにしてから、ローカル値を指定します。ローカル値がすべて有効であることを確認してください。有効な値でない場合、変更を保存できません。

    メモ:[ローカルの有効化]チェックボックスがオフになっている設定は、保存時、既存のローカル値が削除されます。

  3. [保存]をクリックします。

  4. 保存した設定を反映できる状態になったら、該当アプリケーションサーバ上でユーザアプリケーションを再起動します。

13.3.5 クラスタのキャッシュ設定

この節では、Identity Managerユーザアプリケーションをクラスタアプリケーションサーバ間で実行する場合のキャッシングの設定方法について説明します。次について理解する必要があります。

クラスタリングの実装について

Identity Managerユーザアプリケーションでは、キャッシングのクラスタサポートはJGroupsにより実装されます。JGroupは、JBoss Application Serverに含まれているオープンソースのクラスタリングアーキテクチャであり、他のアプリケーションサーバでも実行できます。

ユーザアプリケーションのクラスタは、JGroupsを実行し、共通のグループIDを使用するネットワーク上のノードから構成されます。デフォルトでは、ユーザアプリケーションのクラスタに用意されているグループIDは、次のようなUUIDとなります。

c373e901aba5e8ee9966444553544200

UUIDにより一意性が保たれるため、ユーザアプリケーションのクラスタのグループIDが環境内にある他のクラスタのグループIDと競合することはありません。たとえば、JBoss Application Serverでは、2つのJGroupsクラスタが使用され、それぞれ対応するグループIDであるDefaultPartitionとTreeCacheは予約されています。

JGroupsの詳細については、www.jboss.org/products/jgroupsを参照してください。

クラスタでのキャッシングの動作について

ユーザアプリケーションを起動すると、アプリケーションのキャッシュ設定により、クラスタに参加してキャッシュ変更をクラスタ内の他のノードに複製するかどうかかが判断されます。クラスタリングが有効になっている場合、ユーザアプリケーションは、変更発生時にキャッシュエントリ無効メッセージを各ノードに送信することにより、この複製を実行します。

クラスタを使用するための準備作業

クラスタでキャッシングを使用するには、2つの主な手順を実行する必要があります。

  1. JGroupsクラスタの設定

    ここでは、すべての環境設定を使用するためのJBoss Application Serverをインストールし、それからクラスタ内の各サーバにIdentity Managerユーザアプリケーション(IDM.war)を配布します。Identity Managerユーザアプリケーション(IDM.war)は通常、farmディレクトリに配置されます。

  2. ユーザアプリケーションのキャッシュ環境設定におけるクラスタ使用の有効化

    次に示すクラスタのキャッシュを設定するを参照してください。

クラスタのキャッシュを設定する

クラスタを使用できる状況になったら、クラスタのキャッシング設定を指定します。

クラスタのキャッシュを設定するには:

  1. [キャッシング]ページに移動します。

  2. [クラスタ設定]セクションで、必要に応じて、次の設定のグローバル値またはローカル値を指定します。

    設定

    操作

    有効なクラスタ

    グループIDにより指定されたクラスタ内の別のノードにキャッシュの変更を複製する場合は、[True]を選択します。クラスタに参加しない場合は、[False]を選択します。

    グループID

    参加対象のJGroupsクラスタのグループIDを指定します。通常は、ユーザアプリケーションクラスタ用に用意されているグループIDのデフォルト値を変更する必要はありません。ただし、別のクラスタを使用する場合は変更します

    DefaultPartitionおよびTreeCacheというグループIDは、JBoss Application Serverが使用するために予約されています。

    ヒント:グループIDをログメッセージに表示する場合は、キャッシングログ(com.sssw.fw.cachemgr)のレベルが「情報」以上になっていることを確認します。

    クラスタのプロパティ

    グループIDにより指定されたクラスタのJGroupsプロトコルスタックを指定します。この設定は、クラスタのプロパティ調整の必要が想定される経験のある管理者のためのものです。経験のある管理者以外は、デフォルトのプロトコルスタックを変更しないでください。

    現在のクラスタのプロパティを表示するには、[表示]をクリックします。

    JGroupsプロトコルスタックの詳細については、www.joss.org/wiki/Wiki.jsp?page=JGroupsを参照してください。

    設定のグローバル値をローカル値で上書きする場合は、その設定の[ローカルの有効化]チェックボックスをオンにしてから、ローカル値を指定します。

    メモ:[ローカルの有効化]チェックボックスがオフになっている設定は、保存時、既存のローカル値が削除されます。

    クラスタ内のすべてのノードの[グループID]および[クラスタのプロパティ]が同じ設定になっていることを確認します。特定のノードについてこれらの設定を確認する場合には、そのサーバ上のユーザインタフェースのURLを参照することにより、そのノードを実行しているIdentity Managerユーザインタフェースにアクセスし、それから[キャッシング]ページを表示する必要があります。

  3. [保存]をクリックします。

  4. 保存した設定を反映できる状態になったら、該当アプリケーションサーバ上でユーザアプリケーションを再起動します。