내 응용 프로그램에는 데이터베이스에 대한 많은 커밋이 여러 가지 방법으로 순차적으로 수행되는 여러 단계가 있습니다. 예 :봄과 최대 절전 모드를 사용하는 중첩 된 트랜잭션
A -> B -> C
-> D
->E
-> F
-> G
C. A가 B를 호출하는 호출이어서 B는 D. D 등등 E를 호출하고, 호출한다. 이러한 모든 메소드에는 일부 데이터베이스 조작이 있습니다. PROPAGATION_REQUIRED
(선언적 트랜잭션 관리 - 봄 권장 방법)에서 알 수 있듯이 E이 성공적으로 완료되면 트랜잭션 (및 E의 작업이 커밋됩니다). 이제 약간의 예외로 인해 F이 롤백으로 이어질 수 있습니다. 내가 갖고 싶습니다 무엇부터 시작하여 롤백합니까 했습니다. 이것을 선언적 트랜잭션 관리를 통해 사용할 수 있습니까? 아니면 프로그래밍 방식의 트랜잭션 관리를 사용해야합니까?
감사합니다.
내가 완전히 동의 한 것입니다 (이
A
에 의해 시작 하나의 거래이기 때문에, 다른 방법으로 전파) 시나리오에서,F
의 실패가 전체 트랜잭션을 롤백 것을 의미 내가 읽을 때까지 (어딘가 - 찾을 수 없다) 메소드가 완료 되 자마자 커밋이 일어난다. 나는 여기에서 이해가 잘못되었다고 생각한다. 실제 커밋은 언제 발생합니까 (명시 적으로 수행 할 필요는 없습니다.) –트랜잭션을 시작한 메소드가 완료되면 커밋이 발생합니다. 이 경우에 'A'입니다. – Bozho
괜찮습니다. 큰. 정말 고맙습니다. –