ヘッダーをスキップ
Oracle Identity Managerベスト・プラクティス・ガイド
リリース9.0
B31961-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

4 キャッシュの管理

Oracle Identity Managerでは、グローバルおよびスレッド・ローカルの2タイプのキャッシュを使用します。

グローバル・キャッシュは、情報をグローバルに格納します。システムのどこからでも、このキャッシュに格納された情報にアクセスできます。グローバル・キャッシュは、OpenSymphonyのOSCacheを使用します。OSCacheはクラスタ環境をサポートする利点があります。通常、データベース問合せはグローバル・キャッシュに格納されるため、問合せを繰り返してもデータベースに対して再実行されません。

スレッド・ローカル・キャッシュは、何度も使用する情報を単一のトランザクションに格納します。たとえば、トランザクション中に何度も発行される問合せはスレッド・ローカル・キャッシュにあるデータを使用します。問合せに使用するデータは、トランザクションで変更されません。

Oracle Identity Managerでは、カテゴリ別にキャッシュを行います。特定のエンティティのキャッシュを有効化および無効化し、別々の有効期限を設定できます。

この章では、次の内容について説明します。

キャッシュ構成のサンプル

例4-1に、xlconfig.xmlファイル内のCacheセクションのSnippetを示します。

例4-1 xlconfig.xml Snippet

<Cache>
  <Enable>false</Enable>
  <ThreadLocalCacheEnabled>false</ThreadLocalCacheEnabled>
  <ExpireTime>14400</ExpireTime>

  <CacheProvider>com.thortech.xl.cache.OSCacheProvider</CacheProvider>
  <XLCacheProvider>
    <Size>5000</Size>
    <MultiCastAddress>231.121.212.133</MultiCastAddress>
  </XLCacheProvider>

  <!-- Individual cache categories -->

  <!-- Adapters and event handlers to be executed on update/insert/delete -->
  <DataObjectEventHandlers>
    <Enable>false</Enable>
    <ExpireTime>14400</ExpireTime>
  </DataObjectEventHandlers>

...
...
...
</Cache>


注意:

開発環境では、キャッシングを無効化することをお薦めします。開発環境では、データは頻繁に変更されます。キャッシュ・データが時間どおりにリフレッシュされないと、開発者による製品の作業に問題が生じます。

一般的なキャッシュ構成のプロパティ

Cacheタグは、キャッシュ構成、および開始と終了のCacheタグ間の記述内容を表します。表4-1Cacheセクションのエントリを示します。

表4-1 キャッシュ構成パラメータ

プロパティ 説明

Enable

このプロパティで、構成ファイルで明示的に定義されていないカテゴリに対するキャッシュ構成のコンポーネントを有効化します。構成ファイルに特定のカテゴリが含まれない場合、キャッシュはこのエントリを使用してカテゴリを有効化または無効化します。

ThreadLocalCacheEnabled

このプロパティで、スレッド・ローカル・キャッシュを有効化または無効化します。

ExpireTime

このプロパティで、キャッシュ構成のコンポーネントのデフォルト有効期限を指定します。

CacheProvider

これは、キャッシングで使用するプロバイダの完全クラスパスです。このプロパティは変更しないでください。

XLCacheProvider

このセクションで、キャッシュ・プロバイダ・プロパティを指定します。例4-1では、SizeおよびMulticast Addressプロパティが指定されています。

XLCacheProvider -Size

このプロパティで、キャッシュのサイズを指定します。数字は、キャッシュが格納する項目の数を表します。このサイズに達すると、新しい項目がキャッシュに格納され、最も使用されていない項目がキャッシュの外に出されます。

XLCacheProvider - MultiCastAddress

すべてのOracle Identity Managerコンポーネント間のマルチキャスト通信で使用するIPアドレスです。



注意:

1つの環境内のすべてのOracle Identity Managerインストール(クラスタのすべてのノードなど)に、同じMultiCast Addressを使用する必要があります。キャッシュ・フラッシュは、MultiCast IPを使用して、すべてのインストールに伝播します。マルチキャストが無効な場合、キャッシュ・フラッシュはできません。

カテゴリベースのキャッシュ構成のプロパティ

一般的なキャッシュ構成を実行すると、コンポーネントまたはカテゴリがそれぞれ独自のタグ名とともに表示されます。タグ名は、キャッシュに情報を格納するコードで使用するカテゴリ名を表します。すべてのカテゴリは、他のカテゴリと関係なく有効化または無効化し、コンポーネントまたはカテゴリ別に有効期限を設定できます。

表4-2にCache構成ファイルのカテゴリを示します。デフォルトでは、表4-2で特に記載のあるカテゴリ以外はすべてキャッシュ構成ファイルで無効化されています。

