में कस्टम लेनदेन स्तर मैं फायरबर्ड ड्राइवर का उपयोग कर डेल्फी के डीबीएक्स में एक कस्टम लेनदेन स्तर निर्दिष्ट करने का एक तरीका ढूंढ रहा हूं। मैं डेल्फी एक्सई का उपयोग कर रहा हूँ।डेल्फी डीबीएक्स फ़ायरबर्ड
TSQLConnection घटक के पैरामीटर संपादक में मैं विभिन्न TransIsolation मान सेट कर सकता हूं और मैं ReadCommited
के डिफ़ॉल्ट का उपयोग कर रहा हूं। संपत्ति WaitOnLocks
True
पर सेट है। मैं इस निम्नलिखित Firebird लेनदेन विन्यास का उपयोग करता उम्मीद लेकिन मुझे यकीन नहीं कर रहा हूँ:
READ WRITE + WAIT + SNAPSHOT
(http://www.firebirdsql.org/refdocs/langrefupd20-set-trans.html देखें)
मैं WAIT
के बजाय LOCK TIMEOUT [seconds]
उपयोग करना चाहते हैं। लेकिन मुझे नहीं पता कि यह कैसे या कहां निर्दिष्ट किया जाए। मैंने डीबीएक्स स्रोत फाइलों में देखा है और कस्टम लेनदेन के स्तर के लिए कुछ कोड है (xilCUSTOM
के लिए खोजें) लेकिन यह अधूरा/अप्रयुक्त लगता है।
इसका कारण यह है कि हम कभी-कभी हमारे बहु-उपयोगकर्ता डेटासैप एप्लिकेशन में डेडलॉक अनुभव करते हैं और मुझे लगता है कि ऐसा इसलिए है क्योंकि एक लेनदेन दूसरे (संभावित रूप से मृत) लेनदेन पर इंतजार कर रहा है। पूरे क्लाइंट हैंगअप अनिश्चित काल के मुकाबले कुछ सेकंड के बाद हम लेनदेन तोड़ेंगे।
निम्नलिखित दस्तावेज 'इसके अतिरिक्त, TSQLConnection आपको डेटाबेस-विशिष्ट कस्टम अलगाव स्तर निर्दिष्ट करने देता है। कस्टम अलगाव स्तर dbExpress ड्राइवर द्वारा परिभाषित किया गया है। विवरण के लिए अपने ड्राइवर दस्तावेज देखें। – JustMe
क्या यह एक दस्तावेज इंटरबेस ड्राइवर खरीदने के लिए आपके विचार में है? या आईबीडीएसी या आईबी ऑब्जेक्ट्स (+ प्रदर्शन + संगतता + समर्थन) जैसे अधिक मूल नमस्कार का उपयोग करें? – JustMe