context-transaction.xml 관련 문의드립니다.
- 작성자 :
- 김*진
- 작성일 :
- 2021-05-06 18:57:49
- 조회수 :
- 4,843
- 구분 :
- 개발환경 / 3.6
- 진행상태 :
- 완료
Q
context-transaction.xml 파일 관련하여 문의 드립니다.
트랜잭션이 모든 Impl에서 생성되지 않도록 tx:advice 태그 내용을 아래와 같이 수정하였는데, 이 경우 퍼포먼스 상에 어떤 차이가 있나요?
변경전)
<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>
변경후)
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<!-- <tx:method name="*" propagation="REQUIRED" rollback-for="Exception"/> -->
<tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="delete*" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="update*" 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>
트랜잭션이 모든 Impl에서 생성되지 않도록 tx:advice 태그 내용을 아래와 같이 수정하였는데, 이 경우 퍼포먼스 상에 어떤 차이가 있나요?
변경전)
<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>
변경후)
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<!-- <tx:method name="*" propagation="REQUIRED" rollback-for="Exception"/> -->
<tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="delete*" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="update*" 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>
환경정보
-
- OS 정보 : 윈도우
- 표준프레임워크 버전 : 3.6
- JDK(JRE) 정보 : 1.7
- WAS 정보 : 톰캣8.0.52
- DB 정보 : 오라클
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터입니다.
tx:method 태그는 트랜잭션 처리시에 메소드별로 제약 및 옵션을 걸어줄 때 사용하는 태그입니다.
성능의 관점에서 본다면 각 단위업무에서 수행되는 쿼리의 실행시간이나
한번에 처리하고자 하는 데이터의 건수 등이 성능에 더 영향을 준다고 볼 수 있습니다.
SELECT 문장은 직접적인 트랜잭션의 대상이 아니지만
SELECT FOR UPDATE 등 배타적 LOCK을 요구하는 SELECT 문장은
트랜잭션의 대상이 될 수 있으므로
업무에 따라 적절히 구성하시면 좋을것 같습니다.
감사합니다.
표준프레임워크센터입니다.
tx:method 태그는 트랜잭션 처리시에 메소드별로 제약 및 옵션을 걸어줄 때 사용하는 태그입니다.
성능의 관점에서 본다면 각 단위업무에서 수행되는 쿼리의 실행시간이나
한번에 처리하고자 하는 데이터의 건수 등이 성능에 더 영향을 준다고 볼 수 있습니다.
SELECT 문장은 직접적인 트랜잭션의 대상이 아니지만
SELECT FOR UPDATE 등 배타적 LOCK을 요구하는 SELECT 문장은
트랜잭션의 대상이 될 수 있으므로
업무에 따라 적절히 구성하시면 좋을것 같습니다.
감사합니다.