87

ステートフル セッション Bean は次のように定義されます。

ステートフル セッション Bean オブジェクトの状態は、そのインスタンス変数の値で構成されます。ステートフル セッション Bean では、インスタンス変数は一意のクライアント Bean セッションの状態を表します。クライアントはその Bean と対話 (「対話」) するため、この状態は多くの場合、会話状態と呼ばれます。

ステートレス セッション Bean は次のように定義されます。

ステートレス セッション Bean ステートレス セッション Bean は、クライアントとの会話状態を維持しません。クライアントがステートレス Bean のメソッドを呼び出すと、Bean のインスタンス変数には、そのクライアントに固有の状態が含まれる場合がありますが、呼び出しの間だけです。メソッドが終了すると、クライアント固有の状態は保持されません。ただし、クライアントは、プールされたステートレス Bean のインスタンス変数の状態を変更することができ、この状態は、プールされたステートレス Bean の次の呼び出しまで保持されます。メソッドの呼び出し中を除いて、ステートレス Bean のすべてのインスタンスは同等であるため、EJB コンテナはインスタンスを任意のクライアントに割り当てることができます。つまり、ステートレス セッション Bean の状態は、すべてのクライアントに適用される必要があります。

ステートフル セッション Bean よりもステートレス セッション Bean を使用する利点は次のとおりです。

ステートレス セッション Bean は複数のクライアントをサポートできるため、多数のクライアントを必要とするアプリケーションのスケーラビリティが向上します。通常、アプリケーションは、同じ数のクライアントをサポートするために、ステートフル セッション Bean よりも少ないステートレス セッション Bean を必要とします。

頭に浮かぶ疑問は、いつステートフル セッション Bean を使用する必要があるかということです。この問題についての私の素朴な理解では、できる限りステートレス セッション Bean を使用することに固執する必要があります。

ステートフル セッション Bean を使用する候補は何ですか? 良い例はありますか?

セッション Bean

4

2 に答える 2