表4-2 カテゴリベースのキャッシュ構成パラメータ

カテゴリ名 説明

DataObjectEventHandlers

データ・オブジェクトの変更が発生した場合に実行されるイベント・ハンドラの一覧。カスタム・イベント・ハンドラおよびエンティティ・アダプタは、ここでデータ・オブジェクトに追加されます。

ProcessDefinition

プロセス属性、タスク、タスク・マッピングなどのプロセス定義情報。

RuleDefinition

ルール定義情報。

FormDefinition

フォーム定義情報。

ColumnMap

列コードのDB列名。デフォルトで有効です。

UserDefinedColumns

ユーザー定義フォームおよび列定義。

ObjectDefinition

オブジェクト定義情報。

StoredProcAPI

APIをページング機能でコールする時に、格納された件数の合計で使用します。情報の変更が頻繁なため、このカテゴリのデフォルト有効期限は10分です。

NoNeedToFlush

このカテゴリでは、フラッシュする必要がなく特定のカテゴリに当てはまらないデータを定義します。このカテゴリには、有効期限はありません。情報は、一般的に初期データベース・セットアップ中に移入され、インストール内では変更されません。

MetaData

DBフィールド・メタデータ情報。デフォルトで有効です。

AdapterInformation

アダプタ変数、コンパイル・ステータスなど。

OrgnizationName

キャッシュ組織名。

Reconciliation

リコンシリエーション・ルール。

SystemProperties

キャッシュ・システム・プロパティ。

LookupDefinition

参照名とフィールド間の変換をキャッシュします。

UserGroups

ユーザー・グループをキャッシュします。

LookupValues

所定の参照名の参照値をキャッシュします。

ITResourceKey

ITリソースのDBキー・キャッシュ。

ServerProperties

システム・プロパティとともにどのデータを暗号化するかをキャッシュします。

ColumnMetaData

共通問合せのデータベース・メタデータ情報。

CustomResourceBundle

カスタム・リソース・バンドルをキャッシュします。

CustomDefaultBundle

カスタム・デフォルト・バンドルをキャッシュします。

ConnectorResourceBundle

コネクタ・リソース・バンドルをキャッシュします。


クラスのリロード

クラスのリロードとは、サーバーを再起動することなく、自動的にクラスをリロードすることを指します。クラスのリロード設定は、スケジュール済タスクやアダプタ関連ファイルで役に立ちます。開発環境では、リロードを有効化することをお薦めします。キャッシュのリロードが無効な時に、新規アダプタのインポート、既存アダプタの変更または.jarファイルの変更が発生した場合、Oracle Identity Managerサーバーの再起動が必要になります。


注意:

本番環境では、パフォーマンス向上のため、クラスのリロードを無効化することをお薦めします。

クラス・リロードの構成情報は、xlconfig.xmlファイルに次のように含まれます。

<ClassLoading>
  <ReloadEnabled>true</ReloadEnabled>
  <ReloadInterval>15</ReloadInterval>
  <LoadingStyle>ParentFirst</LoadingStyle>
</ClassLoading>

キャッシュの消去

割当て時間前にキャッシュを消去するには、XL_HOME/binディレクトリ内のPurgeCacheユーティリティを使用します。このユーティリティで、キャッシュ内のすべての要素を消去できます。

プラットフォームに応じて、PurgeCacheユーティリティはバッチ・ファイルまたはシェル・スクリプトです。XEL_HOMEおよびJAVA_HOME環境変数が正しい場所を示すように編集すると、PurgeCacheをコマンドラインから実行できます。

PurgeCacheユーティリティを使用するには、Windowsシステム上では「PurgeCache.bat <カテゴリ名>」を、UNIX/Linuxシステム上では「PurgeCache.sh <カテゴリ名>」を実行します。カテゴリ名引数は、消去するカテゴリの名前を表します。たとえば、次のコマンドで、すべてのFormDefinitionエントリをシステムおよびクラスタから消去します。

PurgeCache.bat FormDefinition
PurgeCache.sh FormDefinition

すべてのOracle Identity Managerカテゴリを消去するためには、PurgeCacheユーティリティにALLの値を渡します。


注意:

  • PurgeCacheユーティリティのカテゴリ名引数では、大/小文字が区別されます。

  • このスクリプトの実行後に、java.lang.NullPointerExceptionがスローされます。ただし、この例外によって、データが消去されなくなることはありません。


本番環境に最適なキャッシュ構成

デプロイ後にキャッシュ構成を変更すると、パフォーマンスや使用方法に影響を与える場合があります。キャッシュを構成するときは、細心の注意を払う必要があります。

本番環境用のOracle Identity Managerキャッシュを構成するためのガイドラインを次に示します。