트랜잭션 처리에 대해 문의드립니다.
- 작성자 :
- 추*령
- 작성일 :
- 2015-12-30 14:40:25
- 조회수 :
- 1,103
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
context-transaction.xml 에서
<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(* clkDrp.**.impl.*Impl.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
</aop:config>
로 처리하여 트랜잭션을 묶었는데.. 실제로는 트랜잭션이 묶이질 않습니다.
web.xml에서
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:clkDrp/spring/context-*.xml</param-value>
</context-param>
으로 컨텍스트 설정파일을 설정하고,
servlet-context.xml에서
<context:component-scan base-package="clkDrp">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
로 스캔처리를 했습니다.
혹시나 싶어 <mvc:annotation-driven/> 도 추가하였는데, 큰 변화는 없고요.
실행로그를 보면,
[org.springframework.jdbc.datasource.DataSourceTransactionManager] Creating new transaction with name......
라는 로그가 전혀 안나오고,
[org.springframework.orm.ibatis.SqlMapClientTemplate] Opened SqlMapSession [com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl@2d85af06] for iBATIS operation
이 로그만 바로 출력됩니다.
전혀 트랜잭션이 묶이질 않는거 같은데, 어떤걸 더 확인해봐야하는지 문의드립니다.
참, 디비는 오라클에 ibatis 연동입니다.
<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(* clkDrp.**.impl.*Impl.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
</aop:config>
로 처리하여 트랜잭션을 묶었는데.. 실제로는 트랜잭션이 묶이질 않습니다.
web.xml에서
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:clkDrp/spring/context-*.xml</param-value>
</context-param>
으로 컨텍스트 설정파일을 설정하고,
servlet-context.xml에서
<context:component-scan base-package="clkDrp">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
로 스캔처리를 했습니다.
혹시나 싶어 <mvc:annotation-driven/> 도 추가하였는데, 큰 변화는 없고요.
실행로그를 보면,
[org.springframework.jdbc.datasource.DataSourceTransactionManager] Creating new transaction with name......
라는 로그가 전혀 안나오고,
[org.springframework.orm.ibatis.SqlMapClientTemplate] Opened SqlMapSession [com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl@2d85af06] for iBATIS operation
이 로그만 바로 출력됩니다.
전혀 트랜잭션이 묶이질 않는거 같은데, 어떤걸 더 확인해봐야하는지 문의드립니다.
참, 디비는 오라클에 ibatis 연동입니다.
A
안녕하세요. 표준프레임워크센터입니다.
트랜잭션 관련된 설정에는 특별한 문제는 없는 것으로 보입니다.
패키지 경로등이 잘못되거나, context를 읽어들이는 xml파일의 경로가 정상적이라면 이상한 점은 없는 듯 합니다.
pointcut으로 선언한 부분에 대해 점검이 필요할 것 같습니다.
아래 위키의 중간부분에 가이드된 포인트컷 정의 예제를 참고하시기 바랍니다.
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:fdl:aop:aspectj
감사합니다.
트랜잭션 관련된 설정에는 특별한 문제는 없는 것으로 보입니다.
패키지 경로등이 잘못되거나, context를 읽어들이는 xml파일의 경로가 정상적이라면 이상한 점은 없는 듯 합니다.
pointcut으로 선언한 부분에 대해 점검이 필요할 것 같습니다.
아래 위키의 중간부분에 가이드된 포인트컷 정의 예제를 참고하시기 바랍니다.
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:fdl:aop:aspectj
감사합니다.