DBCP 데이터베이스 풀링을 사용하여 SQL Server에 연결하는 Java 응용 프로그램이 있습니다. 우리는 jtds 드라이버를 사용하고 있습니다.DBCP 데이터베이스 풀 initialSize가 선택되지 않았습니다. 로드로 풀리지 않는 풀
는 연결 구성은 다음과 같습니다 :
이initialSize=20
maxActive=100
minIdle=20
그래서 시작시 저는 데이터베이스 (20 개)의 연결을 볼 것으로 예상하지만, 난 단지 테스트 (16)를 볼 수는 16 개 연결에 initialSize가 결과 16 위의 값을 보여줍니다 시작시. 값을 16보다 낮게 설정하면 연결 수가 올바르게 계산됩니다. 이는 설정이 선택되었음을 나타냅니다.
다음으로 연결 수가 증가 할 것으로 예상하여 시스템을로드 상태로 만듭니다. 연결이 다른 높은 값으로 증가하는 대신 데이터베이스에서 16 개의 연결을 유지하려고합니다. 그것은 16에서 30 사이에 오르지 만 더 높은 값이 보일 때 그 값으로 빠르게 올라간 다음 16으로 다시 올라갑니다.
dbdb에 추가 db 연결이 다시 추가되지 않는다고 생각됩니다. 풀.
netstat 확인 이것이 일어날 때 많은 연결이 TIME_WAIT에 끝나는 것을 볼 수 있습니다. 이것은 내 dbcp 풀이 db 연결을위한 소켓을 닫고 있음을 나타냅니다.
처음 시작점이 16이라고 가정했는데, 그 번호보다 새로운 연결이 필요할 때 풀에 추가되어 전반적인 크기가 늘어났습니다. 여기서는 그렇지 않습니다.
우리는이 문제에 대해 현저한 생산 문제를 겪었으므로 생각이나 조언을 크게 부탁드립니다.