पृष्ठभूमि: मैं अपने आवेदन को npgsql v1 से npgsql v2.0.9 में ले जा रहा हूं। मेरे आवेदन को चलाने के कुछ मिनटों के बाद, मुझे एक सिस्टम मिलता है। अपवाद: पूल से कनेक्शन प्राप्त करते समय टाइमआउट।npgsql लीकिंग पोस्टग्रेज़ डीबी कनेक्शन: कनेक्शन की निगरानी करने का तरीका?
वेब का दावा है कि यह कनेक्शन लीक करने के कारण है (एक डीबी कनेक्शन खोलना, लेकिन उन्हें ठीक से बंद नहीं करना)।
तो
मैं npgsql में postgres कनेक्शन लीक निदान करने के लिए कोशिश कर रहा हूँ।
आसपास के विभिन्न वेब साहित्य से; लीकिंग कनेक्शन का निदान करने का एक तरीका है npgsql पर लॉगिंग सेट करना, और लॉग में लीकिंग कनेक्शन चेतावनी संदेश की तलाश करना। समस्या यह है कि, मैं इस संदेश को कहीं भी लॉग में नहीं देख रहा हूं।
मुझे उपयोगिता भी मिली जो npgsql कनेक्शन पर नज़र रखता है, लेकिन यह अस्थिर और दुर्घटनाग्रस्त है।
तो मुझे मैन्युअल रूप से कोड का निरीक्षण छोड़ दिया गया है। प्रत्येक जगह जो एक npgsql कनेक्शन बनाता है, उसके लिए आखिरकार ब्लॉक का निपटान होता है। प्रत्येक स्थान के लिए जो एक डाटाएडर खोलता है, कमांडबिहियर। क्लोजकनेक्शन का उपयोग किया जाता है (और डेटरेडर का निपटारा किया जाता है)।
कोई अन्य स्थान जांचने के लिए या कोई पूल कनेक्शन लीक करने के लिए एक तरीका सुझा सकता है?
मुझे एक ही समस्या है। लेकिन जब मैं डीबीकनेक्शन का उपयोग करता हूं तो मुझे कनेक्शन केवल रिसाव मिलते हैं। बेजिन ट्रान्सएक्शन और डीबीट्रांसक्शन। कॉमिट/रोलबैक। मैं यह सुनिश्चित कर रहा हूं कि मैं सभी कनेक्शनों को ठीक से बंद/निपटान करता हूं लेकिन कोई मदद नहीं करता हूं। मुझे लगता है कि यह एनपीजीएसक्ल के साथ ही एक समस्या है, न कि हमारे कोड। यदि आपको समाधान मिल गया है तो मुझे बताएं। धन्यवाद। – Fung