Transaction 재질문 드립니다.
- 작성자 :
- 연*훈
- 작성일 :
- 2013-03-19 14:06:59
- 조회수 :
- 1,133
- 구분 :
- 개발환경
- 진행상태 :
- 완료
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" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor advice-ref="txAdvice" pointcut="execution(* kr.*..impl.*Impl.*(..))" />
</aop:config>
//////////////// context-datasource.xml ///////////////////////
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@//172.30.1.150:1521/xxxx"/>
<property name="username" value="xxxxx"/>
<property name="password" value="xxxxx"/>
</bean>
////////////////////////////////////////////////////////////////////////////////////////////////////
설정은 위와 같습니다. 그런데 transaction이 잡히질 안네요.
테스트 방법 : 똑같은 쿼리를 두번 실행 -> 무결성 제약 조건
-> 데이터 확인 결과 하나에 데이터가 들어가 있는 상태
테스트한 실제 serviceImpl 패키지 : kr.or.xxx.xtest.admi.service.impl.CodeServiceImpl
설정에 뭐가 문제가 있을까요?
아님 serviceImpl에 @Transactional 어노테이션을 지정해야 하나요?
(해봤지만 되지 않았음....)
말 씀하신대로 web.xml을 확인해봤지만.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value> classpath*:egovframework/spring/context-*.xml
</param-value>
</context-param>
제대로 잡혀있는거 같습니다.
서버부팅시 로그에도 context-transaction.xml이 찍히고요.
DAO에는 EgovAbstractDAO를 상속 받아 쓰고 있습니다.
다른 문제는 없을까요? 답변 부탁드립니다.ㅠㅠ
<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" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor advice-ref="txAdvice" pointcut="execution(* kr.*..impl.*Impl.*(..))" />
</aop:config>
//////////////// context-datasource.xml ///////////////////////
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@//172.30.1.150:1521/xxxx"/>
<property name="username" value="xxxxx"/>
<property name="password" value="xxxxx"/>
</bean>
////////////////////////////////////////////////////////////////////////////////////////////////////
설정은 위와 같습니다. 그런데 transaction이 잡히질 안네요.
테스트 방법 : 똑같은 쿼리를 두번 실행 -> 무결성 제약 조건
-> 데이터 확인 결과 하나에 데이터가 들어가 있는 상태
테스트한 실제 serviceImpl 패키지 : kr.or.xxx.xtest.admi.service.impl.CodeServiceImpl
설정에 뭐가 문제가 있을까요?
아님 serviceImpl에 @Transactional 어노테이션을 지정해야 하나요?
(해봤지만 되지 않았음....)
말 씀하신대로 web.xml을 확인해봤지만.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value> classpath*:egovframework/spring/context-*.xml
</param-value>
</context-param>
제대로 잡혀있는거 같습니다.
서버부팅시 로그에도 context-transaction.xml이 찍히고요.
DAO에는 EgovAbstractDAO를 상속 받아 쓰고 있습니다.
다른 문제는 없을까요? 답변 부탁드립니다.ㅠㅠ
A
안녕하세요. 연승훈님
execution(* kr..impl.*Impl.*(..)) 로 변경해 보시기 바랍니다.
고맙습니다.
execution(* kr..impl.*Impl.*(..)) 로 변경해 보시기 바랍니다.
고맙습니다.