2010-06-16 13 views

उत्तर

15

हां, स्वायत्त लेनदेन खतरनाक हो सकता है।

उस स्थिति पर विचार करें जहां आपका मुख्य लेनदेन है। इसमें पंक्तियां/अपडेट/हटाई गई पंक्तियां शामिल हैं। यदि आप उसके भीतर, एक स्वायत्त लेनदेन स्थापित करते हैं तो

(1) यह किसी भी डेटा से बिल्कुल पूछताछ नहीं करेगा। यह 'सुरक्षित' स्थिति है। प्राथमिक लेनदेन से स्वतंत्र रूप से जानकारी लॉग इन करने के लिए उपयोगी हो सकता है ताकि इसे प्राथमिक लेनदेन को प्रभावित किए बिना किया जा सके (जो प्राथमिक लेनदेन को वापस ले जाने की अपेक्षा करते समय त्रुटि जानकारी लॉगिंग के लिए उपयोगी हो सकता है)।

(2) यह केवल उन डेटा से पूछताछ करेगा जो प्राथमिक लेनदेन द्वारा अपडेट नहीं किए गए हैं। यह सुरक्षित है, लेकिन अनावश्यक है। स्वायत्त लेनदेन के लिए कोई बात नहीं है।

(3)। यह डेटा से पूछताछ करेगा जिसे प्राथमिक लेनदेन द्वारा अद्यतन किया गया है। डिजाइन के माध्यम से खराब विचारों की यह यादें, क्योंकि आपने कुछ ओवरराइट कर लिया है और फिर इसे देखने के लिए वापस जाने की आवश्यकता है कि इससे पहले कि आप इसे ओवरराइट करें। कभी-कभी लोग सोचते हैं कि एक स्वायत्त लेनदेन अभी भी प्राथमिक लेनदेन के असामान्य परिवर्तनों को देखेगा, और ऐसा नहीं होगा। यह डेटाबेस की वर्तमान में प्रतिबद्ध स्थिति, साथ ही स्वायत्त लेनदेन के भीतर किए गए किसी भी बदलाव को पढ़ता है। कुछ लोग (अक्सर ट्रिगर त्रुटियों को म्यूट करने के जवाब में स्वायत्त लेनदेन की कोशिश करते हैं) इस बात पर ध्यान नहीं देते कि डेटा को पढ़ने की कोशिश करते समय डेटा क्या होता है और इन लोगों को बस डेटाबेस तक पहुंच की अनुमति नहीं दी जानी चाहिए।

(4)। यह उस डेटा को अपडेट/हटाने का प्रयास करेगा जिसे प्राथमिक लेनदेन द्वारा अपडेट नहीं किया गया है। फिर, खराब डिजाइन की यह smacks। ये परिवर्तन प्रतिबद्ध होने जा रहे हैं (या वापस लुढ़काए गए) चाहे प्राथमिक लेनदेन सफल हो या विफल हो। इससे भी बदतर आप समस्या का जोखिम उठाते हैं (5) क्योंकि एक स्वायत्त लेनदेन के भीतर, यह निर्धारित करना मुश्किल है कि क्या डेटा प्राथमिक लेनदेन द्वारा अद्यतन किया गया है।

(5)। आप प्राथमिक ट्रांजैक्शन द्वारा पहले से अपडेट किए गए डेटा को अपडेट/डिलीट करने का प्रयास करते हैं, इस मामले में यह बदसूरत गड़बड़ी में डेडलॉक और समाप्त हो जाएगा।

+2

+1 स्वायत्त लेनदेन के लिए केवल कास्ट आयरन उपयोग केस लॉगिंग/ऑडिटिंग है। बाकी सब कुछ iffy या downright खतरनाक है। – APC

10

स्वायत्त लेनदेन खतरनाक हो सकता है?

हां।

यदि हां, तो किस स्थितियों में?

जब उनका दुरुपयोग किया जाता है। उदाहरण के लिए, जब डेटा में परिवर्तन करने के लिए उपयोग किया जाता था जिसे शेष पैरेंट वापस ले लिया जाता है तो वापस ले जाना चाहिए था। उन्हें दुरुपयोग से डेटा भ्रष्टाचार हो सकता है क्योंकि बदलाव के कुछ हिस्से प्रतिबद्ध हैं, जबकि अन्य नहीं हैं।

स्वायत्त लेनदेन कब आवश्यक हैं?

वे आवश्यक हैं जब एक लेनदेन के प्रभाव जीवित रहें, भले ही माता-पिता लेनदेन किया गया हो या वापस लुढ़का जाए। एक अच्छा उदाहरण एक प्रक्रिया है जो एक डेटाबेस तालिका में प्रक्रिया की प्रगति और गतिविधि को लॉग करता है।

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