java.sql.SQLException: 접속 종료
- 작성자 :
- 최*혁
- 작성일 :
- 2010-11-23 13:35:16
- 조회수 :
- 9,629
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
수고하십니다.
행안부 프로젝트를 진행 중인데요.
eGovFramework의 기본적인 connection pool 인 dbcp를 사용 중입니다.
아래와 같은 에러가 발생합니다.
...
org.springframework.transaction.TransactionSystemException: Could not roll back JDBC transaction; nested exception is java.sql.SQLException: 접속 종료
...
원인을 가만히 생각해보니까,
Oracle은 JDBC는 Connection을 끊어 버린 상태인 듯하고, 하지만, dbcp는 이를 인지하지 못하고 그대로 유지하고 있다가, Spring이 다시 rollback처리를 수행하는 듯 보이는데요. (로그인 처리 시에 발생한 에러입니다.)
이를 해결할 방법은 없는 건가요.
행안부 프로젝트를 진행 중인데요.
eGovFramework의 기본적인 connection pool 인 dbcp를 사용 중입니다.
아래와 같은 에러가 발생합니다.
...
org.springframework.transaction.TransactionSystemException: Could not roll back JDBC transaction; nested exception is java.sql.SQLException: 접속 종료
...
원인을 가만히 생각해보니까,
Oracle은 JDBC는 Connection을 끊어 버린 상태인 듯하고, 하지만, dbcp는 이를 인지하지 못하고 그대로 유지하고 있다가, Spring이 다시 rollback처리를 수행하는 듯 보이는데요. (로그인 처리 시에 발생한 에러입니다.)
이를 해결할 방법은 없는 건가요.
A
안녕하세요. 최재혁님
DBMS가 특정 시간동안 동작하지 않는 db connection을 종료시키기 때문에.. db pool 상에 연결이 끊어지는 것입니다.
DBCP 상에.. 다음과 같은 설정을 추가하시면.. 특정 시간마다 더미 query를 실행시켜 connection을 유지시키실 수 있습니다.
<!-- 유효 검사용 쿼리-->
<property name="validationQuery" value="select 1 from dual"/>
<property name="testWhileIdle" value="true"/>
<!-- 밀리세컨드 단위 interval -->
<property name="timeBetweenEvictionRunsMillis" value="7200000"/>
고맙습니다.
DBMS가 특정 시간동안 동작하지 않는 db connection을 종료시키기 때문에.. db pool 상에 연결이 끊어지는 것입니다.
DBCP 상에.. 다음과 같은 설정을 추가하시면.. 특정 시간마다 더미 query를 실행시켜 connection을 유지시키실 수 있습니다.
<!-- 유효 검사용 쿼리-->
<property name="validationQuery" value="select 1 from dual"/>
<property name="testWhileIdle" value="true"/>
<!-- 밀리세컨드 단위 interval -->
<property name="timeBetweenEvictionRunsMillis" value="7200000"/>
고맙습니다.