2011-05-29 15 views
5

के साथ लंबी अवधि की प्रक्रियाओं को संभालने के दृष्टिकोण मैं ऊंट के आधार पर छोटे प्रक्रिया इंजन के लिए पीओसी पर काम कर रहा हूं। आवश्यकताएं परिणाम चरणों के सेट को निष्पादित करने की क्षमता रखते हैं और उनमें से प्रत्येक संभावित रूप से निष्पादित करने में घंटों लग सकता है। इस मामले में असीमित संचार शैली स्पष्ट पसंद है लेकिन मैं "प्रक्रिया" भाग को सही तरीके से प्राप्त करने के साथ संघर्ष कर रहा हूं।ऊंट

बाहरी सिस्टम को संदेश भेजते समय मुझे पूरा होने की प्रतीक्षा करनी होगी। जब तक मुझे बहुत समय लग सकता है, मैं संदेश भेजने के बाद ठोस कदम की प्रसंस्करण रोकने और फिर पूरा संदेश प्राप्त करने पर नया "नौकरी" शुरू करने के बारे में सोच रहा हूं। तो सचमुच प्रत्येक चरण की प्रसंस्करण को उसी जेएमएस कतार से शुरू होने वाले ऊंट मार्ग के रूप में संभाला जाएगा और फिर सामग्री-आधारित राउटर यह तय करेगा कि संदेश या उसके सामग्री के शीर्षकों के आधार पर कौन सा ठोस तर्क निष्पादित किया जाना चाहिए।

समस्या यह है कि संदेशों की हानि की संभावना से बचने के लिए कैसे समस्या है। उदाहरण के लिए, ठोस कदम पर मैं संदेश भेज रहा हूं और प्रसंस्करण रोक रहा हूं। किसी कारण से बाहरी प्रणाली ने संदेश संसाधित नहीं किया है इस प्रकार मेरा सिस्टम कोई अधिसूचना प्राप्त नहीं करता है। इसका मतलब यह है कि प्रक्रिया तब तक फंस जाती है जब तक कि कोई अन्य घटक जागने के लिए संदेश उत्पन्न नहीं करेगा।

जब भी सिस्टम को किसी भी समय बंद किया जा सकता है, तब तक मुझे पुन: प्रारंभ करने के बाद संदेशों को संसाधित करना जारी रखने के लिए तर्क में निर्माण करना होगा (जो किसी प्रकार का संदेश दृढ़ता, पुनर्विक्रय और लेनदेन प्रबंधन रणनीति का तात्पर्य है)।

इस तरह के सभी मुद्दे इस प्रकार जोड़ते हैं कि मैं ऊंट का उपयोग करके इस तरह के तर्क को डिजाइन करने के तरीके पर सुझाव देने के लिए कैमल चैंपियन अनुभव पूछना चाहता हूं। मुझे पता है कि समर्पित बीपीएम उत्पाद या ईएसबी इस समस्या को और अधिक आसान बना सकता है लेकिन मैं समाधान को फुला नहीं चाहता हूं।

किसी भी सलाह का स्वागत है, खासकर ऊंट क्षमताओं के संदर्भ में जो समाधान के सरलीकरण में मदद कर सकता है।

उत्तर

2

ऊंट का BAM समर्थन आपको दीर्घकालिक प्रक्रिया समर्थन (टाइमआउट, त्रुटि प्रबंधन परिदृश्य आदि) प्रदान करना चाहिए। इसके अलावा, JMS और transactions विश्वसनीय/लगातार मैसेजिंग आवश्यकताओं के साथ, आदि

सौभाग्य मदद और यदि आप एक वैकल्पिक दृष्टिकोण पर लैंड हमें पता चल जाएगा ...

2

मेरा सुझाव है दावा चेक पैटर्न सबसे अधिक है लंबे समय से चल रहे बाहरी आक्रमणों के बीच स्थायी स्थिति के लिए उपयुक्त है। आउटबाउंड संदेश भेजने से पहले अपनी प्रक्रिया की स्थिति में चेक-इन करें।

बाहरी प्रक्रिया से गैर-जवाब का पता लगाने के लिए एक तरीका है दो संदेश पोस्ट करना। एक संदेश बाहरी प्रक्रिया में जाता है, दूसरा आंतरिक कतार में जाता है। मैं दूसरा प्रक्रिया प्रक्रिया टाइमआउट संदेश कहूंगा। यह केवल सहसंबंध आईडी और उचित समाप्ति समय के साथ एक बहुत ही छोटा संदेश है। यदि प्रक्रिया बाहरी प्रक्रिया से प्राप्त की जाती है, तो प्राप्त करने की प्रक्रिया में सहसंबंध आईडी होगी और प्रक्रिया टाइमआउट कतार से संदेश को हटाने में सक्षम हो जाएगा। यदि बाहरी प्रक्रिया उत्तर नहीं देती है, तो प्रक्रिया समय समाप्ति कतार के लिए मृत-अक्षर-पंक्ति को ऊंट मार्ग से जोड़ा जाना चाहिए जो व्यवस्थापक को अलर्ट करता है या उचित स्वचालित कार्रवाई करता है, उदा। दावे की जांच को पुनः प्राप्त करना, इत्यादि। इसे लगातार राज्य को न्यूनतम ओवरहेड और बीपीएम उपकरण के साथ अनुमति नहीं देनी चाहिए और इसलिए विफलता का कोई भी बिंदु नहीं है।

संबंधित मुद्दे