BMT - obsługa Exception w transakcji JTA (User Transaction)

0

Mam pewna wątpliwość jak powinno być obsłużone Exception powstające w trakcie transakcji UserTransaction tx przy wywołaniu metody interfejsowej EJB BMT. Teoretycznie powinno się przechwycić takie Exception i wywołać rollback dla transakcji. I tu widzę pewna komplikacje bo metoda tx.rollback() ma swoje Exceptions do obsłużenia. Co z nimi zrobić? Jeżeli wypadnie takie Exception to rollback się nie wykona więc po przechwyceniu tego Exception nie mogę drugi raz wpisać tx.rollback() (np. w obsłudze przechwyconego Exception). Ponowne wyrzucenie tego Exception po przechwyceniu też nic nie da. Transakcja nie zostanie zamknięta bo kontener tego nie zrobi. Co wpisać więc w obsłudze Exception metody rollback()?

0

rollback rzuca tylko RuntimeException, prawda? Jak poleci taki wyjatek, to i tak znaczy ze jest powazny blad systemowy i raczej nic z tym nie zrobisz. Olej te wyjatki.

0

No właśnie nie są to RuntimeExceptions tylko:

SecurityException - Thrown to indicate that the thread is not allowed to roll back the transaction. 
IllegalStateException - Thrown if the current thread is not associated with a transaction. (można pominąć)
SystemException - Thrown if the transaction manager encounters an unexpected error condition. 

Co tam wpisać?

1 użytkowników online, w tym zalogowanych: 0, gości: 1