Вот пример на Java, в котором применены пропагейшины(расспространения):
!!! Две транзакции в один момент времени работать не могут.
Возможные варианты Propagation:
1. Mandatory
если есть уже открытая транзакция - используется
нет - ошибка
2. Required
если есть - используем
если нет - создаем
3. RequiresNew
если есть - то пауза в существующей, создается новая и ипользуется она для данного метода
если нет - то создаем
method2
-----------> --------------->
--------------->
method1
4. Supports
если есть - используем
если нет - то без TX
5. NotSupported
если есть - то пауза, и без TX в поточном методе
нет - просто без TX
6. Never
Если есть - то ошибка
нет - то без TX
7. Nested (в Spring встречается)
Передается менеджеру БД всю ответсвенность за транзакции с надеждой, что он умеет с ними работать.
Термины:
TX - commit, rollback, begin transaction
DDL - create, alter, drop
DML - insert, update, delete
QUERY - select
XA - транзакции двухфазного коммита(сначала каждай подтразакция отдельно, а потом общий коммит, если хоть одна сорвалась, все откатываются)
Transaction demarkation - это CREATE TRANSACTION ....(все что между ними)... END
Можно почитать:
JTA
spring referance (TX)
@Transaction( propagation=... )
void method1() {
...
}
@Transaction( propagation=... )
void method2() {
...
method1();
...
}
!!! Две транзакции в один момент времени работать не могут.
Возможные варианты Propagation:
1. Mandatory
если есть уже открытая транзакция - используется
нет - ошибка
2. Required
если есть - используем
если нет - создаем
3. RequiresNew
если есть - то пауза в существующей, создается новая и ипользуется она для данного метода
если нет - то создаем
method2
-----------> --------------->
--------------->
method1
4. Supports
если есть - используем
если нет - то без TX
5. NotSupported
если есть - то пауза, и без TX в поточном методе
нет - просто без TX
6. Never
Если есть - то ошибка
нет - то без TX
7. Nested (в Spring встречается)
Передается менеджеру БД всю ответсвенность за транзакции с надеждой, что он умеет с ними работать.
Термины:
TX - commit, rollback, begin transaction
DDL - create, alter, drop
DML - insert, update, delete
QUERY - select
XA - транзакции двухфазного коммита(сначала каждай подтразакция отдельно, а потом общий коммит, если хоть одна сорвалась, все откатываются)
Transaction demarkation - это CREATE TRANSACTION ....(все что между ними)... END
Можно почитать:
JTA
spring referance (TX)
Комментариев нет:
Отправить комментарий