के बीच ओरेकल लेनदेन का प्रचार हमारे पास एक मौजूदा सी ++ एप्लिकेशन है जिसे हम धीरे-धीरे एक नई जावा-आधारित प्रणाली के साथ प्रतिस्थापित करने जा रहे हैं। जब तक हम जावा में सब कुछ पूरी तरह से कार्यान्वित नहीं कर लेते हैं, हम उम्मीद करते हैं कि सी ++ और जावा को एक दूसरे के साथ संवाद करना होगा (आरएमआई, एसओएपी, मैसेजिंग इत्यादि - हमने फैसला नहीं किया है)।सी ++ और जावा
अब मेरे प्रबंधक सोचता है कि हम एक ही Oracle DB लेनदेन में भाग लेने के जावा और सी ++ पक्षों की आवश्यकता होगी। यह संबंधित है, लेकिन एक एकल प्रक्रिया होने के सामान्य विघटित लेनदेन की समस्या से अलग है, जिसमें 2 लेनदेन संसाधन, जैसे कि डीबी और एक संदेश कतार है।
मुझे लगता है कि प्रक्रियाओं में एक सौदे के प्रचार के लिए एक प्रदर्शन और स्थिरता बिंदु देखने के लिए, लेकिन मैं अभी भी एक समाधान के लिए कहा जा रहा हूँ से एक भयानक विचार है।
मैं एक्सए लेनदेन से परिचित हूं और मैंने जेबॉस लेनदेन प्रबंधक के साथ कुछ काम किया है, लेकिन मेरे गुगलिंग ने 2 प्रक्रियाओं के बीच एक्सए लेनदेन को प्रसारित करने के लिए कुछ भी अच्छा नहीं किया है।
हम जावा पक्ष पर वसंत का उपयोग कर रहे हैं और उनके प्रलेखन स्पष्ट रूप से कहा है कि वे लेन-देन प्रचार के साथ किसी भी मदद प्रदान नहीं करते। है, जो प्रचार के लिए समर्थन कर सकते हैं (नहीं है कि मैं कोई निश्चित दस्तावेज़ीकरण देख सकते हैं):
हम एक पारंपरिक जावा ईई सर्वर (IBM Websphere उदाहरण के लिए) का उपयोग कर की योजना नहीं बना रहे हैं।
समाधान पर किसी भी मदद या पॉइंटर्स की सराहना की जाती है।
क्या आप जेएमवी संग्रहीत प्रक्रिया के रूप में एप्लिकेशन को "एम्बेड" कर सकते हैं? फिर आप डेटाबेस कनेक्शन के माध्यम से सी ++ से अपने एप्लिकेशन के खंड को "बस" कॉल कर सकते हैं। – ibre5041
सैद्धांतिक रूप से आप भी ऑपॉजिट कर सकते हैं। एक सी-संग्रहित प्रक्रिया मैम, जो डेटाबेस से वापस "कनेक्ट" होगा। फिर यह प्रक्रिया एक ही लेनदेन में भाग लेगी। – ibre5041
आप वितरित लेनदेन "नाम" भी कर सकते हैं। यानी आप इसे एक पकाया नाम असाइन करें। फिर एक और प्रक्रिया, एक ही लेनदेन में "शामिल" हो सकती है। इस उद्देश्य के लिए AFAIK DBMS_XA या DBMS_TRANSACTION का उपयोग किया जा सकता है। – ibre5041