Invoke Transactions का इस्तेमाल, टारगेट नोड पर एक या उससे ज़्यादा क्लस्टर कमांड को चालू करने के लिए किया जाता है. यह क्लस्टर में तय की गई कमांड को किए गए रिमोट प्रोसीज़र कॉल जैसा होता है.
लिखने के लेन-देन की तरह ही, Invoke Transactions में भी टाइम किए गए और टाइम नहीं किए गए लेन-देन की सुविधा उपलब्ध होती है. कृपया समयसीमा के साथ किए जाने वाले लेन-देन के बारे में ज़्यादा जानकारी के लिए, समयसीमा के साथ और बिना समयसीमा के की जाने वाली कार्रवाइयां सेक्शन देखें.
Untimed Invoke Transaction
कार्रवाई के अनुरोध को शुरू करना
दिशा: शुरू करने वाला -> टारगेट
पढ़ने के अनुरोध वाली कार्रवाई और लिखने के अनुरोध वाली कार्रवाई की तरह ही, इस कार्रवाई में अनुरोध करने वाला व्यक्ति, टारगेट को ये जानकारी देता है:
- अनुरोध शुरू करें: क्लस्टर कमांड के पाथ की सूची. साथ ही, कमांड के लिए ज़रूरी नहीं ऐसे आर्ग्युमेंट जिन्हें कमांड फ़ील्ड कहा जाता है.
- समय के हिसाब से अनुरोध: यह फ़्लैग दिखाता है कि यह कार्रवाई, समय के हिसाब से शुरू होने वाले लेन-देन का हिस्सा है या नहीं.
- जवाब को छिपाएं: यह एक फ़्लैग है. इससे पता चलता है कि Invoke Response Action को छिपाना चाहिए या नहीं.
- इंटरैक्शन आईडी: यह एक पूर्णांक होता है. इसका इस्तेमाल, Invoke Request Action को Invoke Response Action से मैच करने के लिए किया जाता है.
जवाब देने के लिए कार्रवाई शुरू करना
दिशा: टारगेट -> शुरू करने वाला
टारगेट को Invoke Request Action मिलने के बाद, वह Invoke Response Action के साथ लेन-देन पूरा करेगा. इसमें ये चीज़ें शामिल होंगी:
- Invoke Responses: इसमें, भेजे गए हर अनुरोध के लिए, कमांड के जवाब या स्थिति की सूची होती है.
- इंटरैक्शन आईडी: यह एक पूर्णांक होता है. इसका इस्तेमाल, Invoke Response Action को Invoke Request Action से मैच करने के लिए किया जाता है.
बिना समय सीमा वाली शुरू करने की पाबंदियां
'अनुरोध ऐक्शन शुरू करें' ग्रुपकास्ट हो सकता है. हालांकि, इस मामले में जवाब न दें फ़्लैग सेट होना चाहिए. इसकी वजह यह है कि ऐसा न करने पर, ग्रुप के हर सदस्य से एक साथ जवाब मिलने की वजह से नेटवर्क पर बहुत ज़्यादा लोड पड़ सकता है.
इस सुविधा को चालू करने के लिए, Invoke Requests की सूची में इस्तेमाल किए गए पाथ में ग्रुप शामिल हो सकते हैं. इसके अलावा, उनमें वाइल्डकार्ड भी शामिल हो सकते हैं. हालांकि, ऐसा सिर्फ़ Endpoint फ़ील्ड में किया जा सकता है. इसके अलावा, अगर कार्रवाई ग्रुपकास्ट की जा रही है, तो यह लेन-देन बिना किसी जवाब के खत्म हो जाता है.
समय के हिसाब से लेन-देन शुरू करना
टाइम किए गए राइट ट्रांज़ैक्शन की तरह ही, टाइम किए गए इन्वोक ट्रांज़ैक्शन भी टाइम किए गए अनुरोध की कार्रवाई से शुरू होते हैं.
अनुरोध की गई कार्रवाई का समय खत्म हो गया है
दिशा: शुरू करने वाला -> टारगेट
शुरुआत करने वाला व्यक्ति, यह कार्रवाई शुरू करता है. इसमें ये शामिल हैं:
- टाइम आउट: यह लेन-देन कितने मिलीसेकंड तक खुला रह सकता है. इस अवधि के दौरान, अनुरोध करने वाले व्यक्ति की ओर से भेजा गया अगला अनुरोध मान्य माना जाएगा.
समयसीमा के साथ अनुरोध की गई कार्रवाई मिलने के बाद, टारगेट को स्टेटस रिस्पॉन्स ऐक्शन के साथ, समयसीमा के साथ अनुरोध की गई कार्रवाई की पुष्टि करनी होगी. जब इनीशिएटर को स्टेटस रिस्पॉन्स ऐक्शन मिलता है और उसमें कोई गड़बड़ी नहीं होती है, तब वह Invoke Request ऐक्शन भेजता है.
कार्रवाई के अनुरोध को शुरू करना
यह अनुरोध की गई कार्रवाई शुरू करें के जैसा ही है.
जवाब देने के लिए कार्रवाई शुरू करना
यह Invoke Response Action के जैसा ही है.
समय के हिसाब से लागू होने वाली पाबंदियां
सभी 'कार्रवाई शुरू करें' कमांड को टाइम के साथ इंटरैक्शन करने की सुविधा पर कॉल किया जा सकता है. टाइम किया गया अनुरोध ऐक्शन, अनुरोध ऐक्शन शुरू करें, और जवाब ऐक्शन शुरू करें, ये Unicast-ओनली हैं. इसलिए, इनका इस्तेमाल टाइम किए गए अनुरोध शुरू करने के लेन-देन पर ग्रुपकास्ट के तौर पर नहीं किया जा सकता.
'अनुरोध शुरू करें' कार्रवाई में, ग्रुप के साथ-साथ वाइल्डकार्ड वाले पाथ का इस्तेमाल किया जा सकता है. हालांकि, 'जवाब शुरू करें' कार्रवाई में वाइल्डकार्ड का इस्तेमाल नहीं किया जा सकता.