많은 사람들의 문제JDBC드라이버는 하나의 스레드만 사용할 수 있다는 것입니다.연결언제든지 --- 그렇지 않으면
다른 스레드가 결과를 받는 동안 다른 스레드가 쿼리를 보낼 수 있습니다.
이는 심각한 혼란을 야기할 수 있습니다.
그포스트그레SQL JDBC드라이버는 스레드로부터 안전합니다. 결과적으로 애플리케이션이 여러 스레드를 사용하는 경우 복잡한 알고리즘에 대해 걱정할 필요가 없습니다. 한 번에 하나의 스레드가 데이터베이스를 사용합니다.
스레드가 연결을 사용하려고 시도하는 동안 다른 스레드는
그것을 사용하고 있으면 다른 스레드가 작업을 완료할 때까지 기다립니다.
현재 운영. 작업이 일반인 경우SQL문을 사용하면 작업은 다음으로 구성됩니다.
명세서 전송 및 검색결과세트(전체). 빠른 경로 호출인 경우
(예: 큰 객체에서 블록 읽기) 다음으로 구성됩니다.
해당 데이터를 보내고 검색합니다.
이것은 응용프로그램과 애플릿에는 괜찮지만
서블릿의 성능 문제. 스레드가 여러 개인 경우
쿼리를 수행하면 하나를 제외한 각각이 일시 중지됩니다. 이 문제를 해결하려면,
연결 풀을 생성하는 것이 좋습니다. 언제라도
스레드가 데이터베이스를 사용해야 하는 경우 관리자 클래스에 다음을 요청합니다.연결객체. 매니저
스레드에 대한 무료 연결을 전달하고 이를 통화 중으로 표시합니다. 만약
무료 연결을 사용할 수 없습니다. 연결이 열립니다. 일단 스레드
연결 사용이 끝나면 관리자에게 반환합니다.
그런 다음 닫거나 풀에 추가할 수 있습니다. 매니저
또한 연결이 아직 살아 있는지 확인하고 제거합니다.
죽은 경우 수영장에서. 연결 풀의 아래쪽
새로운 세션이 발생하기 때문에 서버의 부하가 증가한다는 것입니다.
각각에 대해 생성됩니다.연결객체. 이는 귀하와 귀하의 애플리케이션 요구 사항에 달려 있습니다.