Frage zum Statefull Session Beans Lebenszyklus

Status
Nicht offen für weitere Antworten.

Deadalus

Bekanntes Mitglied
Hallo,

Projekt sieht folgendermaßen aus: EJB Container mit Geschäftslogik(SessionBeans) und Datenmanagement(JPA) und Web Client auf JSF Basis.

Ich wollte man fragen wie genau das mit Statefull Session Beans aussieht.

Erzeugt werden sie, wenn ich mich nicht täusche, beim 1. Aufruf einer SessionBean Methode.

Aber wann werden die SessionBeans wieder zerstört (beendet)? Muss dazu immer explizit eine im Bean mit "@Destroy" annotierte Methode aufgerufen werden, oder werden die Beans auch gelöscht wenn ich im die BrowserSession terminiere? (request.getSession().invalidate(); )
 

JanHH

Top Contributor
Stateful EJBs werden vom Application Server frei nach dessen Gusto verwaltet, man hat auf den Lebenszyklus keinen Einfluss. Sinn dessen ist, dass der AS unter performance- und speicheraspekten optimieren kann. In der Regel werden sie soweit ich weiss nicht per Session (bzw. bei Bedarf) neu erzeugt, sondern in einem Pool verwaltet. Daher die Create- und Remove-/Destroy-Annotationen, mit denen man sie initialisieren und nach Benutzung wieder in einen "jungfräulichen" Zustand zurücksetzen kann, so dass sie wieder in den Pool zurückkommen. Also an diese Regeln halten, einfach benutzen und nicht weiter drüber nachdenken.. der AS wirds schon richten.
 

Deadalus

Bekanntes Mitglied
Hmm ich hoffe mal du hast recht.

@Destroy sollte das SessionBean allerdings wirklich entfernen. Zum zurücksetzen gibt es ja @PreDestroy.
 

FArt

Top Contributor
Na ja, so ganz nach Gusto macht das der Container auch nicht.

Die Statusübergänge (und somit auch die Callbacks) sind in der EJB Spec im Absatz 4.4 dargestellt.
Timeouts (z.B. bzgl. Passivierung und löschen von inaktiven SFSB) werden am Container konfiguriert (oder am Appserver-spezifischen Deploymentdeskriptor). Hier sind aber tatsächlich nur die Statusübergänge und bestimmt Abfolgen definiert (z.B. newInstance->DI->PostConstruct->Init zum Erstellen).

Das ist die Sicht des EJB Containers (und des "Clients"). Ob eine Beaninstanz z.B. über einen Cache wiederverwendet wird, ist dabei absolut irrelevant und hat mit den Callbacks nichts zu tun, auch nicht mit "destroy".
Die Callbacks sind nur dazu da, die eigenen Ressourcen sinnvoll behandeln zu können.

