मैं सी # में एक एप्लीकेशन लिख रहा हूं जो SQL सर्वर 2005 डेटाबेस तक पहुंचता है। एप्लिकेशन काफी डेटाबेस गहन है, और यहां तक कि यदि मैं सभी एक्सेस को अनुकूलित करने का प्रयास करता हूं, तो उचित इंडेक्स सेट अप करें और इसलिए मुझे उम्मीद है कि मुझे जल्दी या बाद में डेडलॉक्स मिलेंगे। मुझे पता है कि डाटाबेस डेडलॉक्स क्यों होते हैं, लेकिन मुझे संदेह है कि मैं कुछ समय पर बिना किसी खतरे के सॉफ़्टवेयर को रिलीज़ कर पाऊंगा। एप्लिकेशन डेटाबेस पहुंच के लिए इकाई फ्रेमवर्क का उपयोग कर रहा है।सी # में एसक्यूएल डेडलॉक को संभालने के लिए पैटर्न?
क्या सी # क्लाइंट कोड में SQLExceptions (deadlocked) को संभालने के लिए कोई अच्छा पैटर्न है - उदाहरण के लिए x मिलीसेकंड के बाद कथन बैच को फिर से चलाने के लिए?
स्पष्ट करने के लिए; मैं पहली जगह में मृतकों से बचने के तरीकों की तलाश नहीं कर रहा हूं (अलगाव स्तर, इंडेक्स, बयानों का क्रम इत्यादि) बल्कि वास्तव में उन्हें संभालने के तरीके को कैसे संभालना है।
पर बताया है क्या आप मुझे बता सकते हैं कि आपने लेनदेन की वास्तविक पुनरावृत्ति कैसे की? क्या आपने प्रत्येक स्थान पर कोड के चारों ओर एक साधारण फॉर-लूप रखा था जहां आपने लेनदेन किया था या क्या आप अधिक सामान्य समाधान के साथ आए थे? – martin
हमने एक लूप लागू किया। अगर लेनदेन विफल हो गया, तो डेडलॉक स्थिति की वजह से, हमने पूरे लेन-देन को वापस ले लिया, और फिर 5 बार तक कोशिश की। –