DataBase/Sql

[Mysql] already closed 오류

Sort 2013. 2. 6. 19:11
error: java.sql.SQLException: Already closed. oracle
상황 : 이상없이 잘 사용하던 커넥션이 한번씩 끊긴다. 이후 재사용시에는 무리없는 활동을 보여준다.
이유 : 데이터베이스 입장에서 오랫동안 휴면되는 커넥션은 불필요하다고 판단하고, 끊어버린다. 때문에 커넥션풀 설정시 연결 확인용 쿼리를 지정해주어야 한다.


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${db.driverName}"></property>
<property name="url" value="${db.url}"></property>
<property name="username" value="${db.username}"></property>
<property name="password" value="${db.password}"></property>
<property name="initialSize" value="${db.initialSize}"></property>
<property name="maxActive" value="${db.maxActive}"></property>
<property name="validationQuery" value="select 1 from dual" /> <—Oracle

<property name="validationQuery" value="select 1" /> <-- MySql

</bean>

 


or

jdbc.properties

#Oracle
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@--ip--:1521:ORA11G
jdbc.username=--id--
jdbc.password=--pw--
jdbc.maxActive=100
jdbc.maxIdle=30
jdbc.maxWait=-1
jdbc.validationQuery=select 1 from dual

 

출처 : http://seemoon.tistory.com/191