पर नहीं, मैं अपने आवेदन पर एंटीटी फ्रेमवर्क का नवीनतम संस्करण उपयोग कर रहा हूं (लेकिन मुझे नहीं लगता कि ईएफ यहां मुद्दा है, बस यह बताएं कि ओआरएम हम क्या करते हैं उपयोग कर रहे हैं) और इस बहु-किरायेदार वास्तुकला है। मैं कुछ तनाव परीक्षण कर रहा था, जो सी # में बनाया गया था, जिसमें यह एक्स-संख्या कार्यों का निर्माण करता है जो कुछ सामान करने के समानांतर में चलता है। पूरी प्रक्रिया की शुरुआत में किसी बिंदु पर, यह प्रत्येक कार्य (इस मामले में प्रत्येक किरायेदार) के लिए एक नया डेटाबेस बनाएगा और फिर ऑपरेशन के बड़े पैमाने पर प्रक्रिया जारी रखेगा। लेकिन कुछ कार्यों पर, यह मेरे कोड के उस सटीक भाग पर 2 SQL अपवाद फेंकता है जहां यह एक नया डेटाबेस बनाने का प्रयास करता है।CREAT डेटाबेस विवरणों के समानांतर निष्पादन के परिणामस्वरूप त्रुटि होती है लेकिन अलग SQL सर्वर आवृत्ति
अपवाद # 1:
डेटाबेस 'मॉडल' पर विशेष ताला प्राप्त नहीं किया जा सका। बाद में ऑपरेशन का पुनः प्रयास करें। डाटाबेस तैयार करें विफल। सूचीबद्ध कुछ फ़ाइल नाम नहीं बनाया जा सकता है। संबंधित त्रुटियों की जांच करें।
अपवाद # 2:
समय समाप्त समाप्त हो गई है। के पूरा होने से पहले समय समाप्ति अवधि समाप्त हो गई है या सर्वर प्रतिक्रिया नहीं दे रहा है।
यह उन दोनों में से एक है और मेरे कोड की उसी पंक्ति पर फेंकता है (जब ईएफ डेटाबेस बनाता है)। स्पष्ट रूप से SQL सर्वर में, डेटाबेस बनाते समय यह एक समय में होता है और 'मॉडल' डेटाबेस को ताला लगाता है (here देखें) इस प्रकार कुछ कार्य प्रतीक्षा कर रहे हैं जो टाइमआउट फेंकता है या 'मॉडल' त्रुटि पर लॉक करता है।
उन परीक्षण हमारे विकास SQL सर्वर पर किया गया था 2014 उदाहरण (12.0.4213) और अगर मैं निष्पादित, कहते हैं, 100 समानांतर कार्यों वहाँ कुछ कार्यों पर फेंक दिया एक त्रुटि होने के लिए या बाध्य होगा कभी कभी भी लगभग आधे कार्य मैंने निष्पादित किया।
लेकिन यहाँ इन सभी में सबसे अधिक परेशान हिस्सा है, जब यह मेरे दूसरे एसक्यूएल सर्वर उदाहरण (12.0.2000), जो मैं अपने पीसी पर स्थानीय स्तर पर स्थापित किया है पर परीक्षण, ऐसी कोई त्रुटि फेंकता है और पूरी तरह से सभी कार्य पूर्ण होने मैंने निष्पादित किया (समानांतर में 1000 कार्य भी!)।
समाधान मैं अब तक की कोशिश की है, लेकिन काम नहीं किया:
- एफई में वस्तु संदर्भ से टाइमआउट बदल दिया अनंत
- कनेक्शन स्ट्रिंग पर एक लंबे समय तक या अनंत टाइमआउट जोड़ने की कोशिश की
- ईएफ पर एक रेट्री रणनीति जोड़ने का प्रयास किया और इसे अधिक समय तक चलाया और
- वर्तमान में, हमारे देव सर्वर (विंडोज सर्वर 2014 आर 2 का उपयोग करता है) के समान वर्चुअल मशीन स्थापित करने की कोशिश कर रहा है और SQL सर्वर के विशिष्ट संस्करण पर परीक्षण संस्करण देखने के लिए प्रयास करें इसके साथ कोई लेना देना (हाँ, मैं कर रहा हूँ हताश कि :))
वैसे भी, here एक साधारण सी # कंसोल आवेदन आप डाउनलोड करने और इस मुद्दे को दोहराने के लिए कोशिश कर सकते हैं। यह परीक्षण ऐप आपके द्वारा इनपुट किए गए कार्यों की संख्या को निष्पादित करेगा और बस डेटाबेस बनाता है और बाद में क्लीनअप करता है।
धन्यवाद DWright। मैंने कतारबद्ध कार्रवाई का उपयोग करने के बारे में भी सोचा और डीबी बनाने के लिए एक धागा है, लेकिन जिस समाधान के साथ मैं गया था, मैंने एक "टेम्पलेट" डेटाबेस बनाया था। असल में, एक खाली डीबी जो ईएफ ऐप स्टार्टअप पर बनाता है उसके बाद प्रत्येक कार्य (या किरायेदार) टेम्पलेट डीबी को पुनर्स्थापित करता है और संबंधित लॉजिकल डीबी फ़ाइलों का नाम बदलता है और स्थानांतरित करता है। तब से उसने मेरे लिए ठीक काम किया है। – Randolph
एक अच्छा समाधान की तरह लगता है! – DWright