Как можно инкапсулировать действия, не связанные с базой данных, в транзакции?
Например, скажем, у меня есть несколько методов / функций, вызываемых последовательно, некоторые обновляют базу данных, некоторые обновляют файлы в файловой системе, некоторые обновляют параметры в HttpSession, некоторые обновляют кэш и т. Д. Если одиниз последних происходит сбой, например, обновление сеанса, как я могу откатить все остальные изменения в файловой системе, в БД и т. д.?
Среда представляет собой контейнер сервлетов Java, такой как Tomcat, с чем-то вроде Struts2, любой RDBMS, постоянным слоем, таким как Hibernate или Ibatis и т. Д.