In che modo è possibile incapsulare azioni non di database in transazioni?Transazioni applicazione non database
Ad esempio, supponiamo di avere un certo numero di metodi/funzioni chiamati in sequenza, alcuni aggiornano il database, alcuni file di aggiornamento sul filesystem, alcuni parametri di aggiornamento nella HttpSession, alcuni aggiornano la cache, ecc. Se uno dei questi ultimi falliscono, come aggiornare la sessione, come posso ripristinare tutte le altre modifiche sul file system, nel DB, ecc.?
L'ambiente è un container Java Servlet come Tomcat con qualcosa di simile Struts2, ogni RDBMS, uno strato di persistenza come Hibernate o Ibatis, ecc