वर्तमान में हमारे हाथों में थोड़ी सी स्थिति है - ऐसा लगता है कि कोई, कहीं कोड में कनेक्शन बंद करना भूल गया है। परिणाम यह है कि कनेक्शन का पूल अपेक्षाकृत जल्दी समाप्त हो गया है। एक अस्थायी पैच के रूप में हमने वेब सेवा पर हमारी कनेक्शन स्ट्रिंग में Max Pool Size = 500;
जोड़ा, और जब तक हम इसे समझ नहीं लेते, तब तक सभी कनेक्शन खर्च होने पर रीसायकल पूल जोड़ा जाता है।पूल में सभी कनेक्शन उपयोग में हैं
अब तक हम यह किया है:
SELECT SPId
FROM MASTER..SysProcesses
WHERE DBId = DB_ID('MyDb') and last_batch < DATEADD(MINUTE, -15, GETDATE())
SPID के 15 मिनट के लिए इस्तेमाल नहीं कर रहे हैं पाने के लिए। कनेक्शन हेरफेर के सम्बन्ध में आधार स्तर पर या तो कुछ अर्थ
DBCC INPUTBUFFER(61)
लेकिन प्रश्नों से प्रदर्शित विभिन्न रहे हैं, टूट गया था, या हमारे कटौती गलत है: अब हम क्वेरी है कि पिछले मार डाला गया था के साथ उस SPID का उपयोग कर पाने के लिए कोशिश कर रहे हैं। ..
क्या हमारी सोच में कोई त्रुटि है? क्या डीबीसीसी/sysprocesses परिणाम देते हैं जो हम उम्मीद कर रहे हैं या क्या कुछ साइड इफेक्ट कैच है? (उदाहरण के लिए, पूल प्रभाव में कनेक्शन?)
(कृपया, क्या हम के बाद से लोगों को लगता है कि कोड किया कई और सभी उपस्थित नहीं अभी हैं एसक्यूएल का उपयोग कर पता लगा करने के लिए छड़ी)
'कोड वाले लोग बहुत सारे हैं और अभी सभी मौजूद नहीं हैं .. मुझे नहीं लगता कि वे वहां मौजूद थे जब वे अपने एसक्यूएल कनेक्शन बंद करना भूल गए थे। ;) –
आपके पास स्रोत कोड सही है? सभी कनेक्शन खोलने और उन्हें बंद करने के लिए देखना कठिन नहीं होना चाहिए, बशर्ते वे जानबूझकर कनेक्शन को पास नहीं कर रहे हैं ... –
@ विल्ल @ मिच - आप * कोड नहीं देखना चाहते हैं, मेरा विश्वास करो :) लेकिन, आखिरकार, अंत में यह एकमात्र विकल्प था ... और हमने इसे हर जगह कोशिश करने के लिए अंततः {करीबी} डालकर तय किया ... – veljkoz