Sun Java System Application Server Enterprise Edition 8.2 パフォーマンスチューニングガイド

EJB キャッシュのチューニング

キャッシュ内の Bean は、EJB のライフサイクルにおける実行可能状態を表します。これは、その Bean に ID (主キーやセッション ID など) が関連付けられていることを意味します。

キャッシュの外側に移動する Beans は、EJB のライフサイクルに従って非活性化するか破棄する必要があります。非活性化された Bean をキャッシュ内に戻すには、その Bean を活性化する必要があります。エンティティー Beans は一般に、データベース内に格納され、何らかの形式のクエリー言語セマンティクスを使ってデータの読み込みや格納を行います。セッション Beans は、非活性化時にディスクまたはデータベースに格納するために直列化する必要があるほか、活性化時にも同様に直列化復元を行う必要があります。

こうしたキャッシュ内の「実行可能」Beans を使用する着信要求はすべて、作成、ID 設定、および場合によっては活性化のオーバーヘッドを回避することができます。したがって、理論上は、できるだけ多くの Beans をキャッシュに書き込むのが良いことになります。ところが、キャッシュへの書き込みには次のような欠点があります。

アプリケーションによるステートフルセッション Beans やエンティティー Beans の使用方法やサーバーが処理するトラフィックの量に注意しながら EJB のキャッシュサイズおよびタイムアウト設定のチューニングを行い、活性化や非活性化の回数が最小限に抑えられるようにしてください。

EJB のキャッシュ設定

ある特定の EJB コンポーネントで、EJB コンテナのキャッシュ設定を上書きするキャッシュ設定を指定するには、その EJB コンポーネントの sun-ejb-jar.xml 配備記述子の <bean-cache> 要素を使用します。

EJB のキャッシュ設定は次のとおりです。

最大キャッシュサイズ

キャッシュ内の Beans の最大数。この設定は 1 より大きくしてください。デフォルト値は 512 です。値ゼロはキャッシュが無制限であることを示しますが、これは、キャッシュのサイズが「キャッシュアイドルタイムアウト」と「キャッシュのサイズ変更量」によって制御されることを意味します。EJB 配備記述子の対応する属性は、max-cache-size です。

キャッシュのサイズ変更量

キャッシュがサーバーによって処理されているときに作成または削除される Beans の数。有効な値はゼロから MAX_INTEGER までであり、デフォルトは 16 です。EJB 配備記述子の対応する属性は、resize-quantity です。

削除タイムアウト

ステートフルセッション Bean が非活性化状態 (バックアップストア内でのアイドル状態) でいられる時間。ある Bean へのアクセスがこの期間が過ぎたあとも発生しなかった場合、その Bean はバックアップストアから削除され、クライアントからアクセスできなくなります。デフォルトは 60 分です。EJB 配備記述子の対応する属性は、removal-timeout-in-seconds です。

選択内容の削除ポリシー

キャッシュからオブジェクトを削除するのに使用されるアルゴリズム。EJB 配備記述子の対応する属性は、victim-selection-policy です。選択肢は次のとおりです。

  • NRU (最近使用されていない): これがデフォルトですが、これは実際には擬似乱数選択ポリシーです。

  • FIFO (ファーストインファーストアウト)

  • LRU (最近の使用頻度がもっとも低い)

キャッシュアイドルタイムアウト

ステートフルセッション Bean またはエンティティー Bean がキャッシュ内でアイドル状態でいられる時間の最大値。この時間が経過した Bean は、非活性化されてバックアップストア内に格納されます。デフォルト値は 600 秒です。EJB 配備記述子の対応する属性は、cache-idle-timeout-in-seconds です。

更新間隔

読み取り専用 Bean がデータソースから更新される頻度。ゼロ (0) は、Bean が決して更新されないことを意味します。デフォルトは 600 秒です。EJB 配備記述子の対応する属性は、refresh-period-in-seconds です。注意: この設定に対応するカスタムフィールドは、管理コンソール内に存在しません。これを設定するには、「追加プロパティー」セクションの「プロパティーを追加」ボタンを使用してください。