Ein SFSB sollte immer nach Gebrauch aktiv beendet werden. Wenn also ein SFSB aus einem Servlet verwendet wird, sollte man über den Lifecycle des Servlets auch das SFSB entsprechend steuern.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm Frage zu karaf-Tutorium zum Programmieren von Service und Consumer Allgemeines EE 3
A Frage Umfang JEE Allgemeines EE 5
J Frage zu Dependecy Injection Allgemeines EE 10
pkm Frage zu Get- bzw. Postrequest in JSP. Allgemeines EE 1
pkm Frage wegen AJAX-Zugriff auf ein Servlet Allgemeines EE 1
Tort-E Grundsätzliche Frage -> Lokale Installation Allgemeines EE 2
E Frage zu Wildfly und Hibernate OGM Allgemeines EE 0
S Frage zu Jersey + Hibernate Allgemeines EE 1
Shams Frage zu Dowload von JAVA SDK Allgemeines EE 5
J Frage zur Projektarchitektur Allgemeines EE 2
E Generelle Frage zu CDI mit JBoss AS 7.1.1 and Jave EE 6 Allgemeines EE 4
NoXiD JSF Frage zu Datenstruktur Allgemeines EE 2
S EJB Frage Allgemeines EE 10
2 Frage zu JNDI Allgemeines EE 13
E Entities im JSF/GUI-Layer, Frage zu 3-Layer-Model Allgemeines EE 2
G Allgemeine Frage zu Authentifizierung mittels Servlet API Allgemeines EE 2
B Wicket, Hibernate, H2 memDB Anfänger Frage Allgemeines EE 2
G Architektur- Frage Allgemeines EE 5
P Frage zu Java EE Design Patterns Allgemeines EE 3
M Frage zu Einloggen/Ausloggen - Features Allgemeines EE 4
M Frage zum Einsatz eines loggers Allgemeines EE 2
T Einstieg JEE: Frage für Frage bis zum Erfolg :-) Allgemeines EE 28
P Allg. Frage Eclipse EE & Xml Allgemeines EE 2
S JSTL / Spring Webflow Frage Allgemeines EE 2
S jsp include Frage Allgemeines EE 2
B Tomcat Manager - .war Datei hochladen. Einfache Frage Allgemeines EE 5
S Frage zu Taglib und Expression Language Allgemeines EE 5
B J2EE Frage Allgemeines EE 4
F Verständnis-Frage zu den vielen Frameworks Allgemeines EE 17
D Frage zum Verlassen eine JSF-Eingabefeldes Allgemeines EE 6
D Frage zu DataModel, DataModelSelection und Seam Allgemeines EE 3
H Frage zu JSF Allgemeines EE 5
G Generelle Java EE Frage zum Einstieg Allgemeines EE 3
M Allgemeine Frage zu Java Logging (JLA, Log4J) Allgemeines EE 5
N JSF - Frage zu Managed Beans und DataTable Allgemeines EE 4
S Frage zu JSF und MyFaces Komponenten: Teilbereiche neu laden Allgemeines EE 2
P Eine Frage zum Thema Applikationsaufbau Allgemeines EE 3
F [Hallo] Frage zu Hibernate Mapping und Vererbung Allgemeines EE 3
S allgemeine Frage zu Spring (AOP) Allgemeines EE 2
J Frage zu Jboss Allgemeines EE 7
G Anfänger-Frage: EJB Programmierung bzw. Konfiguration Allgemeines EE 6
M jsf Design Frage Allgemeines EE 3
J jsp:useBean Frage Allgemeines EE 4
megachucky JPA - Query.getResultList() Frage Allgemeines EE 3
M Hibernate Criteria frage Allgemeines EE 2
G Allgemeine Java Web Service Frage Allgemeines EE 4
1 Frage zu Struts und findForward Allgemeines EE 4
D Frage SSL und nicht SSL Allgemeines EE 3
E Warum geht das nicht (EL Frage)? Allgemeines EE 3
T Design/Performance-Frage beim servlet (static oder nicht) Allgemeines EE 35
E forEach Loop EL - Frage Allgemeines EE 2
G Design Frage Allgemeines EE 2
A EJB-Design Frage Allgemeines EE 2
F Frage zur guten Architektur einer WebApp Allgemeines EE 2
thE_29 Allg. Frage zu JSP/Servlets Allgemeines EE 2
flashfactor Frage zu Session-Lebensdauer Allgemeines EE 3
A Frage zu Servlets Allgemeines EE 5
P generelle Frage zum RequestDispatcher Allgemeines EE 2
A (EJB)Session abhängige Parameter in POJO lesen Allgemeines EE 3
O JSF / Primefaces Session handling Allgemeines EE 1
I Session löschen in Bean (Session Beans) Allgemeines EE 1
J Hello World mit Stateless Session Bean - Was mache ich falsch? Allgemeines EE 2
H Shared Session in Webmodulen Allgemeines EE 2
J Unterschied zwischen HttpSession und Stateful Session Bean Allgemeines EE 3
R Wie eine stateful session bean erneut "aufgreifen" Allgemeines EE 22
P Unterschied Session Scope / Stateful Session Bean Allgemeines EE 6
F Session zerstören Allgemeines EE 12
A Im PhaseListener auf Stateful Session Bean zugreifen Allgemeines EE 6
G Session Allgemeines EE 6
E Session Problem Allgemeines EE 9
G Session neu!? Allgemeines EE 7
M Fehler bei Javamail Session mit Glassfish 3 Allgemeines EE 3
Java.getSkill() verbindung / connection in session speichern Allgemeines EE 4
MQue Session - Cookie Allgemeines EE 27
MQue Session Exception Allgemeines EE 5
M j_security_check Login und Session-ID Allgemeines EE 2
S Session in eine andere Anwendung übergeben Allgemeines EE 2
F Session abgelaufen und direkter Aufruf Allgemeines EE 10
Y myFaces und Hibernate Session Handling Allgemeines EE 7
S tomcat session timeout - und was danach? Allgemeines EE 1
Q Form Based Authentication - Session Attribute ? Allgemeines EE 2
A Session Bean mit Local-Interface nutzen Allgemeines EE 3
G Session Cookies Allgemeines EE 2
Q Session Tracking - Wie macht mans richtig! Allgemeines EE 3
B Session Daten pro User merken Allgemeines EE 9
H [JSP JSF] Session Timeout und Redirekt zur Startseite Allgemeines EE 5
I Session-Attribute von Client zugänglich? Allgemeines EE 6
G session token Allgemeines EE 3
K tomcat: session-unabhängiges speichern Allgemeines EE 3
S Struts und Session Allgemeines EE 2
J Tomcat mit eigener Session-Implementierung Allgemeines EE 15
Y JSF - Session Handling Firefox Allgemeines EE 3
Y JSF - Session invalidate bei outpulink möglich? Allgemeines EE 4
R Session Tracking & Cookies Allgemeines EE 3
B Variablen ausserhalb der session ? Allgemeines EE 2
T Zugriff auf Session-Objekte in JSP Allgemeines EE 2
W Session tracking mit URL rewrite - Session weg! Allgemeines EE 4
G Neue Session bei der Verwendung von Frames Allgemeines EE 3
RaoulDuke EJB 3.0 - Exceptions aus Methoden einer Session Bean Allgemeines EE 2
T Session-Problem Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben