UserTransaction
वस्तु एक वस्तु कंटेनर जो लपेटता API तक पहुंच को कॉल कंटेनर आंतरिक रूप से उपयोग करता है, विशेष रूप से javax.transaction.TransactionManager द्वारा आपूर्ति की है। TransactionManager
begin
, commit
, rollback
और javax.transaction.Transaction getTransaction()
कवर के तहत की तरह तरीकों है, TransactionManager धागे से वर्तमान लेन-देन स्थिति को ट्रैक करने के लिए एक ThreadLocal या इसी तरह की तकनीक का प्रयोग करेंगे। थ्रेडलोकल्स बहुत ही सरल वस्तुएं हैं जिन्हें आसानी से static HashMap
के रूप में वर्णित किया जा सकता है जो थ्रेड नाम को कुंजी के रूप में उपयोग करते हैं और मूल्य के रूप में आपके चयन की वस्तु का उपयोग करते हैं। जब तक आप एक ही धागे में रहते हैं, तब तक आप वस्तु को आमंत्रण श्रृंखला में किसी भी बिंदु से प्राप्त कर सकते हैं। जावा ईई पर्यावरण में धागे को शुरू करने की अनुमति नहीं है, यह एक कारण है।
सुरक्षा प्रचार इसी तरह काम करता है, जैसा कि जेएनडीआई लुकअप करता है जो जादुई रूप से सही मॉड्यूल या घटक के java:comp/env
नेमस्पेस को इंगित करता है। निचली पंक्ति यह है कि आप थ्रेडलोकल्स के बिना ऐप सर्वर को कार्यान्वित नहीं कर सकते हैं। प्रचार की तुलना में अधिक सक्रिय लगता है, जब सच में यह केवल धागे को छोड़ने का कार्य नहीं है, इसलिए कंटेनर और सभी शामिल हैं अभी भी आपकी "सामान" पा सकते हैं।
लेनदेन प्रबंधन शर्तों में वापस, ऑब्जेक्ट जो एक लेनदेन प्रबंधक अपने थ्रेडलोकल में ट्रैक करेगा, आमतौर पर Transaction और TransactionSynchronizationRegistry इंटरफेस दोनों को प्रत्यक्ष या परोक्ष रूप से कार्यान्वित करेगा। इन दो इंटरफेस के बीच, कंटेनर में DataSource
एस, EntityManager
एस और आपकी ओर से वर्तमान लेनदेन में अन्य संसाधनों को ट्रैक करने के लिए आवश्यक सभी हुक हैं। ये इंटरफेस कंटेनर को SessionSynchronization जैसे कॉलबैक की पेशकश करने के साथ-साथ लेनदेन की समाप्ति पर आपकी ओर से अन्य चीजों को करने का मतलब है जैसे कि एंटीटीमेनर्स को फ़्लश करना/बंद करना, जेएमएस लंबित संदेशों को भेजना, और पाठ्यक्रम में आपके ऐप द्वारा बनाए गए किसी भी टाइमर को जारी रखना लेनदेन का।
स्रोत
2010-11-09 21:57:35
अच्छी तरह से पारित नहीं हो सकता (इस मामले में, अन्य) एक और सेम में कार्यक्रम संबंधी लेन-देन का उपयोग कर कार्यक्रम संबंधी लेन-देन का उपयोग कर यह नहीं है, है ना? –