2012-02-29 8 views
13

में कस्टम लेनदेन स्तर मैं फायरबर्ड ड्राइवर का उपयोग कर डेल्फी के डीबीएक्स में एक कस्टम लेनदेन स्तर निर्दिष्ट करने का एक तरीका ढूंढ रहा हूं। मैं डेल्फी एक्सई का उपयोग कर रहा हूँ।डेल्फी डीबीएक्स फ़ायरबर्ड

TSQLConnection घटक के पैरामीटर संपादक में मैं विभिन्न TransIsolation मान सेट कर सकता हूं और मैं ReadCommited के डिफ़ॉल्ट का उपयोग कर रहा हूं। संपत्ति WaitOnLocksTrue पर सेट है। मैं इस निम्नलिखित Firebird लेनदेन विन्यास का उपयोग करता उम्मीद लेकिन मुझे यकीन नहीं कर रहा हूँ:

READ WRITE + WAIT + SNAPSHOT (http://www.firebirdsql.org/refdocs/langrefupd20-set-trans.html देखें)

मैं WAIT के बजाय LOCK TIMEOUT [seconds] उपयोग करना चाहते हैं। लेकिन मुझे नहीं पता कि यह कैसे या कहां निर्दिष्ट किया जाए। मैंने डीबीएक्स स्रोत फाइलों में देखा है और कस्टम लेनदेन के स्तर के लिए कुछ कोड है (xilCUSTOM के लिए खोजें) लेकिन यह अधूरा/अप्रयुक्त लगता है।

इसका कारण यह है कि हम कभी-कभी हमारे बहु-उपयोगकर्ता डेटासैप एप्लिकेशन में डेडलॉक अनुभव करते हैं और मुझे लगता है कि ऐसा इसलिए है क्योंकि एक लेनदेन दूसरे (संभावित रूप से मृत) लेनदेन पर इंतजार कर रहा है। पूरे क्लाइंट हैंगअप अनिश्चित काल के मुकाबले कुछ सेकंड के बाद हम लेनदेन तोड़ेंगे।

+1

निम्नलिखित दस्तावेज 'इसके अतिरिक्त, TSQLConnection आपको डेटाबेस-विशिष्ट कस्टम अलगाव स्तर निर्दिष्ट करने देता है। कस्टम अलगाव स्तर dbExpress ड्राइवर द्वारा परिभाषित किया गया है। विवरण के लिए अपने ड्राइवर दस्तावेज देखें। – JustMe

+0

क्या यह एक दस्तावेज इंटरबेस ड्राइवर खरीदने के लिए आपके विचार में है? या आईबीडीएसी या आईबी ऑब्जेक्ट्स (+ प्रदर्शन + संगतता + समर्थन) जैसे अधिक मूल नमस्कार का उपयोग करें? – JustMe

उत्तर

0

बस मेरे कुछ सेंट - मेरे अनुभव में जस्टएम द्वारा उल्लिखित आईबीओ ऑब्जेक्ट्स एक सभ्य पुस्तकालय है। एक और बिंदु पर - मुझे लगता है कि आपने परिदृश्य को इंगित करने का प्रयास किया है जो आपके डेडलॉक की ओर जाता है? क्या यह एक बहुत ही अप्रत्याशित स्थिति है? बस सोच रहा है कि क्या आपके पास अन्य स्थितियां हैं जो WAIT वास्तव में एप्लिकेशन को आगे बढ़ने की अनुमति देती है, यदि आप लॉक टाइमआउट का उपयोग करते हैं तो प्रतिकूल रूप से प्रभावित होगा। मेरी पहली टिप्पणी पर वापस आना - फायरबर्ड के साथ आमतौर पर समर्पित पुस्तकालय का उपयोग करना बेहतर होता है, जो इमो है। आशा है कि आप हल हो जाओ!

संबंधित मुद्दे