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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.