Lose Kopplung zwischen Session Beans

Status
Nicht offen für weitere Antworten.
F

fu2r

Gast
Hallo,

ich habe in meiner Anwendung verschiedene Session Beans, die voneinander nichts wissen. Zur Laufzeit soll ein Bean eine Aktion durchführen und dann eine (vorher nicht festgelegte) Liste von anderen Beans darüber benachrichtigen, die ihrerseits daraufhin wieder andere Aktionen vornehmen. Ich könnte mir vorstellen, dass mein erstes Bean sich die Liste der zu informierenden Beans eventuell aus dem JNDI holt. Dazu müssten sich diese allerdings in einem ganz bestimmten Bereich registrieren und zwar während oder direkt nach dem Deployment. Ich suche jetzt nach einer Möglichkeit, diese Registrierung vorzunehmen.

Das Ganze soll ähnlich funktionieren, wie zum Beispiel Listener in Swing.

Eine Alternative wäre sicherlich JMS, aber das ist vielleicht ein Overkill für eine so einfache Operation.

Gibt es da Möglichkeiten?

Gruß,
Frank
 

FArt

Top Contributor
mache es gleich richtig: JMS. Was meinst du denn mit Overkill?

Ansonsten müsstest du die Grundfunktionalität nachbilden...
 
F

fu2r

Gast
Ja, das denke ich inzwischen auch. Ich habe jedoch noch ein Verständnisproblem. Ich will, dass die Aktion, die der "Listener" durchführt, ein Teil meiner Transaktion ist. Das heißt, ich warte auf die Antwort und erst dann verlasse ich meine Methode und somit die Transaktion. So wie ich JMS verstanden habe, kann die Message durchaus erst einmal persistent abgelegt und erst zu einem späteren Zeitpunkt verarbeitet werden. Das nützt mir natürlich nichts.
 

FArt

Top Contributor
JMS kann die Antwort persistent ablegen und man kann einen expliziten Acknowledge ebenfalls über die Transaktion laufen lassen.

Szenario: ich empfange die Nachricht, verarbeite sie. Bei der Verarbeitung (transaktionielle Aktionen auf der DB) tritt ein Fehler auf. Sowohl der Empfang der Message als auch die Änderungen in der DB werden zurückgerollt.
 
F

fu2r

Gast
Mein Anwendungsfall ist eher anders herum. Ich bin in einer Verarbeitung (Transaktion), versende eine Nachricht an einen oder (nacheinander) an mehrere Empfänger. Sobald einer eine negative Antwort liefert, dann muss ich meine Transaktion zurückrollen. Gleichzeitig sollen auch die Aktionen von allen vorherigen Empfängern zurückgerollt werden.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben