트랜잭션 적용
- 작성자 :
- 가*
- 작성일 :
- 2024-03-27 09:43:02
- 조회수 :
- 223
- 구분 :
- 개발환경 / 3.8
- 진행상태 :
- 완료
Q
안녕하세요 현재 프로젝트에 context-transaction 을 통해
impl단에 transaction을 잡도록 설정이 되어 있는데 적용이 되지 않아서 문의드립니다.
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="*" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="requiredTx" expression="execution(* mdds..impl.*Impl.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
</aop:config>
위와 같이 설정되어 있지만 dao를 여러번 호출하는 경우 마지막 호출에서
unchecked exception 발생해도 이전 쿼리들이 롤백이 되지 않고,
TransactionSynchronizationManager.isActualTransactionActive() 로 확인 결과 false값 출력됩니다.
@Transactional 에노테이션도 적용되지 않습니다.
설마 AutoCommit false 후에
try / catch 문을 통해서 직접 롤백 처리를 해야하는건가요..?
impl단에 transaction을 잡도록 설정이 되어 있는데 적용이 되지 않아서 문의드립니다.
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="*" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="requiredTx" expression="execution(* mdds..impl.*Impl.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
</aop:config>
위와 같이 설정되어 있지만 dao를 여러번 호출하는 경우 마지막 호출에서
unchecked exception 발생해도 이전 쿼리들이 롤백이 되지 않고,
TransactionSynchronizationManager.isActualTransactionActive() 로 확인 결과 false값 출력됩니다.
@Transactional 에노테이션도 적용되지 않습니다.
설마 AutoCommit false 후에
try / catch 문을 통해서 직접 롤백 처리를 해야하는건가요..?
환경정보
-
- OS 정보 : window
- 표준프레임워크 버전 : 3.8
- JDK(JRE) 정보 : 1.8
- WAS 정보 : tomcat 8.0
- DB 정보 : tibero
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터입니다.
공통컴포넌트 3.8 예제를 확인하여
트랜잭션 설정을 확인해 보시길 바랍니다.
https://www.egovframe.go.kr/home/ntt/nttList.do?pagerOffset=0&searchKey=&searchValue=&menuNo=49&bbsId=22&nttId=1800
만약에도 문제가 해결되지 않는다면,
디버깅 레벨의 조정을 통해 상세 로그 분석을 확인하여
트랜잭션 동작을 더 자세히 확인해보시길 바랍니다.
감사합니다.
표준프레임워크센터입니다.
공통컴포넌트 3.8 예제를 확인하여
트랜잭션 설정을 확인해 보시길 바랍니다.
https://www.egovframe.go.kr/home/ntt/nttList.do?pagerOffset=0&searchKey=&searchValue=&menuNo=49&bbsId=22&nttId=1800
만약에도 문제가 해결되지 않는다면,
디버깅 레벨의 조정을 통해 상세 로그 분석을 확인하여
트랜잭션 동작을 더 자세히 확인해보시길 바랍니다.
감사합니다.