service method에 @Transaction(timeout = 1)이 동작하지 않는 같습니다.
- 작성자 :
- 김*풍
- 작성일 :
- 2025-03-19 17:57:22
- 조회수 :
- 98
- 구분 :
- 개발환경 / 3.9
- 진행상태 :
- 완료
Q
안녕하세요.
timeout 관련 문의합니다.
특정 service에 query 수행시간이 길어져서 추가로 service 단위로 timeout 설정을 하고 싶습니다.
자료 참고하여 service method에 @Transaction(timeout = 1)을 추가하였는데 동작하지 않는 같습니다.(select query 10초 수행 후 정상종료 됨)
기존 service method에 @Transaction 구문없이 context-transaction.xml에 aop 설정으로 트랜젝션 정상동작은 확인하였습니다.(exception 발생시 rollback 됨)
트랜젝션은 정상동작 하는 같은데 timeout 옵션이 적용되지 않는 같습니다.
체크해야 할 부분이 있을까요?
답변 부탁드립니다. 감사합니다~
timeout 관련 문의합니다.
특정 service에 query 수행시간이 길어져서 추가로 service 단위로 timeout 설정을 하고 싶습니다.
자료 참고하여 service method에 @Transaction(timeout = 1)을 추가하였는데 동작하지 않는 같습니다.(select query 10초 수행 후 정상종료 됨)
기존 service method에 @Transaction 구문없이 context-transaction.xml에 aop 설정으로 트랜젝션 정상동작은 확인하였습니다.(exception 발생시 rollback 됨)
트랜젝션은 정상동작 하는 같은데 timeout 옵션이 적용되지 않는 같습니다.
체크해야 할 부분이 있을까요?
답변 부탁드립니다. 감사합니다~
환경정보
-
- OS 정보 :
- 표준프레임워크 버전 : 3.9
- JDK(JRE) 정보 : 1.8
- WAS 정보 : tomcat 9.0
- DB 정보 : tibero 6X
- 기타 환경 정보 : mybatis 3.4.6
A
안녕하세요.
표준프레임워크 센터입니다.
@Transaction에 설정한 타임아웃 속성은
하나의 트랜잭션에 대한 실행 시간을 제한하는 옵션으로
쿼리 수행 시간을 설정하기 위한 타임아웃은
개별 쿼리에 각각 쿼리 타임아웃을 설정하시는 방법도 있으며
아래 예시와 같이
데이터소스 설정으로도 쿼리 타임아웃을 구성하실 수 있습니다
감사합니다.
표준프레임워크 센터입니다.
@Transaction에 설정한 타임아웃 속성은
하나의 트랜잭션에 대한 실행 시간을 제한하는 옵션으로
쿼리 수행 시간을 설정하기 위한 타임아웃은
개별 쿼리에 각각 쿼리 타임아웃을 설정하시는 방법도 있으며
아래 예시와 같이
데이터소스 설정으로도 쿼리 타임아웃을 구성하실 수 있습니다
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${Globals.mysql.DriverClassName}"/> <property name="url" value="${Globals.mysql.Url}" /> <property name="username" value="${Globals.mysql.UserName}"/> <property name="password" value="#{egovEnvCryptoService.getPassword()}"/> <property name="defaultQueryTimeout" value="30"/> </bean> |
감사합니다.