मैं समझता हूं, एक अस्पष्ट तरीके से, नियमित एसीआईडी लेनदेन कैसे काम करते हैं। आप डेटाबेस पर कुछ काम इस तरह से करते हैं कि काम की पुष्टि नहीं की जाती है जब तक कि किसी प्रकार का प्रतिबद्ध ध्वज सेट न हो जाए। प्रतिबद्ध हिस्सा कुछ अंतर्निहित धारणा पर आधारित है (जैसे एक डिस्क ब्लॉक लेखन परमाणु है)। एक विनाशकारी त्रुटि की स्थिति में, आप रिकवरी चरण में केवल असामान्य डेटा को साफ़ कर सकते हैं।वितरित लेनदेन कैसे काम करते हैं (उदाहरण के लिए एमएसडीटीसी)?
वितरित लेनदेन कैसे काम करते हैं? कुछ एमएस दस्तावेज में मैंने पढ़ा है कि आप किसी भी तरह डेटाबेस और फाइल सिस्टम (अन्य चीजों के साथ) में लेनदेन कर सकते हैं।
यह तकनीक इंस्टॉलरों के लिए उपयोग की जा सकती है (और संभवतः), जहां आप प्रोग्राम को पूरी तरह से स्थापित या पूरी तरह से अनुपस्थित होना चाहते हैं। आप बस इंस्टॉलर की शुरुआत में एक लेनदेन शुरू करते हैं। इसके बाद आप रजिस्ट्री और फाइल सिस्टम से कनेक्ट हो सकते हैं, जो इंस्टॉलेशन को परिभाषित करने वाले परिवर्तन कर सकते हैं। जब काम पूरा हो जाता है, तो कुछ कारणों से इंस्टॉलेशन विफल होने पर बस प्रतिबद्ध या रोलबैक करें। इस जादुई वितरित लेनदेन समन्वयक द्वारा रजिस्ट्री और फाइल सिस्टम स्वचालित रूप से आपके लिए साफ कर दिए जाते हैं।
यह कैसे संभव है कि इस फैशन में दो अलग-अलग प्रणालियों को पार किया जा सके? ऐसा लगता है कि प्रणाली को असंगत स्थिति में छोड़ना हमेशा संभव है, जहां फाइल सिस्टम ने अपने बदलाव किए हैं और रजिस्ट्री नहीं है। मुझे लगता है कि एमएसडीटीसी में नेटवर्क पर लेनदेन करना भी संभव है।
मैंने http://blogs.msdn.com/florinlazar/archive/2004/03/04/84199.aspx पढ़ा है, लेकिन यह केवल स्पष्टीकरण की शुरुआत की तरह लगता है, और चरण 4 को काफी विस्तारित किया जाना चाहिए।
संपादित करें: से मैं क्या http://en.wikipedia.org/wiki/Distributed_transaction पर इकट्ठा होते हैं, यह एक दो चरण से पूरा किया जा सकता प्रतिबद्ध (http://en.wikipedia.org/wiki/Two-phase_commit)। इसे पढ़ने के बाद, मैं अभी भी विधि 100% समझ नहीं रहा हूं, ऐसा लगता है कि चरणों के बीच त्रुटि के लिए बहुत सी जगह है।
त्रुटि * त्रुटि के लिए कमरे का एक बड़ा सौदा है। विशेष रूप से, यह हमेशा काम करने वाली "COMMIT तैयार" पर निर्भर करता है। वास्तविकता अलग है। –