2012-01-23 8 views
0

セッションBeanのさまざまなタイプと、JSF用のバッキングBeanでそれらを適切に使用する方法は少し不明です。backingbeans内のステートレスおよびステートフルセッションBeans

1回の呼び出しでビジネスプロセスを実行できるときに使用するステートレスセッションビーン。 ビジネスプロセスを複数のステップで実行する必要があり、呼び出しの間にサーバー上のデータを「キャッシュ」する必要がある場合、ステートフルセッションBeanが使用されます。これらのタイプは、異なるパフォーマンスと、考慮する必要があるものがあります。私はこの部分を理解していると思いますが、ユーザーを取得し、ユーザーに代わって単一タスクの処理を行うステートレスセッションビーンがあるとしましょう。

次に、そのステートレスセッションビーンによって取得されたユーザーをJSFで一定期間利用できるようにします。あなたは、このステートレスセッションビーンをセッションコープバッキングビーンに注入しますか?この注入されたステートレスセッションビーはどうなるのですか?セッションコピーされたバッキングBeanが削除される前にプールに返されませんか?だから、これは潜在的にリソース豚になる可能性がありますか?

次にステートレスセッションビーンをステートフルセッションビーンにして、バッキングビーンをリクエストスコープにすることを考えました。

backingbeansとEJBの異なるスコープについて少し混乱します。

+0

おそらく重複した回答を伴う関連する質問:http://stackoverflow.com/questions/8887140/jsf-request-scoped-bean-keeps-recreating-new-stateful-session-beans-on-every-req – BalusC

答えて

0

HttpSessionはEJBセッションと異なります。したがって、セッションスコープのマネージドBeanからSLSBを呼び出すと、プールからのSLSBだけが使用され、要求が完了するとプールに返されます。したがって、そのような単一のSLSBはクライアント管理対象Beanにバインドされません。ユーザーセッションを管理するためのリクエストスコープではなく、セッションスコープのマネージドBeanを持つ方が良いと思います。

関連する問題