본문 바로가기
IT/Java

[iBATIS 2.x] 트랜잭션 동시성 문제 있을까?

by yjacket 2010. 11. 16.

A, B 두개의 작업이 있다.

두 작업은 같은 SqlMapClient 객체를 통해 DB에 엑세스 한다.

A 는 10000개의 insert를 일괄처리하고, B 는 1개의 insert를 처리하는데,

만일 A가 트랜잭션중일때 B가 실행되어 예외가 발생한다면 A 작업이 롤백 될까?

 

다음은 테스트코드다.

 

 

이 테스트 코드의 실행결과, 데이터베이스에는 success() 메서드의 결과는 insert 되어 있었지만 error1, error2 메서드의 실행결과는 빠져있었다.

즉, A메서드가 실행중일때 B메서드에서 예외가 발생하여도 A 작업은 문제없이 실행된다.