मैंने डेस्कटॉप क्लाइंट अनुप्रयोगों के साथ अतीत में ट्रांज़ेक्शनस्कोप का उपयोग अपूर्ण बहु-चरण लेनदेन को वापस करने के लिए किया है। उस दृष्टिकोण को वेब अनुप्रयोग में काम करने की संभावना नहीं लगती है।मल्टी-स्टेप डेटाबेस लेनदेन कई HTTP अनुरोधों में विभाजित
कोई भी ऐसे तरीकों का सुझाव दे सकता है जिसमें कई पृष्ठों पर कई चरणों को वापस रोल करने के लिए सुनिश्चित किया जा सकता है यदि पूरी प्रक्रिया पूरी नहीं हो जाती है? (उनके ब्राउज़र दुर्घटनाग्रस्त हो जाते हैं या वे ब्राउज़र को मध्य प्रक्रिया में बंद करते हैं उदाहरण के लिए)
निश्चित रूप से, मैं किसी प्रकार की एक अस्थायी तालिका में लिख सकता हूं, फिर अंतिम रिकॉर्ड को एक ही लेनदेन में वास्तविक तालिका में स्थानांतरित कर सकता हूं, लेकिन यह चलता है दौड़ की स्थिति का जोखिम। मैं एक लेनदेन शुरू करना चाहता हूं, कई पेजों की सेवा करता हूं, प्रत्येक पृष्ठ लेन-देन का एक टुकड़ा तालिका में लिखता है, फिर लेनदेन को पूरा करने के साथ लेनदेन को पूरा करता है, और यदि लेनदेन पूरा नहीं होता है, तो यह वापस लुढ़का जाता है सत्र समाप्त होता है।
या क्या मैं सही तरीके से नहीं सोच रहा हूं? सुझाव?
चूंकि मैं एमवीसी 3, ईएफ 4.1 और निनजेक्ट का उपयोग कर रहा हूं, मुझे यकीन नहीं है कि यह समाधान को कैसे प्रभावित करेगा, लेकिन मैंने सोचा कि मैं उस जानकारी को शामिल करूंगा।
इसका मतलब है कि आपको मैन्युअल रूप से समरूपता से निपटना होगा। यह मुझे एक कोड गंध की तरह लगता है। –
वेब अनुप्रयोग में मैन्युअल रूप से हैंडलिंग कंसुरेंसी काफी आम है। डाटाबेस लेन-देन जितना संभव हो उतना छोटा होना चाहिए - अधिकांश सामान्य परिदृश्यों में दूसरे का अंश। आप जो करना चाहते हैं वह कई मिनटों के लिए डेटाबेस में गहन लॉकिंग का मतलब है = आपका आवेदन बहुत खराब प्रदर्शन करेगा। –