트랜잭션 롤백관리
- 작성자 :
- 김*성
- 작성일 :
- 2010-09-30 14:09:56
- 조회수 :
- 3,583
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
기존의 프레임워크 대신에 egovFramework을 적용해서
프로젝트를 진행하려고 하는데,
한가지 궁금한 것이 있어서 문의합니다.
A Controller -> A Service -> A DAO.insert() 호출
-> A DAO.update() 호출
위와 같이 하나의 Service에서 2개이상의 DAO 함수들을
호출합니다.
그런데, 마지막이나 중간 메소드에서 작업진행시 Exception이
발생할 때 전체를 모두 rollback시켜줘야 하는데,
기존에는 Connection을 서비스가 관리하니까 가능한데,
iBatis를 사용하는 경우, 어떻게 처리해야 하는지 부탁드릴께요.
긴급하니 빠른 답변 부탁드립니다.
감사합니다.
추신 : 게시판에 비슷한 질문이 있는데, 그 질문에 대한 답변대로
나름 해봤는데, 않되더군요...
프로젝트를 진행하려고 하는데,
한가지 궁금한 것이 있어서 문의합니다.
A Controller -> A Service -> A DAO.insert() 호출
-> A DAO.update() 호출
위와 같이 하나의 Service에서 2개이상의 DAO 함수들을
호출합니다.
그런데, 마지막이나 중간 메소드에서 작업진행시 Exception이
발생할 때 전체를 모두 rollback시켜줘야 하는데,
기존에는 Connection을 서비스가 관리하니까 가능한데,
iBatis를 사용하는 경우, 어떻게 처리해야 하는지 부탁드릴께요.
긴급하니 빠른 답변 부탁드립니다.
감사합니다.
추신 : 게시판에 비슷한 질문이 있는데, 그 질문에 대한 답변대로
나름 해봤는데, 않되더군요...
A
안녕하세요.. 김현성님..
개념적으로는 특정 메소드(Service 부분)를 시작할 때 transaction을 시작하고.. 정상적인 호출이면.. commit, Exception이 발생(내부에서 try catch로 잡아채지 않는 다는 가정)하면.. rollback이 됩니다.
이런 처리는 설정에 의해 자동으로 처리됩니다.
위의 예 방식으로.. Service에서 여러 DAO를 호출하시면 Service 안에서 호출되었기 때문에 transaction으로 묶이도록 되어 있습니다.
단, 설정이 필요합니다.
아래 가이드는 AOP를 통한 transaction 설정이 나와 있습니다.
이 부분을 참조하시면 될 것 같습니다.
http://www.egovframe.org/wiki/doku.php?id=egovframework:rte:fdl:aop:egovrteaopguide
그럼.. 즐거운 하루되십시오.
감사합니다.
개념적으로는 특정 메소드(Service 부분)를 시작할 때 transaction을 시작하고.. 정상적인 호출이면.. commit, Exception이 발생(내부에서 try catch로 잡아채지 않는 다는 가정)하면.. rollback이 됩니다.
이런 처리는 설정에 의해 자동으로 처리됩니다.
위의 예 방식으로.. Service에서 여러 DAO를 호출하시면 Service 안에서 호출되었기 때문에 transaction으로 묶이도록 되어 있습니다.
단, 설정이 필요합니다.
아래 가이드는 AOP를 통한 transaction 설정이 나와 있습니다.
이 부분을 참조하시면 될 것 같습니다.
http://www.egovframe.org/wiki/doku.php?id=egovframework:rte:fdl:aop:egovrteaopguide
그럼.. 즐거운 하루되십시오.
감사합니다.