서버를 실행하고 오래 접속을 하지 않으면 아래 와 같은 에러가 발생할 수 있다.
Software caused connection abort: recv failed
바로 다시 접속하면 연결이 되기는 하지만 신경이 쓰이는 부분이다.
DB 와 연결하고 오래 사용하지 않으면 연결이 끊긴다. 그래서 주기적으로 아주 간단한 query 를 날려 줄 필요가 있다.
아래와 같이 설정 하였다.
<environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <!-- Pool ping setting : http://linuxism.tistory.com/580 --> <property name="poolMaximumActiveConnections" value="20"/> <property name="poolMaximumIdleConnections" value="20"/> <property name="poolMaximumCheckoutTime" value="20000"/> <property name="poolPingEnabled" value="true"/> <property name="poolPingQuery" value="select 1"/> <property name="poolPingConnectionsNotUsedFor" value="43200"/> <property name="poolTimeToWait" value="30000"/> <property name="driver.encoding" value="UTF-8"/> </dataSource> </environment> ...poolPingEnabled 를 true 로 설정한다.
poolPingQuery 는 select 1 과 같은 아주 간단한 query 로 설정한다.
poolPingConnectionsNotUsedFor 에 지정한 시간 만큼 사용하지 않으면 ping query 를 날린다. (millisecond 단위)
댓글 없음:
댓글 쓰기