Pool 에러(Cannot get a connection, pool error Timeout waiting for idle object)
프로젝트를 진행하다 에러가 발생하였다.
Could not open JDBC Connection for transaction;
nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException:
Cannot get a connection, pool error Timeout waiting for idle object'
원인파악
Connection Pool 이 서로 겹치는 현상으로 추정된다.
톰캣의 server.xml 을 확인해보니
maxActive="4" maxIdle="2" 로 구성되어 있었다.
maxIdle : 사용되지 않고 Pool에 저장될 수 있는 최대 connection 수(음수일 경우 제한 없음)
maxActive : 최대 active connection 개수
그래서 maxActive와 maxIdle의 옵션을 변경하기로 결정하였다.
문제해결
<GlobalNamingResources>
<Resource
maxIdle="30"
maxActive="100"/>
</GlobalNamingResources>
하지만 이전 프로젝트에서는 이러한 문제가 발생하지 않았다.
사용자수가 100명이 넘다 하더라도...
개인적인 생각으로 pool 선언을 프로젝트 내부 소스가 아닌 톰캣에서 설정하고 있기때문에
생긴 문제라고 생각한다.
'개발 > was' 카테고리의 다른 글
이클립스 톰캣 Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds. (0) | 2018.07.03 |
---|---|
(리눅스, 윈도우)톰캣 server.xml 설정_ 소스올리기 (0) | 2018.06.19 |
이클립스 java.lang.OutOfMemoryError: Java heap space (0) | 2018.05.23 |
리눅스 환경에서 톰캣 하나 더 띄우기(멀티톰캣, 톱캣2개) (2) | 2017.11.28 |
톰켓 에러페이지 설정(정보 및 버전 감추기) (4) | 2017.10.21 |
톰켓 메모리 증진 방법(java.lang.OutOfMemoryError: PermGen space) (0) | 2017.10.20 |
Tomcat Post로 넘어가는 파라미터 갯수와 size 설정 (4) | 2017.09.10 |