본문 바로가기
TOMCAT/cannot get a connection, pool exhausted

[Tomcat] cannot get a connection, pool exhausted 문제

by 정윤재 2011. 6. 29.


TOMCAT 에서 위와 같이 오류가 났다면

아마도 DB의 Connection Pool 을 JNDI 로 Tomcat 에 걸었는데

Pool이 꽉 차서 Connection이 안들어가서 난리가 난 상황일 것이다.

여기엔 2가지 해결책이 있다.

context.xml 이나 server.xml 에서 <Resource> 태그로 jndi 를 설정해

주고 있을 텐데

1. <Resource> 태그 안에 maxActive="100" maxIdle="30" 이런식으로
      옵션을 넣기 => Connection 에 대한 max 갯수 증가

2. <Resource> 태그 안에 removeAbandoned="true"
    removeAbandonedTimeout="60" 옵션을 주는 것
    => idle 상태인 Connection 을 포기하는 것임

나의 경우 1번은 잘 안됐고 2번을 하니 바로 먹히더라

예제)
    <Resource name="jdbc/sfs" auth="Container" type="javax.sql.DataSource"
              initialSize="10" maxActive="100" maxIdle="30" maxWait="15000"              username="oraasfs" password="oraasfs2301" driverClassName="oracle.jdbc.driver.OracleDriver"
              url="jdbc:oracle:thin:@150.31.22.146:1521:FILTDB" removeAbandoned="true" removeAbandonedTimeout="60"/>





댓글