33.2.2. ケース 1: EJB 非活性化の存続


当初、 対話はステートフルセッション Bean 用に設計されていました。 EJB3 仕様がステートフルセッション Bean を拡張永続コンテキストのホストとして定義するためです。 Seam は Seam 管理の永続コンテキスト を導入し、この仕様の制約のいくつかに対処します。いずれのコンテキストもステートフルセッション Bean で使用可能です。
ステートフルセッション Bean をアクティブにしておくためには、 クライアントにステートフルセッション Bean への参照を持たせておく必要があります。 Seam の対話コンテキストはこの参照用に最適の場所です。 つまり、 ステートフルセッション Bean は対話コンテキストの間はアクティブのままとなります。 さらに、 @PersistenceContext(EXTENDED) アノテーションを付与されたステートフルセッション Bean にインジェクトされる EntityManager は、ステートフルセッション Bean にバインドされ Bean の寿命を通してアクティブであり続けます。 @In アノテーションでインジェクトされる EntityManager は Seam によって管理され対話コンテキストに直接保存されるため、 対話 の間はアクティブであり続け、 ステートフルセッション Bean とは無関係になります。
また、 Java EE コンテナもステートフルセッション Bean の非活性化を行えますがこの方法は問題となる場合があります。この処理をコンテナに任せず、 ステートフルセッション Bean のそれぞれの呼び出し後に Seam にそのエンティティインスタンスの参照をステートフルセッション Bean から現在の対話にそして HTTP Session に転送させます。 これによりステートフルセッション Bean の関連フィールドを無効化にします。次に Seam はこれらの参照を後続する呼び出しの冒頭で復元します。 Seam はすでに永続マネージャを対話に保存しているため、 ステートフルセッション Bean の非活性化や活性化はアプリケーションに悪影響は与えません。

重要

アプリケーションが拡張永続コンテキストへの参照を持つステートフルセッション Bean を使用し、 その Bean の非活性化が可能である場合は、 単一インスタンスまたはクラスタいずれを使用するかに関係なく MEI を 使用する必要があります
ステートフルセッション Bean で非活性化を無効にすることができます。 JBoss Wiki にある Ejb3DisableSfsbPassivation ページで詳細をご覧ください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat