2012-11-03 10 views
5

सबसे पहले मैं आपको यह बताना चाहता हूं कि जिस प्रोग्राम के साथ मैं काम कर रहा हूं वह पहले ही संकलित है और मैं स्रोत कोड को नहीं देख सकता।एसक्यूएल सर्वर 2008 आर 2: कुछ समय के बाद कनेक्शन को अस्वीकार करता है

तो, यहाँ मेरी समस्या है:

अनुप्रयोगों सफलतापूर्वक एक विशिष्ट डेटाबेस के लिए 31 के बारे में कनेक्शन खोलता है। जब यह 32 वां कनेक्शन खोलने का प्रयास करता है, तो सभी कनेक्शन पिछले 31 कनेक्शन सहित बंद करना शुरू कर देते हैं।

ईमानदार होने के लिए, मुझे नहीं पता कि इन अनुप्रयोगों को उसी 2-3 टेबल के लिए कितने कनेक्शन की आवश्यकता है, लेकिन सभी कनेक्शन बंद होने के बाद भी एप्लिकेशन बंद हो जाता है।

17:41:38 004db680 ड्राइवर = {एसक्यूएल सर्वर }; सर्वर = 192.168.1.8: 1433; यूआईडी = उपयोगकर्ता, पीडब्ल्यूडी = पासवर्ड; डेटाबेस = डेटाबेस

17:41:38 004db680 08001 0000000e [माइक्रोसॉफ्ट] [ओडीबीसी एसक्यूएल सर्वर चालक] [डीबीएनईटीएलबीबी] अमान्य कनेक्शन। 0x00000000 17:41:38 004db680 01000 0000000e [माइक्रोसॉफ्ट] [ओडीबीसी एसक्यूएल सर्वर चालक] [डीबीएनईटीएलबीबी] कनेक्शन ओपन (पार्सकनेक्ट पैराम्स())। 0x00000000

यह उस एप्लिकेशन से लॉग आउटपुट है।

कुछ अतिरिक्त जानकारी:

  • SYN हमला सुरक्षा विकलांग के साथ भी यही समस्या
  • डाटाबेस अधिकतम कनेक्शन 30k +
+0

आवेदन प्रबंधित कोड में लिखा गया था, तो आप decompiling यह कोशिश कर सकते। मैंने पाया है कि टेलीरिक का [जस्ट डीकंपाइल] (http://www.telerik.com/products/decompiler.aspx) बहुत अच्छी तरह से काम करता है। – Alexander

+0

क्या आप कनेक्शन स्ट्रिंग को आपूर्ति कर सकते हैं जो आप कृपया उपयोग कर रहे हैं? –

+0

मुझे लगता है कि जब 32 वें कनेक्शन विफल हो जाते हैं तो आपका एप्लिकेशन एक अनचाहे त्रुटि फेंकता है और यह बंद हो जाता है और यह पहले सभी अन्य कनेक्शन बंद करने जा रहा है, इसलिए आपकी समस्या अधिकतम कनेक्शन तक पहुंचने वाले 32 वें कनेक्शन की विफलता में है;)। –

उत्तर

1

भागो अपने डेटाबेस पर इस बयान आप अधिकतम कनेक्शन से अधिक कर रहे हैं देखने के लिए कर रहे हैं :

SELECT @@MAX_CONNECTIONS

0

कुछ बातें पहले और एप्लिकेशन के निष्पादन के दौरान

  1. भागो एसक्यूएल प्रोफाइलर मन में आते हैं। आप क्या उत्पादन देखते हैं? शायद एक डेडलॉक हो रहा है?

  2. क्या इससे पहले काम किया गया है और हाल ही में काम करना बंद कर दिया है? यदि हां, तो क्या आपने SQL पैक में सर्विस पैक या अन्य फ़िक्स लागू किया था?

  3. यदि आपका ऐप बहु-थ्रेडेड है, और वे प्रति थ्रेड एक्स कनेक्शन कर रहे हैं, तो हो सकता है कि ऐप को एकाधिक कोर की बजाय एकल कोर पर चलाने के लिए सीमित करें। यह एक गंदे हैक है लेकिन यह मदद कर सकता है।

  4. क्या होगा यदि आपने 32x कमांड प्रॉम्प्ट विंडोज़ खोले हैं और फिर SQL से 32 कनेक्शन खोलने के लिए osql या sqlcmd उपयोगिताओं का उपयोग किया है? मूर्खतापूर्ण लगता है लेकिन अगर उपर्युक्त फल कम नहीं करता है तो आप देख सकते हैं कि यह केवल कनेक्शन की संख्या है या अगर कुछ और है। यह कुछ और हो सकता है

    • डेटा संबंधित (देखें # 1); या
    • चालक संबंधित (ऐप के अंदर)। यह ओडीबीसी का उपयोग कर रहा है, और शायद यह पुराना है (आप यह नहीं कहते कि विंडोज संस्करण, एसक्यूएल संस्करण, आदि क्या चल रहा है) आप एमडीएसी (माइक्रोसॉफ्ट डेटा एक्सेस कंपोनेंट्स) को अपडेट करने का प्रयास कर सकते हैं?
संबंधित मुद्दे