आप ADO.NET का उपयोग कर रहे हैं, इसलिए आपको ADO.NET के इनबिल्ट क्षमताओं पूलिंग कनेक्शन का उपयोग कर सकते हैं। असल में, मुझे इसे परिष्कृत करने दें: आप हमेशा ADO.NET की इनबिल्ट कनेक्शन पूलिंग क्षमताओं का उपयोग करें। ऐसा करके आप पृष्ठभूमि में अपने कनेक्शन को पारदर्शी रूप से प्रबंधित करने के लिए .NET रनटाइम प्राप्त करेंगे। यह कनेक्शन थोड़ी देर के लिए खुला रखेगा, भले ही आपने उन्हें बंद कर दिया हो और यदि आप कोई नया कनेक्शन खोलें तो उनका पुन: उपयोग करें। यह वास्तव में तेज़ सामान है।
अपने कनेक्शन स्ट्रिंग में उल्लेख करना सुनिश्चित करें कि आप पूल कनेक्शन चाहते हैं क्योंकि यह डिफ़ॉल्ट व्यवहार नहीं हो सकता है।
using (var connection = SomeMethodThatCreatesAConnectionObject())
{
// do your stuff here
connection.Close(); // this is not necessary as
// Dispose() closes it anyway
// but still nice to do.
}
है आप कैसे अपेक्षा की जाती रहे हैं यही कारण है कि यह करने के लिए:
आप केवल स्थानीय रूप से कनेक्शन बनाने के लिए जब आप उन्हें जरूरत है, तो वहाँ एक नया कनेक्शन बनाने में कोई भूमि के ऊपर है, क्योंकि वे backrgound में जमा कर रहे हैं की जरूरत है कुल मिलाकर।
स्रोत
2009-11-10 12:35:54
कनेक्शन को खोलकर वास्तव में प्राप्त करने के लिए कुछ भी नहीं है (यह मानते हुए कि प्रदाता कनेक्शन पूलिंग का उपयोग करता है)। आधिकारिक MySQL कनेक्टर/नेट प्रदाता डिफ़ॉल्ट रूप से कनेक्शन पूलिंग का उपयोग करता है। ओपी का उल्लेख नहीं है कि वे वास्तव में किस प्रदाता का उपयोग कर रहे हैं, लेकिन यदि यह पूलिंग का समर्थन करता है तो मैं खुली देर/बंद प्रारंभिक रणनीति का उपयोग करता हूं और प्रदाता को अंतर्निहित भौतिक कनेक्शन प्रबंधित करने देता हूं। – LukeH
पुराने धागे के लिए टिप्पणी जोड़ने के लिए खेद है। मैंने http://download.oracle.com/javadb/10.3.3.0/devguide/cdevconcepts89498.html पढ़ा है, ऐसा लगता है जब तक आपके एप्लिकेशन में बहु थ्रेड/लेन-देन होते हैं, प्रत्येक थ्रेड को एक अलग कनेक्शन में असाइन करना अच्छा अभ्यास है । धन्यवाद। –