트랜잭션과 inactive session 관계
- 작성자 :
- 송*경
- 작성일 :
- 2018-12-06 20:12:22
- 조회수 :
- 1,813
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
egovframe 에서 transaction manager를 이용해 작업하고 있습니다.
context-datasource.xml 에서 아래와 같이 bean으로 지정하고
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" lazy-init="true">
<property name="dataSource" ref="dataSource" />
</bean>
context-batch-job-luncher.xml에서 아래와 같이 설정했습니다.
<bean id="jobRepository" class="org.springframework.batch.core.repository.support.JobRepositoryFactoryBean"
p:dataSource-ref="dataSource" p:transactionManager-ref="transactionManager" p:lobHandler-ref="lobHandler"
p:isolationLevelForCreate="ISOLATION_DEFAULT" p:validateTransactionState="false"/>
따로 aop 이용하지 않고 있습니다.
@Transactional 도 설정하지 않았습니다.
실제 로그를 찍어보면
" Registering transaction synchronization for JDBC Connection " 이라는 로그가 나오는 것으로 보아
기본 값으로 transaction 이 잘 구성되는구나 생각하고 있습니다.
이 상태에서
1. transaction은 잘 구성되는가 했는데 오라클 DB 세션을 점검하다보면 inactive session이 첨부한 이미지와 같이 늘어납니다.
중간에 정리가 되기도 하지만 항상 inactive session이 꽤나 존재합니다.
DB에 부담을 주고 있어 분명히 문제가 있는데 이와 같은 상황을 해결할 부분이
transaction manager 와 관련이 있을 것 같아 문의드립니다.
2. 추가적인 transaction manager 설정이 필요한지 필요하다면 어떤 부분인지 궁금합니다.
3. transaction 은 default로 몇 개가 유지되는 것이 정상인지 궁금합니다.
context-datasource.xml 에서 아래와 같이 bean으로 지정하고
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" lazy-init="true">
<property name="dataSource" ref="dataSource" />
</bean>
context-batch-job-luncher.xml에서 아래와 같이 설정했습니다.
<bean id="jobRepository" class="org.springframework.batch.core.repository.support.JobRepositoryFactoryBean"
p:dataSource-ref="dataSource" p:transactionManager-ref="transactionManager" p:lobHandler-ref="lobHandler"
p:isolationLevelForCreate="ISOLATION_DEFAULT" p:validateTransactionState="false"/>
따로 aop 이용하지 않고 있습니다.
@Transactional 도 설정하지 않았습니다.
실제 로그를 찍어보면
" Registering transaction synchronization for JDBC Connection " 이라는 로그가 나오는 것으로 보아
기본 값으로 transaction 이 잘 구성되는구나 생각하고 있습니다.
이 상태에서
1. transaction은 잘 구성되는가 했는데 오라클 DB 세션을 점검하다보면 inactive session이 첨부한 이미지와 같이 늘어납니다.
중간에 정리가 되기도 하지만 항상 inactive session이 꽤나 존재합니다.
DB에 부담을 주고 있어 분명히 문제가 있는데 이와 같은 상황을 해결할 부분이
transaction manager 와 관련이 있을 것 같아 문의드립니다.
2. 추가적인 transaction manager 설정이 필요한지 필요하다면 어떤 부분인지 궁금합니다.
3. transaction 은 default로 몇 개가 유지되는 것이 정상인지 궁금합니다.
A
안녕하세요.
표준프레임워크센터 입니다.
첨부된 이미지를 보니
트랜잭션의 상황이 아니고 커넥션풀로 보여집니다.
DB를 커넥션할때 사전 준비와 핸드쉐이크 과정에서
시간과 자원이 불필요하게 소모되므로
풀이라는 개념을 사용합니다.
즉, 필요한 기본 갯수만큼 미리 연결시켜 놓아서
대응을 빨리 할수 있도록 합니다.
첨부된 이미지가 INACTIVE로 되어 있는것은
사용되지 않을때의 상태로 보여집니다.
갯수는 사용자가 몰릴경우 허용된 갯수내에서 증가하고
일정시간 사용이 없으면 제거 될것입니다.
감사합니다.
표준프레임워크센터 입니다.
첨부된 이미지를 보니
트랜잭션의 상황이 아니고 커넥션풀로 보여집니다.
DB를 커넥션할때 사전 준비와 핸드쉐이크 과정에서
시간과 자원이 불필요하게 소모되므로
풀이라는 개념을 사용합니다.
즉, 필요한 기본 갯수만큼 미리 연결시켜 놓아서
대응을 빨리 할수 있도록 합니다.
첨부된 이미지가 INACTIVE로 되어 있는것은
사용되지 않을때의 상태로 보여집니다.
갯수는 사용자가 몰릴경우 허용된 갯수내에서 증가하고
일정시간 사용이 없으면 제거 될것입니다.
감사합니다.