2010-08-05 13 views
26

जब Method1()TransactionScope को तुरंत चालू करता है और Method2() पर कॉल करता है जो TransactionScope को तुरंत चालू करता है, तो .NET को पता है कि दोनों एक ही दायरे में हैं? मेरा मानना ​​है कि यह आंतरिक रूप से स्थिर तरीकों का उपयोग नहीं करता है अन्यथा यह एएसपी.NET जैसे बहुप्रचारित अनुप्रयोगों पर अच्छा काम नहीं करेगा।लेनदेनस्कोप कैसे काम करता है?

क्या यह मेरी अपनी लेनदेनस्कोप जैसी कक्षा बनाना संभव है या मूल मूल विशेष सुविधाओं का उपयोग करता है जो सिर्फ माइक्रोसॉफ्ट जानता है कि वे कैसे काम करते हैं?

+2

विषय से थोड़ी दूर एक टिप्पणी: स्थिर विधियां मल्टीथ्रेडिंग के लिए एक बड़ा सौदा नहीं है, यह स्थिर डेटा है कि आपको –

उत्तर

15

आशा इस मदद करता है:

http://msdn.microsoft.com/en-us/magazine/cc300805.aspx

TransactionScope के साथ अपरिचित उन लोगों के लिए, यह System.Transactions का हिस्सा माइक्रोसॉफ्ट .NET फ्रेमवर्क 2.0 के लिए नया नाम स्थान है। सिस्टम। लेनदेन एक लेनदेन ढांचा प्रदान करता है जो पूरी तरह से .NET Framework में एकीकृत है, जिसमें ADO.NET तक सीमित नहीं है। इस नामस्थान में लेनदेन और लेनदेनस्कोप कक्षाएं सबसे महत्वपूर्ण कक्षाओं में से दो हैं। जैसा कि सवाल बताता है, आप एक लेनदेनस्कोप उदाहरण बना सकते हैं, और उस लेनदेनस्कोप के दायरे में निष्पादित एडीओ.NET संचालन स्वचालित रूप से सूचीबद्ध हो जाएंगे (आप लेनदेन के माध्यम से वर्तमान लेनदेन तक पहुंच सकते हैं। वर्तमान स्थिर संपत्ति):

using(TransactionScope scope = new TransactionScope()) 
{ 
    ... // all operations here part of a transaction 
    scope.Complete(); 
} 
+0

ज़रूर !!! वे थ्रेड.SetData() का भी उपयोग कर सकते हैं: http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k%28SYSTEM.THREADING.THREAD.SETDATA%29;k% 28TargetFrameworkMoniker-% 22.NETFRAMEWORK% 2cVERSION% 3dV4.0% 22% 2 9; के% 28DevLang-CSHARP% 29 और rd = true – Eduardo

+2

लिंक अब और काम नहीं करता है। –

+0

@ मिक्लेक्स: यह वास्तव में बुरा है, [पूर्ण सितंबर 2006] (http://download.microsoft.com/download/3/a/7/3a7fa450-1f33-41f7-9e6d-3aa95b5a6aea/MSDNMagazineSeptember2006en-us.chm) आज़माएं मुद्दा। मैं बाद में इसे बेहतर तरीके से देखूंगा। –

8

TransactionScope काफी अधिक COM के शीर्ष पर बनाता है - विशेष रूप से MSDTC से अधिक।

यह लेनदेन का समन्वय करता है, और लेनदेन के घोंसले की अनुमति देता है।

संक्षेप में, जब आप पहली बार TransactionScope पर कॉल करते हैं, तो एमएसडीटीसी के साथ एक लेनदेन रजिस्टर होता है, जैसा कि अन्य सभी TransactionScope पर कॉल करते हैं। एमएसडीटीसी उन सभी का समन्वय करता है।

+2

के बारे में चिंता करने की ज़रूरत है कभी-कभी लेनदेन (विशेष रूप से डेटाबेस वाले) को डीटीसी को बढ़ावा दिया जाता है लेकिन हमेशा नहीं। – Eduardo

+0

@Eduardo - यह सच है। एलटीएम (लाइटवेट लेनदेन प्रबंधक एमएसडीटीसी के माध्यम से वितरित करने के लिए एक लेनदेन को बढ़ावा दे सकता है)। – Oded

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