이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

8.7. 다중 스레드 또는 서블릿에서 드라이버 사용 환경

많은 사람들의 문제JDBC드라이버 단 하나의 스레드만 a를 사용할 수 있다는 것입니다.연결언제든지 -- 그렇지 않으면 스레드 다른 사람이 결과를 받는 동안 쿼리를 보낼 수 있으며, 이는 데이터베이스 엔진에 좋지 않은 일입니다.

포스트그레SQL6.4 가져온 스레드 운전자 전체의 안전을 보장합니다. (표준JDBC6.3에서는 스레드 안전했지만 FastpathAPI아닙니다.) 결과적으로, 귀하의 경우 응용 프로그램은 여러 스레드를 사용하므로 걱정할 필요가 없습니다. 단 한 사람만이 사용하도록 보장하는 복잡한 알고리즘에 대해 언제든지 데이터베이스를 사용할 수 있습니다.

스레드가 연결을 사용하려고 시도하는 동안 다른 스레드는 그것을 사용하고 있으면 다른 스레드가 작업을 완료할 때까지 기다립니다. 현재 운영. 정규라면SQL문을 사용하면 작업은 다음으로 구성됩니다. 명세서 전송 및 검색결과세트(전체). 만약에빠른 경로호출(예: a에서 블록 읽기대형객체) 그렇다면 이제 해당 블록을 보내고 검색합니다.

이것은 응용프로그램과 애플릿에는 적합하지만 서블릿의 성능 문제. 서블릿을 사용하면 연결에 과부하가 걸립니다. 스레드가 여러 개인 경우 쿼리를 수행하면 각각 하나를 제외하고는 일시 중지됩니다. 그렇지 않을 수도 있습니다. 당신이 무엇을 쫓고 있는지.

이 문제를 해결하려면 다음과 같은 풀을 생성하는 것이 좋습니다. 연결. 스레드가 데이터베이스를 사용해야 할 때마다 관리자 클래스에게 a를 요청합니다.연결. 관리자는 스레드에 대한 무료 연결을 전달하고 이를 다음과 같이 표시합니다. 바쁘다. 무료 연결을 사용할 수 없으면 연결을 엽니다. 한 번 스레드가 작업을 마치면 이를 관리자에게 반환합니다. 그런 다음 닫거나 풀에 추가할 수 있습니다. 매니저는 그럴텐데 또한 연결이 아직 살아 있는지 확인하고 연결을 제거하십시오. 죽은 경우 풀.

따라서 서블릿의 경우 단일 서블릿 중 하나를 사용하는 것은 귀하에게 달려 있습니다. 연결 또는 풀. 풀의 장점은 스레드가 있다는 것입니다. 단일 네트워크로 인한 병목 현상을 겪지 않습니다. 연결. 단점은 부하가 증가한다는 것입니다. 서버마다 백엔드 프로세스가 생성되므로연결. 그것은 당신과 당신에게 달려 있습니다 응용 프로그램 요구 사항.