선언적 트랜잭션 설정관련 질문입니다.
- 작성자 :
- w*******n
- 작성일 :
- 2020-08-25 18:24:50
- 조회수 :
- 3,058
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
수고 많으십니다.
선언적 트랜잭션 설정관련 질문입니다.
프레임워크 버전 : 3.7
마이바티스와 @Mapper로 DAO는 인터페이스만 만들어 구현했습니다.
서비스메소드에서 여러개의 DAO를 호출하는 작업을 한 트랜젝션으로 묶고 싶은데
트렌젝션이 적용되지 않습니다.
로그를보면 에러발생 전에 DAO에서 커밋을하는 로그가 찍힙니다.
호출하는 함수는 kr.or.kportal.test.service.impl 패키지안의
TestServiceImpl 객체의 public int updateMember(Map mapParam) throws Exception 메소드 입니다.
설정정보는 아래와 같습니다.
감사합니다.
<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(* kr.or.kportal..impl.*Impl.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
</aop:config>
선언적 트랜잭션 설정관련 질문입니다.
프레임워크 버전 : 3.7
마이바티스와 @Mapper로 DAO는 인터페이스만 만들어 구현했습니다.
서비스메소드에서 여러개의 DAO를 호출하는 작업을 한 트랜젝션으로 묶고 싶은데
트렌젝션이 적용되지 않습니다.
로그를보면 에러발생 전에 DAO에서 커밋을하는 로그가 찍힙니다.
호출하는 함수는 kr.or.kportal.test.service.impl 패키지안의
TestServiceImpl 객체의 public int updateMember(Map mapParam) throws Exception 메소드 입니다.
설정정보는 아래와 같습니다.
감사합니다.
<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(* kr.or.kportal..impl.*Impl.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
</aop:config>
A
안녕하세요.
표준프레임워크센터입니다.
현재 상세한 코드가 없어 문의주신 사항만으로 분석해 보자면 특이점은 발견하지 못했습니다.
롤백이 수행되지 않으셨다고 하시니
우선 aop가 정상적으로 작동되고 있는지 우선 확인하시고
롤백을 수행하는 트리거를 확인해 보시길 바랍니다.
dao에서 Exception이 정상적으로 throw되고 있는지, try-catch로 중간에서 처리되지는 않았는지
혹은 드물긴 하지만 Exception계열이 아닌 Error 계열이 발생한 것은 아닌지 확인해 보시기 바랍니다.
감사합니다.
표준프레임워크센터입니다.
현재 상세한 코드가 없어 문의주신 사항만으로 분석해 보자면 특이점은 발견하지 못했습니다.
롤백이 수행되지 않으셨다고 하시니
우선 aop가 정상적으로 작동되고 있는지 우선 확인하시고
롤백을 수행하는 트리거를 확인해 보시길 바랍니다.
dao에서 Exception이 정상적으로 throw되고 있는지, try-catch로 중간에서 처리되지는 않았는지
혹은 드물긴 하지만 Exception계열이 아닌 Error 계열이 발생한 것은 아닌지 확인해 보시기 바랍니다.
감사합니다.