0

Wenn mein Verständnis korrekt ist, führt der Container keine gleichzeitige Aufrufe an einen SLSB. Aufrufe werden serialisiert oder eine neue SLSB-Instanz wird erstellt. Meine Fragen sind:Gleichzeitige Zugriff Stateless Sessionbean von Singleton

Ist es sicher, auf den SLSB von einer Singletion zuzugreifen, die ConcurrencyManagement.BEAN hat, wo gleichzeitige Anrufe passieren können?

Und wenn es sicher ist, ist es auch sicher, eine EntityManager-Instanz innerhalb des SLSB zu verwenden, weil EntityManager nicht threadsicher ist und wenn die SLSB-Instanz zwischen verschiedenen Threads geteilt wird, wird der EntityManager auch zwischen den Threads geteilt.

Vielen Dank im Voraus!

Antwort

1

Ja für beide Fragen, es ist sicher. Eine Session-Bean, zustandslos oder statusbehaftet, könnte jeweils nur von einem Thread verwendet werden.

Von EJB 3.1-Spezifikation:

Der Behälter muss dafür sorgen, dass nur ein Thread kann eine staatenlos oder Stateful Session Bean Instanz zu jedem Zeitpunkt ausgeführt werden.

http://download.oracle.com/otndocs/jcp/ejb-3.1-pfd-oth-JSpec/

Bei 2 gleichzeitige Anrufe von Ihrem Singleton kommen, werden diese durch zwei verschiedene Instanzen von SLSB serviert werden.

Verwandte Themen