트랜잭션에 대해 잘 모르는게 있어서 질문합니다.
- 작성자 :
- 김*일
- 작성일 :
- 2013-10-17 17:06:52
- 조회수 :
- 890
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하세요.
트랜잭션에 관한 문의합니다..
context-transaction.xml 에서
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
이렇게만 설정하고 데이터를 insert, update 하다보면 lock이 걸리는 현상이 발생하여 추가적으로
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="select*" propagation="NOT_SUPPORTED"/>
<tx:method name="*" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
예외발생 시 롤백하는 부분은 기본적으로 있었고 추가적으로 insert, update, delete, select 속성을 추가 하였는데 이렇게 하는게 맞는지 궁금합니다..
트랜잭션에 관한 문의합니다..
context-transaction.xml 에서
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
이렇게만 설정하고 데이터를 insert, update 하다보면 lock이 걸리는 현상이 발생하여 추가적으로
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="select*" propagation="NOT_SUPPORTED"/>
<tx:method name="*" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
예외발생 시 롤백하는 부분은 기본적으로 있었고 추가적으로 insert, update, delete, select 속성을 추가 하였는데 이렇게 하는게 맞는지 궁금합니다..
A
안녕하세요. 김태일님.
우선, propagation 값은 default가 "REQUIRED"이고 select 부분의 NOT_SUPPORTED 지정의 의미가 없기 때문에 원래의 형식대로 유지하시면 되실 것 같습니다.
이런 상태에서 lock의 발생 빈도나.. 발생 당시 어떤 부분에서 발생하였는냐의 정보가 더 필요할 것 같습니다. (exception trace)
추가적으로 lock에 대한 부분은 insert/update 사용방식(같은 테이블 접근이냐 등)에 따라 다르겠지만, isolation level 설정에 영향을 받을 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
우선, propagation 값은 default가 "REQUIRED"이고 select 부분의 NOT_SUPPORTED 지정의 의미가 없기 때문에 원래의 형식대로 유지하시면 되실 것 같습니다.
이런 상태에서 lock의 발생 빈도나.. 발생 당시 어떤 부분에서 발생하였는냐의 정보가 더 필요할 것 같습니다. (exception trace)
추가적으로 lock에 대한 부분은 insert/update 사용방식(같은 테이블 접근이냐 등)에 따라 다르겠지만, isolation level 설정에 영향을 받을 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.