WebSphere Application Server では、EJB 仕様で必要な 2 つの動作をオーバーライドすることができます。 これは、アプリケーションが、これらの Bean データ管理を少し異なる方法で処理することにより 利益を得る可能性があるためです。
ただし、 EJB コンテナーがすべての findBy メソッドでこのアクションを自動的に実行することが 非効率的で浪費的となるシナリオもあります。この例としては、 findBy 照会で最新データが使用されることをアプリケーション自体が確認する場合や、 アプリケーションが、照会結果の一部として現在以外のデータを許容できる場合があります。
WebSphere Application Server により、アプリケーション制御下で同期化処理を開始したり、 ご使用のアプリケーション内で特定の EJB タイプに対して、コンテナー管理された同期を使用不可にしたり することができます。 これらの機能を注意して使用することにより、データ保全性を犠牲にすることなく、 ご使用のアプリケーションのパフォーマンスを向上させることができます。詳細は、エンティティー Bean およびデータ・ストアの同期の操作 で取り上げています。
EJB 仕様では、EJB コンテナーは、トランザクションがコミットされるときに、 そのトランザクション内のすべてのエンティティー Bean 上でユーザー提供の ejbStore メソッドを 呼び出す必要があります。コンテナー管理パーシスタンス (CMP) Bean (Bean 管理パーシスタンスではなく) の場合、CMP Bean 上のこのメソッドは空であることが多いため、 通常、この操作は必要ありません。メソッドが空ではない場合でも、 アプリケーションでは、 現行トランザクション中に Bean の永続状態が変更される場合にのみ、 このメソッドが呼び出される必要があります。
WebSphere Application Server は、 この動作が、アプリケーション内の特定の EJB タイプに対して必要かどうかをユーザーが示すためのメカニズムを提供します。 詳細は、修正していない EntityBean インスタンス上での ejbStore 呼び出しの回避 で取り上げています。