The Business Components for Java framework processes a rollback with the following steps:
Calls beforeRollback() on all TransactionListeners.
Invokes a database rollback.
Calls afterRollback() on all TransactionListeners.
If a JboException is thrown during the rollback cycle, the framework restores the database to the state it was in before rollback started, throws a new JboException, and exits.
Note: During the rollback cycle, the framework ensures that each TransactionListener's beforeRollback() and afterRollback() methods are invoked only once.