ステートフルセッションBean(SfSB)を、通常のJavaクラスのインスタンスに非常に近いものとして視覚化するのが最善です。SfSBのインスタンスを検索(または注入)すると、コンテナーがSfSBのインスタンスを作成し、インスタンスを返します。次に、他のJavaインスタンスと同じように、そのインスタンスを操作します。
つまり、インスタンスをセッションに保存したり、ディスクにシリアル化したりすることができます。
詳細は、使用しているインスタンスが実際には実際の基盤となるSfSBインスタンスのプロキシであるということです。実際のSfSB自体ではありません。
ローカルプロキシでBeanを呼び出す場合、そのBeanをメモリに明示するのはコンテナジョブです。Beanのパッシベーションとアクティブ化は、バックグラウンドで実行されます(ただし、Beanのライフサイクルを通じてプロセスを利用することはできます)。
コンテナがパッシベーションされたSfSBを見つけるために必要な情報はすべて、使用しているプロキシに保存されますが、これは不透明です。あなたはそれについて心配する必要はありません。
したがって、一般的なWebベースのシナリオでは、ライフサイクルは、Beanインスタンスを取得し、それをWebセッションに格納してから、通常のように使用することです。コンテナが、スペースなどを確保するためにBeanを不動態化する必要があると判断した場合、自動的に不動態化されます。ユーザーが戻ると、アプリはWebセッションからインスタンスをプルし、呼び出しを行います。その時点で、Beanが不動態化されている場合、コンテナは自動的にBeanをアクティブ化します。このメカニズム全体はコンテナに依存しますが、透過的です。覚えておくべき重要なことは、他のJavaオブジェクトと同じように、コンテナーから取得したSfSBに固執する必要があるということです。
最後の注意点は、SfSBのパッシベーションを長時間許可すると、コンテナによって自動的に削除されることです。