जवाबों:
डेटाबेस कनेक्शन पूलिंग एक तरीका है जो डेटाबेस कनेक्शन को खुला रखने के लिए उपयोग किया जाता है ताकि उनका उपयोग दूसरों द्वारा किया जा सके।
आमतौर पर, डेटाबेस कनेक्शन खोलना एक महंगा ऑपरेशन है, खासकर अगर डेटाबेस रिमोट है। आपको नेटवर्क सत्र खोलना होगा, प्रमाणित करना होगा, प्राधिकरण की जाँच करनी होगी, इत्यादि। पूलिंग कनेक्शन को सक्रिय रखता है, ताकि बाद में जब कनेक्शन का अनुरोध किया जाता है, तो सक्रिय लोगों में से एक का उपयोग दूसरे को बनाने के लिए किया जाता है।
अगले कुछ पैराग्राफ के लिए निम्नलिखित आरेख देखें:
+---------+
| |
| Clients |
+---------+ |
| |-+ (1) +------+ (3) +----------+
| Clients | ===#===> | Open | =======> | RealOpen |
| | | +------+ +----------+
+---------+ | ^
| | (2)
| /------\
| | Pool |
| \------/
(4) | ^
| | (5)
| +-------+ (6) +-----------+
#===> | Close | ======> | RealClose |
+-------+ +-----------+
यह सबसे सरल रूप में है, यह एक ओपन-कनेक्शन एपीआई कॉल के लिए सिर्फ एक समान एपीआई कॉल (1) है जो "वास्तविक" के समान है। यह पहले उपयुक्त कनेक्शन (2) के लिए पूल की जांच करता है और, यदि कोई उपलब्ध है, तो वह क्लाइंट को दिया जाता है। अन्यथा एक नया (3) बनाया जाता है।
एक "उपयुक्त कनेक्शन" सिर्फ एक है जो पहले से ही है सही जानकारी (जैसे डेटाबेस उदाहरण, क्रेडेंशियल्स, और संभवतः अन्य चीजों) का उपयोग करके डेटाबेस तक पहुंच रखता है।
इसी तरह, एक करीबी एपीआई कॉल (4) है जो वास्तव में वास्तविक करीबी कनेक्शन को कॉल नहीं करता है , बल्कि यह बाद में उपयोग के लिए पूल (5) में कनेक्शन डालता है। कुछ बिंदु पर, पूल में कनेक्शन वास्तव में बंद हो सकते हैं (6)।
यह एक बहुत ही सरल व्याख्या है। वास्तविक कार्यान्वयन कई सर्वरों और कई उपयोगकर्ता खातों से कनेक्शन को संभालने में सक्षम हो सकते हैं, वे कनेक्शन के कुछ आधार रेखा को पूर्व-आबंटित कर सकते हैं ताकि कुछ तुरंत तैयार हो जाएं, और उपयोग पैटर्न के शांत होने पर वे वास्तव में पुराने कनेक्शन को बंद कर सकते हैं।
छवियां एक हजार शब्द बोलती हैं (पैक्सिडैब्लो ने एक भयानक विवरण दिया):
पारदर्शी रूप से कार्यान्वयन पूलिंग कनेक्शन के लिए आप अपाचे कॉमन्स लाइब्रेरी का उपयोग कर सकते हैं: http://commons.apache.org/dbcp/
DBCP भी एक समर्थित हाइबरनेट पूल है: http://www.informit.com/articles/article.aspx?p=353736&seqNum=4
कनेक्शन पूलिंग अवधारणा न केवल जावा में बल्कि कई प्रोग्रामिंग भाषाओं में। एक नया कनेक्शन ऑब्जेक्ट बनाना महंगा है, इसलिए एक निश्चित संख्या में कनेक्शन बनाए गए हैं और जीवनचक्र में बनाए हुए हैं एक वर्चुअल पूल जावा जस्ट बना रहे हैं ( http://javajust.com/javaques.html ) इस पृष्ठ पर प्रश्न 14 देखें