2012-01-27 14 views
6

के बाद कनेक्शन अभी भी निष्क्रिय है मेरे पास एक सी # क्लाइंट एप्लिकेशन है जिसे प्रत्येक 15 मिनट में पोस्टग्रेस डीबी पर एक टेबल की जांच करने की आवश्यकता होती है। समस्या यह है कि मुझे इस क्लाइंट को कम से कम 200 क्लाइंट में स्थापित करने की आवश्यकता है, इसलिए इसके लिए मुझे क्वेरी के बाद डीबी कनेक्शन बंद करना होगा।कनेक्शन

मैं .Close() विधि का उपयोग करता हूं, लेकिन अगर मैं पोस्टग्रेस डीबी पर pg_stat_activity तालिका पर जांच करता हूं, तो मैं आईडीएलई स्थिति में कनेक्शन अभी भी खोल सकता हूं। मैं उस मुद्दे को कैसे ठीक कर सकता हूं? क्या निश्चित रूप से कनेक्शन बंद करना संभव है?

धन्यवाद, एंड्रिया

+0

मैं समझना चाहता हूं कि अगर इसे निष्क्रिय स्थिति दें तो समस्या एक समस्या है। मैं सिर्फ उत्सुक हूँ! – Ismael

+0

अधिकतम कनेक्शन संख्या 100 और 200 क्लाइंट्स के साथ, हाँ, यह है :) –

+0

एक ही समस्या का एक वैकल्पिक दृष्टिकोण है कि 100-200 क्लाइंट आपके द्वारा लिखे गए एक सर्वर एप्लिकेशन से कनेक्ट हों (शायद आईआईएस पर एक वेब एप्लिकेशन) , और फिर वह डेटाबेस का एकल ग्राहक बन जाता है। अन्य चीजों के अलावा, यह आपको postgresql को बहुत अधिक लॉक करने की अनुमति देता है। उस दृष्टिकोण के साथ आप मेरे उत्तर में जो सुझाव देते हैं उसे पूर्ववत करना चाहते हैं, क्योंकि आप पूलिंग करना चाहते हैं कि उन 100-200 उपयोगकर्ताओं के बीच कुछ हद तक कनेक्शन साझा किए जाएं। –

उत्तर

10
सबसे ADO.NET प्रदाताओं की तरह

, Npgsql कनेक्शन पूलिंग डिफ़ॉल्ट रूप से उपयोग करता है। जब आप Close()NpgsqlConnection ऑब्जेक्ट, वास्तविक अंतर्निहित कनेक्शन का प्रतिनिधित्व करने वाला एक आंतरिक ऑब्जेक्ट जो एनजीपीएसक्यूएल का उपयोग पुन: उपयोग करने के लिए पूल में जाता है, तो एक और अनावश्यक रूप से बनाने के ऊपरी हिस्से को बचाता है। (अधिक के लिए What does "opening a connection" actually mean? देखें)।

यह अधिकांश अनुप्रयोगों को अच्छी तरह से उपयुक्त बनाता है, क्योंकि यह एक दूसरे के स्थान पर कई बार कनेक्शन का उपयोग करना आम है।

यह आपके अनुरूप नहीं है, लेकिन यदि आप अपनी कनेक्शन स्ट्रिंग में Pooling=false विकल्प शामिल करते हैं, तो यह इस डिफ़ॉल्ट को ओवरराइड करेगा, और Close() वास्तव में वास्तविक कनेक्शन बंद कर देगा।

+4

यही कारण है कि मुझे इस वेबसाइट को पसंद है! बहुत कुशल लोगों से त्वरित resposne! सहायता के लिए धन्यवाद! –

+0

क्या मतदान रोकने और बंद करने पर सभी "पृष्ठभूमि" कनेक्शन बंद करने की संभावना है? –

+0

@ डोमिनिक जोनास जो पहले ही शट डाउन पर होना चाहिए। –

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