답변:
데이터베이스 연결 풀링은 데이터베이스 연결을 열어 두어 다른 사람이 재사용 할 수 있도록하는 방법입니다.
일반적으로 데이터베이스 연결을 여는 것은 특히 데이터베이스가 원격 인 경우 비용이 많이 드는 작업입니다. 네트워크 세션을 열고 인증하고 권한을 확인해야합니다. 풀링은 연결을 활성 상태로 유지하여 나중에 연결이 요청 될 때 활성 연결 중 하나가 다른 연결을 만드는 데 우선적으로 사용됩니다.
다음 몇 단락에 대해서는 다음 다이어그램을 참조하십시오.
+---------+
| |
| Clients |
+---------+ |
| |-+ (1) +------+ (3) +----------+
| Clients | ===#===> | Open | =======> | RealOpen |
| | | +------+ +----------+
+---------+ | ^
| | (2)
| /------\
| | Pool |
| \------/
(4) | ^
| | (5)
| +-------+ (6) +-----------+
#===> | Close | ======> | RealClose |
+-------+ +-----------+
가장 간단한 형식으로, "실제"와 유사한 개방 연결 API 호출과 유사한 API 호출 (1)입니다. 먼저 풀에서 적절한 연결을 확인하고 (2) 사용 가능한 경우 클라이언트에 제공됩니다. 그렇지 않으면 새 것이 생성됩니다 (3).
A "에 적합한 연결은"다만 이미 하나 있다 (예 : 데이터베이스 인스턴스, 자격 증명, 그리고 아마도 다른 것들로) 올바른 정보를 사용하여 데이터베이스에 액세스 할 수 있습니다.
마찬가지로, 실제 닫기 연결을 실제로 호출하지 않고 나중에 사용하기 위해 연결을 풀 (5)에 넣는 닫기 API 호출 (4)이 있습니다. 어떤 시점에서 풀의 연결이 실제로 닫힐 수 있습니다 (6).
꽤 간단한 설명입니다. 실제 구현은 여러 서버 및 여러 사용자 계정에 대한 연결을 처리 할 수 있으며, 일부 연결 기준을 미리 할당하여 일부는 즉시 준비 될 수 있으며, 사용 패턴이 조용 해지면 실제로 이전 연결을 닫을 수 있습니다.
이미지는 천 단어를 말합니다 (paxdiablo는 멋진 설명을했습니다).
연결 풀링 구현을 위해 Apache Commons 라이브러리를 투명하게 사용할 수 있습니다. http://commons.apache.org/dbcp/
DBCP는 지원되는 최대 절전 모드 풀이기도합니다. http://www.informit.com/articles/article.aspx?p=353736&seqNum=4
연결 풀링 개념은 Java뿐만 아니라 많은 프로그래밍 언어에서 사용됩니다. 새로운 연결 객체를 생성하는 것은 비용이 많이 들기 때문에 가상 풀을 생성하는 라이프 사이클에서 고정 된 수의 연결이 유지되고 유지됩니다. Java Just ( http://javajust.com/javaques.html )는이 페이지의 질문 14를 참조하십시오.