問題タブ [ejb-passivation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jakarta-ee - セッション スコープのマネージド Bean パッシベーション
JSF2 と Managed Beans について読んでいます。パッシベーションについて質問です。
私は最近、@Stateful
EJB のさまざまな使用例@SessionScoped
を求めまし@ManagedBean
た。
sessionscoped マネージド Bean とステートフル ejb の比較。
現在、ステートフル EJB はパッシベーションとアクティベーションに適格です。これにより、一時的に永続ストレージにパッシベートして、アイドル時のメモリ使用量を減らすことができます。マネージド Bean でこの機能を利用できるのは見たことがありません。@RequestScoped
そのため、マネージド Bean を使用し、@Stateful
代わりにショッピング カートなどには EJBを使用する必要があるのではないかと考えました。@Sessionscoped
管理対象 Beanを使用して、最小限のユーザー情報を保存します。
これは正しいです?これに関するガイドラインはありますか?
java - EJB Bean パッシベーション
がejbPassivate()
呼び出されると、ステートフル セッション Beanは通常削除されますが、エンティティ Beanとステートレス Beanはプールされます。つまり、パッシベーションには適用できません。
別の記事で、アクティブ化とパッシベーションはステートフル セッション Beanとエンティティ Beanにのみ適用できると読みましたが、これはエンティティ Beanとステートレス Beanがプールされているという主張とは対照的です。
パッシベーションはどの Bean に適用され、適用すると実際に何が起こるのでしょうか?
jakarta-ee - アクティベーションとパッシベーションは、デシリアライゼーションとシリアライゼーションと同じ概念ですか?
私は EJB を扱ったことがありません。EJB のコンテキストで「アクティベーション」と「パッシベーション」という用語を時々耳にします。おそらく、これらの用語は通常の POJO オブジェクトにも同様に適用できます。
これら 2 つの概念は、それぞれ非シリアル化とシリアル化の概念の別の名前ですか、それともこれ以上のものがありますか?
wildfly - wildfly で、EJB3.2 固有の「passivationCapable=false」を使用せずにステートフル Bean パッシベーションを無効にする方法
クラスターをセットアップしました。プロジェクトで EJB 3.1 を使用しています。どうにかしてステートフル セッション Bean のパッシベーションを無効にすることはできますか?
java - ステートレス Bean の参照が原因で、ステートフル Bean のパッシベーションが失敗する
Weblogic 12c (具体的には 12.1.3) を使用して (EJB 3.1) アプリケーションをデプロイしています。
私のアプリケーションには、およびアノテーションをそれぞれ使用して注入されたおよび他のBean@Stateful
への参照を保持する Bean があります。EntityManager
@Stateless
@PersistenceContext
@EJB
私の問題は、ステートフル Bean がパッシベーションされてディスクにシリアル化されているときに、Weblogic がステートレス Bean への参照もシリアル化しようとし、WeblogicNotSerializableException
によって注入された Bean のプロキシへの参照をスローすることです。比較のために - EntityManager 参照はパッシベーションされ、まったく問題なく再アクティブ化されます。問題を引き起こすのはステートレス Bean だけです。
メソッドを定義@PrePassivate
し@PostActivate
てコードを機能させることができることはわかっていますが、コンテナがステートレス Bean の参照を独自に処理できるようにする方法はありますか?
問題を再現するサンプルコードを添付します。
リモート Bean インターフェース:
ステートフル Bean の実装:
NoState ローカル インターフェイス:
NoState Bean の実装:
そして最後に、 PassivateBean がディスクにパッシベートされているときに発生する例外:
jakarta-ee - @PrePassivate および @PostActivate アノテーションが役立つのはいつですか?
@PrePassivate
すべての EJB チュートリアルでおよびアノテーションを見てきました@PostActivate
が、それらがどのように役立つかわかりません。それらが必要なシナリオは何ですか?