मैं समझता हूं कि एक शब्दकोश वस्तु के लिए सीमा त्रुटि के बाहर इंडेक्स के मुख्य कारणों में से एक थ्रेड टकराव है। (एक ही समय में एक ही शब्दकोश को पढ़ना और लिखना) हालांकि, मैं एक परेशान मामले में आया हूं जहां थ्रेड टकराव पर्याप्त स्पष्टीकरण नहीं है।इंडेक्स के लिए वैकल्पिक कारण सरणी की सीमाओं के बाहर था। नेट शब्दकोश
यहां स्थिति है: मैंने कोड लिखा है जो बहु-थ्रेडेड प्रोसेसिंग के लिए असुरक्षित तरीके से शब्दकोश को लागू करता है।
कोड दो सर्वर, सर्वर एक पर एक वेब सेवा के रूप में लागू किया गया है, और सर्वर बी severs एक लोड संतुलन एक राउंड रोबिन फैशन में सर्वर ए और बी के लिए अनुरोध भेज देंगे, जिसके माध्यम से पहुंचा जा सकता है।
अब यहां मुश्किल हिस्सा है। त्रुटि केवल सर्वर ए पर दिखाई दे रही है, और सर्वर बी पर कभी नहीं। हमारी हार्डवेयर टीम के अनुसार, दोनों सर्वर समान हैं। हालांकि थ्रेड टकराव स्वाभाविक रूप से एक यादृच्छिक प्रक्रिया है, फिर भी यह मेरे सर्वर दोनों को समान रूप से प्रभावित करना चाहिए। मैं एक सर्वर पर त्रुटि के 50+ उदाहरण देख रहा हूं, और 0 अन्य पर। यह सांख्यिकीय रूप से असंभव है कि थ्रेड टकराव केवल मेरे सर्वरों में से एक पर होता है जबकि दूसरा त्रुटि मुक्त चल रहा है।
मैं इसे पहले से ही थ्रेड को सुरक्षित बनाने के लिए एप्लिकेशन को संशोधित कर रहा हूं, लेकिन इस त्रुटि के लिए किसी अन्य ऑब्जेक्ट को डालने के लिए अन्य कारणों को कैसे फेंक दिया जा सकता है?
क्या आप वाकई लोड बैलेंसर सर्वर बी को अनुरोध भेजता है? संभवतः यह केवल पहले सर्वर को प्रभावित करता है। –
शायद एक सर्वर में 32-बिट ओएस और दूसरा 64-बिट है? –
@ petro.sidlovskyy मैंने पुष्टि की है कि दोनों सर्वरों में लॉग फ़ाइलों पर आधारित यातायात है – Joshua