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"/>
아마도 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"/>
'TOMCAT > cannot get a connection, pool exhausted ' 카테고리의 다른 글
warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds (0) | 2011.05.11 |
---|
댓글