29.4.2. エンティティ Bean のライフサイクル

JBoss デフォルトの設定では、特定のエンティティ bean のインスタンスの中で、メモリ内で有効なインスタンスは1つのみです。これはすべてのキャッシュ設定およびすべての commit-option タイプに適用されます。このインスタンスのライフサイクルはそれぞれの commit-option とは異なります。
  • コミットオプション A の場合、 このインスタンスはキャッシュされトランザクション間で使用されます。
  • コミットオプション B の場合は、 このインスタンスはキャッシュされトランザクション間で使用されますが、トランザクションの終わりでダーティと印がつけられます。つまり、新しいトランザクションの開始時に ejbLoad を呼び出す必要がでてきます。
  • コミットオプション C の場合は、 このインスタンスはダーティの印が付けられてキャッシュから解放され、さらにトランザクションの終わりに非活性化用にマークが付けられます。
  • コミットオプション D なら、バックグラウンドの更新スレッドが定期的に ejbLoad をキャッシュ内の古い bean で呼び出します。これ以外、このオプションは Aと同じように動作します。
bean に非活性化のマークが付けられると、bean は非活性化キューに配置されます。 各エンティティ bean コンテナーには定期的に非活性化キューに配置されている bean を非活性化する非活性化スレッドがあります。同じプライマリキーの bean へのアクセスをアプリケーションが要求すると、bean は非活性化キューから引き出され再利用されます。
例外またはトランザクションロールバックでは、エンティティ bean インスタンスは完全にキャッシュから破棄されます。非活性化キューに配置されることやインスタンスプールによって再利用されることもありません。非活性化キューをのぞき、エンティティ bean インスタンスのプーリングはありません。