回答:
データベース接続プーリングは、他のユーザーが再利用できるようにデータベース接続を開いたままにするために使用される方法です。
通常、データベース接続を開くことは、特にデータベースがリモートである場合、負荷の高い操作です。ネットワークセッションを開いたり、認証したり、承認を確認したりする必要があります。プーリングは接続をアクティブに保ち、後で接続が要求されたときに、アクティブな接続の1つを使用して、別の接続を作成する必要がないようにします。
次のいくつかの段落については、次の図を参照してください。
+---------+
| |
| Clients |
+---------+ |
| |-+ (1) +------+ (3) +----------+
| Clients | ===#===> | Open | =======> | RealOpen |
| | | +------+ +----------+
+---------+ | ^
| | (2)
| /------\
| | Pool |
| \------/
(4) | ^
| | (5)
| +-------+ (6) +-----------+
#===> | Close | ======> | RealClose |
+-------+ +-----------+
最も単純な形式では、「実際の」呼び出しに似たオープン接続API呼び出しに似たAPI呼び出し(1)です。これはまず、適切な接続(2)があるかどうかプールをチェックし、利用可能な場合は、それがクライアントに与えられます。そうでなければ、新しいものが作成されます(3)。
「適切な接続は」ちょうどもう一つ有する(例えば、データベース・インスタンス、資格情報、およびおそらく他のもののような)正しい情報を使用してデータベースにアクセスします。
同様に、実際に呼び出すことはありません近いAPIの呼び出し(4)がありますリアルクローズ接続は、むしろそれは、後で使用するためにプール(5)への接続を置きます。ある時点で、プール内の接続が実際に閉じられることがあります(6)。
これはかなり単純な説明です。実際の実装では、複数のサーバーと複数のユーザーアカウントへの接続を処理でき、接続のベースラインを事前に割り当てて、すぐに使用できるようにし、使用パターンが静まると実際に古い接続を閉じる場合があります。
画像は千の言葉を話します(paxdiabloは素晴らしい説明をしました):
接続プーリングの実装にapache commonsライブラリを透過的に使用できます:http : //commons.apache.org/dbcp/
DBCPは、サポートされているHibernateプールでもあります。http://www.informit.com/articles/article.aspx? p = 353736&seqNum = 4
接続プーリングの概念は、Javaだけでなく、多くのプログラミング言語にまたがっています。新しい接続オブジェクトの作成にはコストがかかるため、固定数の接続が作成され、ライフサイクルで維持され、仮想プールが作成されます。JavaJust(http://javajust.com/javaques.html)このページの質問14を参照してください