여러개의 Connection
- 작성자 :
- 강*주
- 작성일 :
- 2011-11-21 19:18:13
- 조회수 :
- 1,700
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하십니까..
다름이 아니라 Ibatis 에서 여러개의 Connection을 얻어 쓰고 싶으나
어떻게 하는지 몰라서 여쭤봅니다..
예를 들자면
con1 = getSqlMapClient();
con2 = getSqlMapClient();
try{
con1.startTransaction(); //con1에대한 트랜젝션 시작
con1.insert("TEST1");//로직실행 에러나면 실패
con2.insert("TEST2");//무조건 저장
con1.commitTransaction();//con1에대한 트랜젝션 컴잇
}catch(e){
//에러발생
}finally{
con1.endTransaction(); //con1.에대한 트랜젝션 종료
}
이렇게 작성하게 되면
에러가 날경우 con1 과 con2 가 같은 트랜젝션을 타버립니다.
어떻게 해야 con1 과 con2 가 다른 트랜젝션을 탈수 있나요??
감사합니다.. 수고하세요..
다름이 아니라 Ibatis 에서 여러개의 Connection을 얻어 쓰고 싶으나
어떻게 하는지 몰라서 여쭤봅니다..
예를 들자면
con1 = getSqlMapClient();
con2 = getSqlMapClient();
try{
con1.startTransaction(); //con1에대한 트랜젝션 시작
con1.insert("TEST1");//로직실행 에러나면 실패
con2.insert("TEST2");//무조건 저장
con1.commitTransaction();//con1에대한 트랜젝션 컴잇
}catch(e){
//에러발생
}finally{
con1.endTransaction(); //con1.에대한 트랜젝션 종료
}
이렇게 작성하게 되면
에러가 날경우 con1 과 con2 가 같은 트랜젝션을 타버립니다.
어떻게 해야 con1 과 con2 가 다른 트랜젝션을 탈수 있나요??
감사합니다.. 수고하세요..
A
안녕하세요.. 강성주님..
try .. catch 부분을 connection 별로 분리하셔서 적용하시면 되실 것 같습니다.
기본적으로 Exception 발생 후.. rollack 처리 또는 commit 처리를 어떻게 하시느냐에 따라.. 트랜잭션이 관리 되기 때문에.. 이 부분만 잘 적용하시면.. 분리하실 수 있으실 것 같습니다.
(단, 외부 설정 상에 AOP와 같은 추가 transaction 처리를 타지 않을 경우)
그럼.. 즐거운 하루되십시오.
감사합니다.
try .. catch 부분을 connection 별로 분리하셔서 적용하시면 되실 것 같습니다.
기본적으로 Exception 발생 후.. rollack 처리 또는 commit 처리를 어떻게 하시느냐에 따라.. 트랜잭션이 관리 되기 때문에.. 이 부분만 잘 적용하시면.. 분리하실 수 있으실 것 같습니다.
(단, 외부 설정 상에 AOP와 같은 추가 transaction 처리를 타지 않을 경우)
그럼.. 즐거운 하루되십시오.
감사합니다.