본문 바로가기
IT/JAVA

MySQL connection timeout 방지

by 꾼헨 2023. 8. 9.
728x90
반응형
개발서버에 3일 이상 접속하지 않으면 에러 페이지가 뜨고, 새로고침을 여러 번 눌러야 정상 접속되는 현상이 있었다.
장시간 접속하지 않아 connection timeout된 것이다.

 

해결 방법

context-datasource.xml 에 다음 빨간글씨부분을 추가
 

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${Globals.DriverClassName}"/>
        <property name="url" value="${Globals.Url}?autoReconnect=true&amp;allowMultiQueries=true" />
        <property name="username" value="${Globals.UserName}"/>
        <property name="password" value="${Globals.Password}"/>
        <property name="validationQuery" value="select 1 from dual" />
        <property name="testWhileIdle" value="true" />
        <property name="timeBetweenEvictionRunsMillis" value="600000" />        
</bean>

 

권장하지 않는 방법

url property 의 value값 뒤에 autoReconnect=true 를 추가하면 재접속 시 정상 연결이 되지만, 최초 접속 시 사용자에게 에러를 띄우는 건 마찬가지이기 때문에 큰 의미는 없다.

 

728x90
반응형