Транзакции (свойство Atomicity) в EJB 3 применяются только к операциям базы данных - я прав?

StackOverflow https://stackoverflow.com/questions/3158861

Вопрос

Я знаю, что транзакции могут быть использованы для доставки атомности.

Как если methodOne() methodTwo() methodThree() Клубиются в одну транзакцию, если какой-либо из методов не удается, вся операция откатывается назад. Откат будет приведет к откату на уровне базы данных и в результате база данных будет доведена до состояния, как было до транзакции.

Это было полезно?

Решение

Транзакции (свойство Atomicity) в EJB 3 применяются только к операциям базы данных - я прав?

Нет, ты не. Транзакции применяются к транзакционные ресурсы, Спецификация Java EE распознавая три типа транзакционных ресурсов: базы данных JDBC, JMS-адресации и «другие транзакционные услуги, доступные через JCA».

Но что, если методы внесли изменения в государственные переменные или статические переменные или написали некоторые файлы в файловой системе?

Это не транзакционные ресурсы (если вы не пишете в файловую систему через разъем JCA для позже).

Другие советы

Ресурсы файловой системы не являются транзакционными. Так что вам придется откатывать ваши изменения обратно. Или вам придется посмотреть адаптеры ресурсов файловых систем, предоставляемые контейнерами.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top