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