Alternative zu static im Kontext einer SSB

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich bräuchte mal ein Cluster aus Hirnen, um ein Problem zu verarbeiten. Klinkt euch bitte ein. ;)

Folgende Situation. Eine SSB (Stateless Session Bean) darf keinen Zustand halten, sonst wäre sie nicht stateless.
Wenn in einer Methode der SSB eine bestimmte Initialisierung immer wieder gleich ist und etwas Zeit braucht,
sagen wir mal zwischen 200 und 500ms, würde es sich anbieten, diese Initialisierung einmalig auszuführen und
das Ergebnis immer wieder zu verwenden (es ist eine Art Puffer mit Metadaten, die sich nach dem Laden nie ändern).
Soweit so gut.
Mache ich dies im Konstruktor, habe ich gleiche Objekte in verschiedenen Instanzen der SSB. Je nach Datenmenge
ist dies keine Lösung, da sich die SSBs die gleichen Daten teilen sollten und nicht sie vervielfachen.
Andere Möglichkeit wäre eine statische Initialisierung (Singleton von mir aus), static ist aber auf einem AS eher
politisch nicht korrekt...

Fällt euch noch eine Alternative ein? Wie kann man es erreichen, dass sich mehrere Statless Session Beans eine
und die gleiche Instanz einer bestimmten Klasse teilen. Es wird nur lesend darauf zugegriffen und nach einem
erneuten Deployment soll das ganze neu initialisiert werden (u.U. andere Daten).
Noch etwas. Das ganze ist im Kontext des Aufrufs einer SSB-Methode, aber nicht unbedingt direkt in der SSB
selbst, sondern ehmm... auf der Persistence-Ebene.
 

karatekid

Mitglied
Du hast es dir ja bereits selbst beantwortet. Die einfachste Lösung, bau eine Serviceklasse als Singleton. Die Zugriffe sind nur lesend, du hast keinen Cluster ...nicht der beste Weg aber funktioniert. Korrekter wäre es natürlich mit einer MX-Bean zu realisieren. Dann bist du Spec konform und Clustersave.
 
R

Robin479

Gast
Du solltest diese Meta Daten in eine zusätzliche Klasse auslagern, und deine "SSB"s mit ein und der selben Instanz dieser metadaten Klasse konfigurieren.
 
G

Guest

Gast
Robin479 hat gesagt.:
Du solltest diese Meta Daten in eine zusätzliche Klasse auslagern, und deine "SSB"s mit ein und der selben Instanz dieser metadaten Klasse konfigurieren.
Das ist schon klar, die Frage war hier aber wie, ausser statisch, sprich mit Singleton.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben