초간단 ConnectionPool 입니다.
ConnectionPool을 새로 만들어봤습니다.
1. MySql용입니다.
2. timeout, db-server reset 등으로 DB 와 연결을 잃었을 때
좀비가 되는 문제를 해결하였습니다.
3. ConnectionPool클래스를 web.xml에 Listener로 등록하고 getConnection()메소드를
static 으로 만들어 어디서든지 풀에 접근가능하도록 하였습니다.
4. Connection반환은 필수입니다. 저는 ConnectionPool에 접근하는 중간계층의 클래스
를 만들어 사용하기 때문에 풀자체에서 반환여부를 체크하지 않습니다.
5. web.xml 설정예제 : context-param 을 이용해 풀에 필요한 정보를 전달합니다.
context-param 과 listener 의 위치에 주의하십시요.
<web-app>
<display-name></display-name>
<description></description>
<context-param>
<param-name>database</param-name>
<param-value>#dbname#</param-value>
</context-param>
<context-param>
<param-name>database_user</param-name>
<param-value>#user-name#</param-value>
</context-param>
<context-param>
<param-name>database_password</param-name>
<param-value>#password#</param-value>
</context-param>
<context-param>
<param-name>database_min</param-name>
<param-value>3</param-value>
</context-param>
<context-param>
<param-name>database_max</param-name>
<param-value>10</param-value>
</context-param>
<!--
<filter>..</filter>
<filter-mapping>..</filter-mapping>
-->
<listener><listener-class>kr.co.korm.sql.ConnectionPool</listener-class></listener>
<!--기타 태그들 -->
</web-app>