क्या कोई एक चरण और दो चरण प्रतिबद्धता के बीच अंतर को स्पष्ट कर सकता है। जहां तक मैं समझता हूं कि एक चरण प्रतिबद्धता अनुप्रयोग सर्वर (सेवा विधि -> EntityManager) के दौरान प्रतिबद्धता का प्रतिनिधित्व करती है और एक्सए प्रतिबद्धता डेटाबेस (सेवा विधि -> EntityManager -> डीबी) तक एक ही लेनदेन है और क्रम में उपयोग की जाती है उचित लेनदेन को पूरी तरह से रोलबैक करने के लिए। तो हम डिफ़ॉल्ट रूप से एक्सए ड्राइवरों का उपयोग क्यों नहीं करते? क्या यह सिर्फ प्रदर्शन चिंता है? अगर मैं गलत हूं तो कृपया मुझे सही करें।एक चरण और दो चरण (एक्सए) प्रतिबद्धता के बीच वास्तविक अंतर
उत्तर
अंतर यह है कि एक चरण की प्रतिबद्धता आमतौर पर एक सिस्टम या डेटाबेस के भीतर उपयोग की जाती है जबकि दो चरण प्रतिबद्धता वितरित लेनदेन के लिए उपयोग की जाती है जो एकाधिक डीबी या सिस्टम का विस्तार करती है। मुझे आप के लिए सरल उदाहरण दिखा प्रत्येक
एक चरण के लिए प्रतिबद्ध
BEGIN
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00);
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Khilan', 25, 'Delhi', 1500.00);
COMMIT;
इस क्लासिक परमाणु PL/SQL में लिखा लेन-देन (जावा EE दुनिया के लिए, EJB विधि है जो भी व्यवहार हो सकता है की कल्पना) है , केवल एक चरण है जहां सभी कार्यों का प्रदर्शन किया जाता है और या तो प्रतिबद्धता या रोलबैक बनाया जाता है।
दो चरण के लिए प्रतिबद्ध
//pseodocode
BEGIN
UPDATE db1; //updates DB on another machine
UPDATE someCloudStorage; //update something on the cloud
INSERT INTO SomeTable VALUES(...);
COMMIT;
अब आप विभिन्न मशीनों पर विभिन्न प्रणालियों के साथ काम कर रहे हैं, लेकिन आप उन सभी को सफलतापूर्वक लिख सकते हैं या विफल (यही कारण है कि यह लेन-देन वितरित है) चाहते हैं। तो यहां Two-phase commit protocol आता है। मूल रूप से लेनदेन प्रबंधक "प्रतिबद्धता के लिए तैयार" संदेश प्रसारित करता है और फिर प्रत्येक मशीन से ठीक प्रतिक्रिया की प्रतीक्षा करता है। अगर हर कोई कहता है कि यह "ठीक है", सबकुछ प्रतिबद्ध हो जाता है - यदि नहीं, तो सभी लेनदेन वापस लुढ़क जाते हैं।
ध्यान दें कि यदि आप जावा में एक्सए लेनदेन का उपयोग करना चाहते हैं, तो आपको एक्सए समर्थन (और सही ढंग से कॉन्फ़िगर किया गया एक्सए डेटासोर्स) के साथ एक जेडीबीसी ड्राइवर की आवश्यकता होगी।
- 1. थ्रेड कमांड के चरण और चरण में चरण के लिए क्या उपयोग है?
- 2. जेनकींस पाइपलाइनों में नोड, चरण और चरण के बीच क्या अंतर है?
- 3. दो चरण प्रतिबद्ध
- 4. स्प्रिंग बैच में चरण, टास्कलेट और चंक के बीच अंतर
- 5. एक चरण
- 6. चरण-दर-चरण: ग्राहक आईडीई
- 7. चरण 0.5
- 8. एक चरण
- 9. एक चरण
- 10. दो चरण प्रसंस्करण: चरण -1 एक्सएसएलटी 2.0 प्रसंस्करण
- 11. चरण कार्यान्वयन में एक व्यवहार चरण छोड़ें
- 12. चरण
- 13. चरण
- 14. वर्डप्रेस दो चरण पंजीकरण फॉर्म
- 15. चरण
- 16. चरण
- 17. चरण
- 18. एल्गोरिदम विभिन्न आवृत्तियों के साथ दो संकेतों के बीच प्रभावी "चरण अंतर" निर्धारित करने के लिए?
- 19. मेवेन चरण दो बार निष्पादित
- 20. चरण
- 21. Git चरण
- 22. AppEngine: चरण-दर-चरण डिबगिंग
- 23. मेवेन + जीएई चरण-दर-चरण
- 24. मौजूदा दो चरण सक्षम संसाधनों के साथ एक चरण सक्षम संसाधन करने का एक अवैध प्रयास
- 25. उद्देश्य सी वस्तुओं के दो चरण निर्माण
- 26. संकलन चरण
- 27. Django - चरण
- 28. संदर्भ स्विचिंग में चरण
- 29. एक चरण में जटिल इंटरैक्टिव रिबेस?
- 30. स्वच्छ चरण
बहुत अच्छी व्याख्या। लगता है कि यह अब स्पष्ट है! धन्यवाद! – sidlejinks
आपका स्वागत है, मुझे खुशी है कि इससे मदद मिली :-) –