Forum: PC-Programmierung JEE Pattern: MDB delegiert an Stateless Session Bean


von Eisvogel (Gast)


Lesenswert?

Hallo,
tummeln sich hier ein paar JEE-Entwickler? Ich habe da eine 
grundsätzliche Frage:
Wenn mein System auf Messages reagieren soll, nehme ich eine MDB. Nun 
kann es bei der Verarbeitung der Nachricht zu temporären Fehlern 
(Datenbank nicht da, oder ein benötigter Service nicht verfügbar) 
kommen, und auch zu permanenten (Nachricht enthält Schwachsinn).
Die temporären Fehler möchte ich durch einen Retry lösen, also soll die 
Transaktion der MDB zurückgerollt werden. Die Nachrichten mit 
permanentem Fehler möchte ich verwerfen, also möchte ich die Transaktion 
committen.

Problem bei den Nachrichten mit permanentem Fehler ist dann, dass trotz 
einem Commit nichts von der Nachricht im System verbleiben soll. Also 
mache ich es derzeit so, dass die MDB an eine StatelessSB delegiert, 
diese enthält alle Business Logik und rollt bei jedem Fehler die 
Transaktion zurück. Die MDB fängt die Exception und entscheided 
ihrerseits, ob sie ihre TX zurückrollt.

Ist das eine gute Praxis? Wie macht ihr das in euren Projekten?

Viele Grüße!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.