커넥션관련
- 작성자 :
- 김*규
- 작성일 :
- 2015-05-25 22:57:05
- 조회수 :
- 615
- 구분 :
- 운영환경
- 진행상태 :
- 완료
Q
안녕하세요 DB 커넥션 관련 문의드립니다.
현제 프로젝트 진행중에 테스트를 해보니 DB세션 초과 문제가 발생하여 아래와같이 커넥션풀 설정해줬습니다.
문제는 커넥션이 제대로 종료가 안되는것 같습니다.
제가 알기로는 spring에서 커넥션을 알아서 맺고 끊는다고 알고있었는데요..
따로 커넥션을 close하는 방법이나 옵션이 존재하는지와 아래와같은 설정에 문제가 있는지를 알고싶습니다..
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${database.driverClassName}"/>
<property name="url" value="${database.url}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
<property name="removeAbandoned" value="${database.removeAbandoned}"/>
<property name="initialSize" value="${database.initialSize}"/>
<property name="maxActive" value="${database.maxActive}"/>
</bean>
<!-- iBatis SqlMapClient -->
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:sqlMap/sqlMapConfig.xml" />
</bean>
<!-- iBatis SqlMapClientTemplate -->
<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient" ref="sqlMapClient" />
</bean>
<!-- iBatis Transaction Manager -->
<bean id="iTxManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
현제 프로젝트 진행중에 테스트를 해보니 DB세션 초과 문제가 발생하여 아래와같이 커넥션풀 설정해줬습니다.
문제는 커넥션이 제대로 종료가 안되는것 같습니다.
제가 알기로는 spring에서 커넥션을 알아서 맺고 끊는다고 알고있었는데요..
따로 커넥션을 close하는 방법이나 옵션이 존재하는지와 아래와같은 설정에 문제가 있는지를 알고싶습니다..
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${database.driverClassName}"/>
<property name="url" value="${database.url}"/>
<property name="username" value="${database.username}"/>
<property name="password" value="${database.password}"/>
<property name="removeAbandoned" value="${database.removeAbandoned}"/>
<property name="initialSize" value="${database.initialSize}"/>
<property name="maxActive" value="${database.maxActive}"/>
</bean>
<!-- iBatis SqlMapClient -->
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:sqlMap/sqlMapConfig.xml" />
</bean>
<!-- iBatis SqlMapClientTemplate -->
<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient" ref="sqlMapClient" />
</bean>
<!-- iBatis Transaction Manager -->
<bean id="iTxManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
A
김명규님. 안녕하세요.
초기엔 커넥션이 가능하나
이후 커넥션에 문제가 있으신듯합니다.
커넥션 상황은
linux의 경우 netstat -an | grep 포트로 확인이 가능하십니다.
여기서 풀에 의해서 열려있는 상황이 확인이 가능하실듯 하고
해당 포트가 어떤 status인지도 확인이 필요할듯 합니다.
DB에서 허용되는 커넥션수가 충분한지
충분하지만 다른 WAS에서도 커넥션이 유지되어
추가로 확보가 않되는것인지도 확인하셔야 합니다.
쿼리 타임이 너무긴 업무가 있어
다른 커넥션을 방해하는지도 확인이 필요한 사항입니다.
또는 방화벽에서 간섭을 받는지도 확인이 필요한 사항일듯 합니다.
감사합니다.
초기엔 커넥션이 가능하나
이후 커넥션에 문제가 있으신듯합니다.
커넥션 상황은
linux의 경우 netstat -an | grep 포트로 확인이 가능하십니다.
여기서 풀에 의해서 열려있는 상황이 확인이 가능하실듯 하고
해당 포트가 어떤 status인지도 확인이 필요할듯 합니다.
DB에서 허용되는 커넥션수가 충분한지
충분하지만 다른 WAS에서도 커넥션이 유지되어
추가로 확보가 않되는것인지도 확인하셔야 합니다.
쿼리 타임이 너무긴 업무가 있어
다른 커넥션을 방해하는지도 확인이 필요한 사항입니다.
또는 방화벽에서 간섭을 받는지도 확인이 필요한 사항일듯 합니다.
감사합니다.