Image

transaction like

А вот мне тут интересно стало. Допустим я выполняю какую либо сложную операцию в сервлете не или еще где, не суть важно. Сама по себе операция является набором других более мелких операций. Ну например:

1. Получить файл.
2. Удалить старый файл.
3. Записать новый файл.
4. Сделать апдейт номер раз в ББДД.
5. Сделать апдейт номер два в ББДД.
6. Отправить письмо юзеру.
7. Отправить письмо админу.

В случае с ББДД используем транзакции, ну это понятно, либо все либо ничего. А хотелось бы привязать что нибудь вроде транзакций ко всему остальному. То есть если в моем гипотетическом примере на 3-ем шаге вылезает ошибка я хочу чтобы файл удаленный на 2-ом шаге "удалился обратно". Ну то есть вылез из временного хранилища и встал на место.

Хочется мне чтобы все это делалось в автоматическом режиме, а-ля транзакции. Речь идет о Java.

А теперь внимание вопрос, есть ли какое нибудь стандартное средство для этого или все делать ручками придется?