JEE Pattern: MDB delegiert an Stateless Session Bean

Gast #2667556
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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren