2011-10-05 11 views
7

लेन-देन में गैर-डेटाबेस क्रियाओं को कैसे समाहित किया जा सकता है?गैर-डेटाबेस एप्लिकेशन लेनदेन

उदाहरण के लिए, कहें कि मेरे पास अनुक्रम में बुलाए गए कुछ तरीके/फ़ंक्शंस हैं, कुछ डेटाबेस अपडेट करते हैं, फाइल सिस्टम पर कुछ अद्यतन फ़ाइलें, HttpSession में कुछ अद्यतन पैरामीटर, कुछ कैश अपडेट करते हैं, आदि। यदि इनमें से एक उत्तरार्द्ध विफल रहता है, सत्र को अपडेट करने की तरह, मैं फाइल सिस्टम पर डीबी आदि में अन्य सभी परिवर्तनों को कैसे वापस ला सकता हूं?

पर्यावरण struts2, किसी भी आरडीबीएमएस, हाइबरनेट या Ibatis की तरह एक हठ परत की तरह कुछ के साथ बिलाव की तरह एक जावा सर्वलेट कंटेनर, आदि है

उत्तर

2

इन सभी लेन-देन संबंधी संसाधनों, एक 2 में भाग लेने के लिए सक्षम हो करने के लिए होगा -फेज प्रतिबद्ध प्रोटोकॉल, जो आप चाहते हैं उसे करने के लिए।

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

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