Performance von EJBs vs. normalen Pojos/Seam-Komponenten

JanHH

Top Contributor
Hallo,

ich habe gelernt, dass man bei Verwendung von EJBs bestimmte Sachen nicht tun darf bzw. sollte, um die Dinger so wie gedacht nutzen zu können. Konkret gehts dabei um Zugriff auf Dateien und eigene synchronized-Methoden.

Ich hab jetzt aber eine Webanwendung (seam 2), wo es pro User eine Session Scope Komponente gibt, die genau das tun muss. Ich tendiere also dazu, diese nicht als EJB sondern als normales Pojo-Objekt zu implementieren (die ja von seam genauso per DI usw. benutzt werden kann). Habe allerdings auch gelernt, dass die Performance von EJBs gegenüber normalen Pojos oder JSF-managed-Beans deutlich bessser sein soll (Faktor 10, hiess es).

Bei der Anwendung sollen bei maximaler Auslastung ca. 100-200 User gleichzeitig angemeldet sein und kontinuierlich damit arbeiten.

Kann man das dann mit Seam-Pojos machen, oder ist da die Performance von EJBs zwingend notwendig, oder ist das was ich geschrieben hab eh alles Unisnn? Mir fehlen da die eigenen Erfahrungen, kann mich also nur darauf stützen, was ich selber erzählt bekommen hab.

Wäre also gut zu wissen wenn ich die Anwendung wie geplant implementieren kann oder mir doch noch ein ganz anderes Konzept überlegen muss.

Gruß+Danke
Jan
 
S

Sym

Gast
Bei Seam 2.x ist das Problem, dass die DI bei jedem Aufruf getätigt wird. Dh Du hast zwar eine Bean im Sessionscope oder ähnliches, aber bei jedem Methodenaufruf kostet die DI viel Zeit. Das Problem hast Du bei EJB 3.1 (bei 3.0 bin ich nicht sicher) nicht mehr.

Ich verstehe aber Deinen Anwendungsfall nicht korrekt. Du hast Dateien irgendwo im Filesystem und möchtest diese Laden. Das sollen dann mehrere Benutzer gleichzeitig tun?
 

JanHH

Top Contributor
Ja, hin und wieder Zugriffe auf Dateien.

Ich denke, der DI-Overhead wird bei EJB 3.0 genauso sein, weil das ja auch da alles vom Seam-Komponenten-Container gemanaged wird, soweit ich weiss.

Dachte halt nur, wenn ich EJBs nutzen will, kommen so Sachen wie Dateizugriffe und Synchronized ganz kategorisch nicht in Frage.
 
S

Sym

Gast
EJB wird nicht vom Seam-Komponenten-Container gemanaged (wenn ich Dich jetzt richtig verstanden habe).

Ich verstehe auch noch nicht ganz, wofür der Synchronized Block nun sein soll. Zugriff auf Dateien erhältst Du in EJBs.
 

Ähnliche Java Themen

Neue Themen


Oben