Transaction 관련해서 질문
- 작성자 :
- 권*영
- 작성일 :
- 2011-12-20 11:36:22
- 조회수 :
- 2,022
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<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="*" propagation="REQUIRED" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="requiredTx"
expression="execution(* egovframework.com..*Impl.*(..)) or
execution(* egovframework.rte.fdl.excel.impl.*Impl.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
</aop:config>
</beans>
=================================================================
기존 사이트에 위와 같은 형식으로 Transaction 선언이 되어 있는것 같습니다.
Transaction 처리가 되는지 알고 싶습니다.
아니면 Transaction 관련해서 TransactionManager 만들고 처리해야하는지
알려주십시요
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<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="*" propagation="REQUIRED" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="requiredTx"
expression="execution(* egovframework.com..*Impl.*(..)) or
execution(* egovframework.rte.fdl.excel.impl.*Impl.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
</aop:config>
</beans>
=================================================================
기존 사이트에 위와 같은 형식으로 Transaction 선언이 되어 있는것 같습니다.
Transaction 처리가 되는지 알고 싶습니다.
아니면 Transaction 관련해서 TransactionManager 만들고 처리해야하는지
알려주십시요
A
안녕하세요.. 권대용님..
위 설정으로는 정확하게 transaction을 처리가 되는지 확인이 어렵습니다..
(실제 java 패키지, dataSource 지정 확인 필요)
다만, 다음의 2가지 정도만 확인하시면.. 되실 것 같습니다..
우선 pointcut 정의에 보시면.. egovframework.com 패키지 밑에.. Impl로 끝나는 모든 객체의 모든 메소드가 지정되어 있습니다..
사용하시는 서비스 패키지 및 클래스명이 이에 해당되는지 확인하십시오..
다음은.. TransactionManager에 지정된 dataSource가 .. 실제 transaction 처리를 원하시는 부분인지.. 즉, DAO 클래스가 상속한 AbstractDAO에 지정된 DataSource가 맞는지 확인하시면 되실 것 같습니다..
더 정확한 것은.. 동일한 insert 처리를 두번 수행해 보시면.. PK 중복 오류가 발생을 하고..
데이터 처리가 rollback 처리되었는지 확인하시면 되실 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
위 설정으로는 정확하게 transaction을 처리가 되는지 확인이 어렵습니다..
(실제 java 패키지, dataSource 지정 확인 필요)
다만, 다음의 2가지 정도만 확인하시면.. 되실 것 같습니다..
우선 pointcut 정의에 보시면.. egovframework.com 패키지 밑에.. Impl로 끝나는 모든 객체의 모든 메소드가 지정되어 있습니다..
사용하시는 서비스 패키지 및 클래스명이 이에 해당되는지 확인하십시오..
다음은.. TransactionManager에 지정된 dataSource가 .. 실제 transaction 처리를 원하시는 부분인지.. 즉, DAO 클래스가 상속한 AbstractDAO에 지정된 DataSource가 맞는지 확인하시면 되실 것 같습니다..
더 정확한 것은.. 동일한 insert 처리를 두번 수행해 보시면.. PK 중복 오류가 발생을 하고..
데이터 처리가 rollback 처리되었는지 확인하시면 되실 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.