環境変数かマーカー・インターフェースを使用すると、特定の EJB 型について、各 findBy 呼び出しの前に、その状態を永続ストレージと同期させないように指示することができます。
このタスクについて
特定の EJB 型について、各 findBy 呼び出しの前にその状態を永続ストレージと同期させないよう指示するには、次の 2 つのオプションが使用可能です。
- Bean のデプロイメント記述子内に EJB 環境変数を設定します。
- Bean 実装クラスにマーカー・インターフェースを実装させます。
常に単一のルート・クラスを拡張するような、多数の Bean インプリメンテーションがある場合は、2 番目の手法が特に有効です。この場合、ルート・クラスでマーカー・インターフェースを実装することで、このクラスを拡張するすべての Bean で振る舞いも継承させることができます。
プロシージャー
- EJB 環境変数技術を使用するには、任意の標準的な Java 2 Enterprise Edition (J2EE) 開発ツールを使用して、EJB デプロイメント記述子を編集します。
ツールのオプションについては、アセンブリー・ツール
を参照してください。
- 開発ツールを開始します。
- 処理したい Bean の EJB デプロイメント記述子を選択します。
- com/ibm/websphere/ejbcontainer/DisableFlushBeforeFind という名前の EJB 環境変数を作成します。
- この変数の型を java.lang.Boolean と設定します。
- この値を True に設定すると pre-find 同期を避けることができ、False に設定するとデフォルトの振る舞いを使用可能にします。
- 変更を保管します。
- マーカー・インターフェースを使用するには、Bean 実装クラスをコーディングして com.ibm.websphere.ejbcontainer.disableFlushBeforeFind インターフェースを実装します。
Bean インプリメンテーション・クラスは直接インターフェースをインプリメントする必要はありません。任意の親クラスがインターフェースをインプリメントできます。
インフォメーション・センターの 「参照」 > 「Developer 」> 「API documentation」セクションにある com.ibm.websphere.ejbcontainer パッケージを参照してください。
トランザクション中に実行される照会のデータ保全性の確保
特定の Bean 型の自動 pre-find 同期を
使用不可にすることを選択する場合は、他の方法を使用して、アプリケーションにおいてトランザクション中に実行された照会が、
すでに無効になっているデータ上では実行されないことを確認することが非常に重要です。
com.ibm.websphere.ejbcontainer.EJBContextExtension クラス (javax.ejb.EJBContext の拡張機能) で flushCache メソッドを使用すると、
アプリケーションで定義した時点で永続ストレージへの手動での同期を実行することができます。
EJBContextExtension およびその関連クラスの SessionContextExtension、EntityContextExtension、および MessageDrivenContextExtension について詳しくは、インフォメーション・センターの「参照」 > 「Developer」> 「API 資料」セクションにある com.ibm.websphere.ejbcontainer パッケージを参照してください。