2012-12-10 20 views
6

मैं बहु थ्रेडेड एप्लिकेशन (एक सर्वर) पर काम कर रहा हूं जहां मैं एक समय में 2000 क्लाइंट को संभालने के लिए उपयोग करता था और मैं प्रत्येक थ्रेड में MySQL डेटाबेस का अलग डेटाबेस कनेक्शन खोल रहा हूं। तो मैंने कनेक्शन पूलिंग सक्षम कर दी है। मैंने कई ब्लॉकों पर खोज की है कि कनेक्शन का उपयोग करने के बाद हमें इसे बंद करना चाहिए, फिर यह पूल पर वापस आ जाएगा और अन्य थ्रेड द्वारा इसका उपयोग किया जाएगा। दूसरी तरफ हम जानते हैं कि कनेक्शन बनाने का समय लेने वाली प्रक्रिया है। तो मेरा सवाल यह है कि हमें कनेक्शन पूलिंग में कनेक्शन क्यों बंद करना चाहिए। और कनेक्शन को खुला रखने या उन्हें बंद रखने के लिए बेहतर क्या है?सी # क्या मुझे कनेक्शन पूलिंग में खुले कनेक्शन रखना चाहिए

उत्तर

6

हम जानते हैं कि कनेक्शन बनाने एक समय लेने वाली प्रक्रिया

सही है - यही कारण है कि हम कनेक्शन पूल है। वे कनेक्शन बनाए रखते हैं, इसलिए आप नए नहीं बनाते हैं।

कारण है कि हम

तो वे पूल में लौटे रहे हैं पूलिंग अन्य थ्रेड द्वारा प्रयोग की जाने सिलसिले में कनेक्शन बंद कर देना चाहिए।

कनेक्शन महंगे संसाधन हैं, इसलिए आप उन्हें जितनी जल्दी हो सके खोलना, उपयोग करना और बंद करना चाहते हैं, इसलिए वे पूल में वापस आ जाएंगे और अन्य धागे के लिए उपलब्ध होंगे।

+0

आपके लिए धन्यवाद ओडेड का उत्तर दें। –

1

जब आप पूल बंद करते हैं तो 'बंद करें'; आप कह रहे हैं कि आप कनेक्शन के साथ हैं और पूल इसे फिर से उपयोग कर सकता है।

कॉलिंग बंद शारीरिक रूप से कनेक्शन को फाड़ नहीं देता है। कनेक्शन को शारीरिक रूप से बंद होने पर यह निर्धारित करने के लिए पूल का अपना तर्क है।

+0

धन्यवाद रिचर्ड मैं सोच रहा था कि कनेक्शन बंद करने पर शारीरिक रूप से बंद हो गया है। लेकिन ऐसा नहीं है। अब मैं कनेक्शन पूलिंग के बारे में स्पष्ट हूं :) –

संबंधित मुद्दे