2012-02-20 21 views
5

यह मुझे मार रहा है। हमारे पास एक MySQL डेटाबेस पर ASP.NET/Mono एप्लिकेशन है। महीनों के लिए हम पूरी तरह से यादृच्छिक लेकिन "निर्दिष्ट किसी भी MySQL होस्ट से कनेक्ट करने में असमर्थ" की लगातार घटना से पीड़ित हैं। मैं किसी भी तरह से MySQL समर्थक नहीं हूं, और मुझे उम्मीद है कि यह कुछ मूर्खतापूर्ण है।MySQL * पूरी तरह से यादृच्छिक * निर्दिष्ट किसी भी MySQL होस्ट से कनेक्ट करने में असमर्थ

सुनिश्चित वर्णन:
MySQL 5.5.17
MySQL कनेक्टर/नेट 6.4.4
मोनो 2.10.8
monodevelop 2.8.6.5

कनेक्शन स्ट्रिंग: सर्वर = स्थानीय होस्ट, 3306; डेटाबेस = xxx ; यूआईडी = xxx; पीडब्ल्यूडी = xxx; कनेक्शन टाइमआउट = 9 0; एन्क्रिप्ट = झूठी;

मैक्स_कनेक्शन 150 पर सेट है। 5 से अधिक कनेक्शन नहीं हैं, और वे सभी सक्रिय हैं (शायद पूलिंग के कारण)।

  • एप्लिकेशन सी # एएसपी.नेट 3.5 है। विंडोज/आईआईएस पर वर्षों के लिए एक चट्टान के रूप में ठोस चलाता है। नौ महीने पहले हमारे बाजार ने हमें विंडोज़ से उतरने का नेतृत्व किया, इसलिए हम (आसानी से मैं जोड़ सकता हूं) पूरी चीज को मोनो/अपाचे में ले जाया गया।

  • समस्या केवल मोनो पक्ष पर होती है, लेकिन यह महत्वपूर्ण है क्योंकि हमने अपने विंडोज़ समर्थन को सेवानिवृत्त कर दिया है।

  • औसतन 10 गुना प्रति घंटा होता है, लेकिन अंतराल जंगली रूप से भिन्न होता है।

  • समस्या निम्न विन्यास में देखा गया है:

उबंटू 11/Apache2/mod_mono
OSX शेर/Apacke2/mod_mono
उबंटू 11/xsp2/monodevelop डिबग सर्वर
OSX शेर/xsp2/monodevelop डिबग सर्वर

  • keepaliv साथ गड़बड़ है ई, wait_timeout, कनेक्शनसेट, आदि कोई फायदा नहीं हुआ। समय पर कोई प्रभाव नहीं पड़ता है। त्रुटि conn.open पर तात्कालिक है - किसी भी कनेक्शन टाइमआउट के बाद नहीं।

  • यहां एक सुराग है - ऐप बिल्कुल पूलिंग = झूठी के साथ नहीं चलेगा। लगभग हर कनेक्शन प्रयास विफल रहता है। बेशक मैं पूलिंग करना चाहता हूं, लेकिन मुझे यकीन नहीं है कि यह बिना काम क्यों करेगा।

  • एप्लिकेशन "दिल की धड़कन" (डेटाबेस में उपयोगकर्ता का सत्र) - हर 2 मिनट में बनाया गया है।

  • सबसे ज्यादा गड़बड़ाना? इसे पूरी तरह से चल रहे माहौल में मांग पर पुन: उत्पन्न नहीं किया जा सकता है - यह यादृच्छिक है। मैंने क्वेरी आकार, निष्पादन समय, आदि की जांच की है

  • बिल्कुल एक परिदृश्य में मैं इसे कर सकता हूं: उबंटू सर्वर या ओएसएक्स के प्रारंभिक स्टार्टअप पर, पहली बार मोनो इसे MySQL के साथ पहला कनेक्शन बनाता है - यह तब होगा। उसके बाद, यह किसी का अनुमान है।

+0

max_connections सीमाओं के बारे में कैसे? आप कई बार अधिकतम अनुमति दे सकते हैं। –

+0

यह संभावना नहीं है कि यह एक अच्छी तरह से पूछे जाने वाले प्रश्न के लिए पहले कनेक्शन – DNA

+0

+1 पर होता है, लेकिन मुझे लगता है कि यह serverfault.com –

उत्तर

0

ठीक है, यह पुरानी है, लेकिन मैं इस पर इतना समय खो दिया है, मैं है इस जीवन लेख मैं अंत में पाया बचत साझा करने के लिए: Getting Mono and Mysql to play nice together

और मुझे मामले के लिए योग लिंक 404 में किसी दिन समाप्त होता है: कनेक्शन स्ट्रिंग के प्रत्येक चर को परिभाषित किया जाना चाहिए। तो, हां, इसमें पोर्ट शामिल है, जिसे मुझे पहले कभी भी मेरे जीवन में कनेक्शन स्ट्रिंग में परिभाषित नहीं करना पड़ा था।

मेरे लिए यह समस्या हल हो गई।

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