# Alternative zu static im Kontext einer SSB



## Guest (15. Feb 2008)

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 (21. Feb 2008)

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.


----------



## Guest (25. Feb 2008)

OK, danke. Letztendlich ist es doch Singleton geworden.


----------



## Robin479 (2. Mrz 2008)

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.


----------



## Guest (2. Mrz 2008)

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.


----------

