JTA और एक स्थानीय लेनदेन में क्या अंतर है?
एक उदाहरण जो दर्शाता है कि जेटीए का उपयोग कब करना है और स्थानीय लेनदेन का उपयोग करना कब महान होगा।
JTA और एक स्थानीय लेनदेन में क्या अंतर है?
एक उदाहरण जो दर्शाता है कि जेटीए का उपयोग कब करना है और स्थानीय लेनदेन का उपयोग करना कब महान होगा।
जवाबों:
JTA
जावा में लेनदेन के प्रबंधन के लिए एक सामान्य एपीआई है। यह आपको संसाधन तटस्थ तरीके से लेनदेन शुरू करने, प्रतिबद्ध करने और रोलबैक करने की अनुमति देता है। लेन-देन की स्थिति आम तौर पर टीएलएस (थ्रेड लोकल स्टोरेज) में संग्रहित की जाती है और इसे कॉल-स्टैक में अन्य तरीकों से प्रचारित किया जा सकता है, जिसमें कुछ स्पष्ट संदर्भ वस्तु की आवश्यकता नहीं होती है। लेन-देन के संसाधन चल रहे लेनदेन में शामिल हो सकते हैं। यदि इस तरह के लेनदेन में एक से अधिक संसाधन भाग लेते हैं, तो उनमें से कम से कम एक को तथाकथित XA संसाधन होना चाहिए।
A एक resource local transaction
ऐसा लेन-देन है जो आपके अपने विशिष्ट API का उपयोग करते हुए एक विशिष्ट एकल संसाधन के साथ होता है। ऐसा लेन-देन आम तौर पर कॉल-स्टैक में अन्य तरीकों के लिए नहीं फैलता है और आपको कुछ स्पष्ट संदर्भ ऑब्जेक्ट पास करने की आवश्यकता होती है। संसाधन के अधिकांश स्थानीय लेनदेन में एक ही लेनदेन में कई संसाधनों का भाग लेना संभव नहीं है।
आप जावा एसई में निम्न-स्तरीय JDBC कोड के लिए संसाधन स्थानीय लेनदेन का उपयोग करेंगे। यहाँ संदर्भ वस्तु एक उदाहरण के द्वारा व्यक्त की गई है java.sql.Connection
। संसाधन स्थानीय लेनदेन के अन्य उदाहरण 2002 के आसपास उद्यम अनुप्रयोग बनाने वाले डेवलपर्स हैं। चूंकि लेनदेन प्रबंधक (जेटीए द्वारा उपयोग किया जाता है) उस युग के चारों ओर सेटअप करने के लिए महंगे, बंद स्रोत और जटिल चीजें थे, लोग संसाधन स्थानीय वेरिएंट प्राप्त करने के लिए सस्ता और आसान के साथ गए थे।
आप मूल रूप से हर दूसरे परिदृश्य में जेटीए लेनदेन का उपयोग करेंगे। TomEE (25MB) या GlassFish (35MB) जैसे बहुत ही सरल, छोटे, मुक्त और मुक्त स्रोत वाले सर्वरों में JTA समर्थन होता है। सेटअप करने के लिए कुछ भी नहीं है और वे बस काम करते हैं।
अंत में, EJB और स्प्रिंग जैसी प्रौद्योगिकियां पेशकश करके JTA को उपयोग में आसान बनाती हैं declarative transactions
। ज्यादातर मामलों में इसका इस्तेमाल करने की सलाह दी जाती है क्योंकि वे आसान, साफ और कम त्रुटि वाले होते हैं। EJB और स्प्रिंग दोनों JTA का उपयोग कवर्स के तहत कर सकते हैं।
लेन-देन-प्रकार जावा एसई आवेदन के लिए "RESOURCE_LOCAL" और जावा ईई आवेदन के लिए "JTA" पर सेट किया जाना चाहिए। "RESOURCE_LOCAL" टॉमकैट पर तैनात कुछ वेब एप्लिकेशन पर ठीक काम कर सकता है, लेकिन जब आप ग्लासफिश वातावरण में अपना एप्लिकेशन चलाते हैं तो समस्याएँ हो सकती हैं।
यदि आप वितरित लेनदेन पर काम कर रहे हैं, तो आपको अपने लेनदेन प्रबंधक के रूप में "JTA" का उपयोग करना चाहिए।
J2EE एप्लिकेशन में 2 विनिर्देशों
JTA ---> जावा ट्रांजेक्शन API.highe-level कार्यान्वयन के माध्यम से सपोर्ट फ़ॉट डीटी शामिल है और हमेशा
JTS ---> जावा ट्रांज़ैक्शन सर्विस सक्षम है ।