Wann wird Stateful Session Bean anstelle von Stateless Session Bean verwendet?

Eine Stateful-Session-Bean ist wie folgt definiert:

Stateful Session Beans Der Status eines Objekts besteht aus den Werten seiner Instanzvariablen. In einer Stateful-Session-Bean repräsentieren die Instanzvariablen den Status einer eindeutigen Client-Bean-Sitzung. Da der Client mit seiner Bean interagiert ("spricht"), wird dieser Status häufig als Konversationsstatus bezeichnet.

Eine zustandslose Session-Bean ist wie folgt definiert:

Zustandslose Sitzungsbeans Eine zustandslose Sitzungsbean unterhält keinen Konversationsstatus mit dem Client. Wenn ein Client die Methoden einer statusfreien Bean aufruft, enthalten die Instanzvariablen der Bean möglicherweise einen für diesen Client spezifischen Status, jedoch nur für die Dauer des Aufrufs. Nach Abschluss der Methode sollte der mandantenabhängige Status nicht beibehalten werden. Clients können jedoch den Status von Instanzvariablen in Pool-Stateless-Beans ändern. Dieser Status wird beim nächsten Aufruf der Pool-Stateless-Bean beibehalten. Mit Ausnahme des Methodenaufrufs sind alle Instanzen einer statusfreien Bean äquivalent, sodass der EJB-Container jedem Client eine Instanz zuweisen kann. Das heißt, der Status einer statuslosen Sitzungs-Bean sollte für alle Clients gelten.

Der Vorteil der Verwendung einer statuslosen Sitzungs-Bean gegenüber einer statusbehafteten Sitzungs-Bean ist folgender:

Da zustandslose Sitzungs-Beans mehrere Clients unterstützen können, bieten sie eine bessere Skalierbarkeit für Anwendungen, die eine große Anzahl von Clients erfordern. In der Regel benötigt eine Anwendung weniger statusfreie Sitzungs-Beans als statusbehaftete Sitzungs-Beans, um die gleiche Anzahl von Clients zu unterstützen.

Die Frage, die sich stellt, ist, wann man Stateful Session Beans verwenden sollte. Nach meinem naiven Verständnis der Materie sollte man eine zustandslose Session-Bean verwenden, wie er kann.

Was wären die Kandidaten, in denen man Stateful Session Bean verwenden sollte? Irgendwelche guten Beispiele?

Session Bean

Antworten auf die Frage(2)

Ihre Antwort auf die Frage