apollo89 요즘 읽고 있는 책
프로그래머의 길,멘토에게 묻다
데이브 후버,애디웨일 오시나이 공저/강중빈 역
프로그래머 그 다음 이야기
임백준 등저
대규모 서비스를 지탱하는 기술
이토 나오야,다나카 신지 공저
존 맥아더의 성경,이렇게 믿어라
존 맥아더 저
아이디어맨 Idea man
안진환 역/폴 앨런 저
예스24 | 애드온2
DBCP(Database Connection Pool)을 사용하다 보면 가끔씩 만나게 되는 에러가 있다.

사용자 삽입 이미지



내 추측에는 DBCP의 특성상 많은 수의 커넥션을 미리 맺어 놓고, 어플리케이션이 풀에서 커넥션을 빌려다 사용하고 환원하는 식인데, 맺어놓은 커넥션을 MySQL의 커넥터가 끊어버리는듯 하다.

그래서 풀에 정상적으로 요청을 하였지만 그것이 MySQL 서버에까지 요청이 가지는 못하는것이라 판단된다.

이때 DB URL에 다음과 같은 옵션을 추가해 주면 된다.

interactiveClient=true&autoReconnect=true&autoReconnectForPools=true
사실 interactiveClient만 있어도 된다. CLIENT_INTERACTIVE 플래그로 타임아웃 관리하던것을 INTERACTIVE_TIMEOUT가 하게 된다.

출처 : http://theeye.pe.kr/120 (새 창으로 열기) 
Trackback URL : http://apollo89.com/blog/trackback/411
openclose