2012-10-19 2 views
3

현재 시나리오에서 JDBC에서 트랜잭션을 열고 준비된 문을 사용하여 저장 프로 시저를 호출하는 것보다, 스토어 프로 시저를 호출 한 후 스토어드 프로 시저에서 트랜잭션과 커밋이 있고 JDBC 트랜잭션을 커밋하는 다른 호출이있다. 이제 외부 JDBC 트랜잭션이 Rollback을 얻고 스토어 프로 시저의 내부 트랜잭션이 이미 커밋 된 롤백이되어야한다. 어떤 신체든지 이것에 관하여 아이디어가 있는다. 감사의 말을 전한JDBC에서 외부 트랜잭션이 롤백을받을 때 이미 커밋 된 저장 프로 시저에서 선언 된 트랜잭션을 롤백하는 방법

+4

무언가가 커밋되면 커밋되고 처리됩니다. 커밋 된 트랜잭션은 롤백 할 수 없습니다. 필요한 경우 저장 프로 시저에 커밋하지 마십시오 –

+0

말은 맞습니다. 저 지르다. 관계형 데이터베이스 드라이버는 사용 사례에 따라 저장 지점을 제공하기도하지만 외부 트랜잭션을 롤백하지 않고 자체 롤백 할 수있는 내부 트랜잭션의 상태를 저장할 수 있습니다. 운전자를위한 저장 지점 지원을 살펴 보는 것이 도움이 될 수 있습니다. – akaIDIOT

+0

데이터베이스에서 실제로 중첩 된 트랜잭션을 지원하지 않는 한이 작업은 작동하지 않습니다. – EJP

답변

0

이 경우 JDBC 브리지를 통한 트랜잭션 경계 전파는 불가능합니다. Commit은 a_horse_with_no_name과 EJP와 같은 커밋이다.

관련 문제