आपने संभवतः MySQL Connector/NET में इस बग का सामना किया होगा ।
यह बग क्या ट्रिगर करता है:
- क्वेरी ए के निष्पादन के लिए कोड कॉल
- क्वेरी A के लिए लेन-देन 1 शुरू हो गया है
- क्वेरी ए निष्पादित किया गया है और MySQL में एक त्रुटि का कारण बनता है
- लेन-देन 1 वापस नहीं लिया गया है
- क्वेरी बी के निष्पादन के लिए कोड कॉल
- क्वेरी B के लिए लेन-देन 2 शुरू हो गया है
- MySQL Connector/NET अपवाद फेंकता है
बग बिंदु 4 है:लेन-देन 1 एक त्रुटि के बाद खुला छोड़ दिया जाता है (या कम से कम कनेक्टर अभी भी आश्वस्त है कि इसे खुला छोड़ दिया गया है)। कनेक्शन पूलिंग के कारण, क्वेरी A और क्वेरी B के लिए कॉल करने वाला कोड पूरी तरह से असंबंधित हो सकता है। साथ ही, यदि बिंदु 4 और 5 के बीच का समय काफी लंबा है, तो लेन-देन है वापस लुढ़क गया, इसलिए दुर्लभता और यादृच्छिकता।
दुर्भाग्य से MySQL द्वारा अभी तक कोई समाधान नहीं किया गया है। मुझे पता है कि एकमात्र समाधान कनेक्टर/नेट का स्रोत कोड डाउनलोड करना और इसे स्वयं ठीक करना/बनाना है।