हमारे पास सी # क्लाइंट, सी # डब्ल्यूसीएफ वेब सेवा परत, और एक SQL सर्वर डेटाबेस के साथ 3-स्तरीय एप्लिकेशन है। वेब सेवा ADO.NET के साथ डेटाबेस से जुड़ती है। हमारे सभी सी # कोड .NET Framework 2.0 का उपयोग कर रहे हैं।निगरानी एडीओ.NET कनेक्शन ओपन टाइम
हाल ही में, एक ग्राहक ने हमारे आवेदन पर एक तनाव परीक्षण किया। परीक्षण के दौरान, वेब सर्वर ने निम्नलिखित त्रुटियों को उत्पन्न किया:
कनेक्शन स्ट्रिंग '...' के लिए डेटाबेस से कनेक्ट नहीं हो सका। मध्यांतर बीत गया। ऑपरेशन पूरा होने से पहले समय समाप्ति अवधि समाप्त हो गई है या सर्वर प्रतिक्रिया नहीं दे रहा है।
मुझे पता है कि कनेक्शन पूल भरने पर कनेक्शन त्रुटियों को पकड़ने के तरीके हैं और कनेक्शन पूल के बाहर कनेक्शन प्राप्त करने का प्रयास करें। हमें कई प्रश्न भी मिलते हैं जिन्हें ट्यून करने की आवश्यकता होती है, लेकिन वे वेब सर्वर कनेक्शन टाइमआउट की व्याख्या नहीं करते हैं।
हम यह पता लगाने की कोशिश कर रहे हैं कि क्यों वेब सर्वर डेटाबेस से कनेक्ट हो रहा था। मैंने सभी ADO.NET performance counters को सक्षम करने के लिए वेब सर्वर सेट अप किया है। हालांकि, मुझे टाइमआउट या कनेक्शन कनेक्ट करने या कनेक्शन करने के लिए आवश्यक समय से संबंधित कुछ भी नहीं दिखता है। आदर्श रूप से, हम अन्य ADO.NET काउंटर के बगल में perfmon
में कनेक्शन समय को ग्राफ़ करने में सक्षम होंगे।
क्या कनेक्शन प्राप्त करने में ADO.NET प्रदर्शन की निगरानी करने का कोई तरीका है?
मैं कल्पना हम कनेक्शन को खोलने के लिए प्रयास समय से हमारे अपने "औसत कनेक्शन खुला समय" प्रदर्शन काउंटर बना सकते हैं, लेकिन मैं नहीं बल्कि कुछ पहले से मौजूद है का उपयोग करेंगे।
क्या एसक्यूएल प्रोफाइलर इस संबंध में मदद करेगा? –
@MrMoose: प्रोफाइलर ने कुछ समस्या प्रश्नों को खोजने में बहुत मदद की। लेकिन जब वे ऊपर जाते हैं और जब वे समय समाप्त करते हैं तो कनेक्शन समय की निगरानी करने के लिए मुझे कुछ विशिष्ट की आवश्यकता होती है। –