2008-09-01 10 views
9

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

मुझे पता है कि 10 जी में UTL_DBWS है, लेकिन ऑनलाइन उपयोग की बड़ी संख्या में उपयोग-मामले नहीं हैं। क्या यह सामान्य उपयोग के लिए पर्याप्त स्थिर और लचीला है? Documentation

उत्तर

5

मैंने UTL_HTTP का उपयोग किया है जो कि सरल और काम करता है। आप अपने खुद के पैकेज के साथ एक चुनौती का सामना, तो आप शायद (, गूगल "PL/SQL से वेब सेवाओं लेने वाली" अग्रणी आप http://www.oracle-base.com/articles/9i/ConsumingWebServices9i.php जैसे करने के लिए) एक नेट पर UTL_HTTP भर के कई आवरण संकुल में से एक में समाधान पा सकते हैं

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

-2

यह older post देखें। मुझे उस पोस्ट के # 1 उत्तर से सहमत होना है; एक परिदृश्य की कल्पना करना मुश्किल है जहां यह एक अच्छा डिजाइन हो सकता है।

क्या आप एक सेवा, या स्टैंडअलोन एप्लिकेशन नहीं लिख सकते हैं, जो आपके डेटाबेस में किसी तालिका से बात करेगा? फिर आप उस तालिका पर ट्रिगर के रूप में जो कुछ भी चाहते हैं उसे लागू कर सकते हैं।

+0

# 1 उत्तर डॉटनेट में ऐसा करने के लिए निर्देश है। वास्तव में प्रासंगिक नहीं है। क्या आपका मतलब 29 अगस्त से ओरियन एडवर्ड्स की टिप्पणी है? याद रखें, लोग रैंक को ऊपर/नीचे ले जा सकते हैं क्योंकि लोग उन्हें रैंक करते हैं। –

1

हमने यूटीएल_एचटीटीपी का भी वर्णन किया है जैसा आपने वर्णन किया है। मेरे पास UTL_DBWS के साथ कोई प्रत्यक्ष अनुभव नहीं है, इसलिए मुझे आशा है कि आप जो भी जानकारी/अनुभव एकत्र कर सकते हैं उसका पालन कर सकते हैं।

@kogus, नहीं, यह कई अनुप्रयोगों के लिए एक बहुत अच्छा डिजाइन है। पीएल/एसक्यूएल एक पूर्ण प्रोग्रामिंग भाषा है जिसका उपयोग कई बड़े अनुप्रयोगों के लिए किया गया है।

2

मुझे यह चुनौती मिली और 'एसओएपी एपीआई' पैकेज स्थापित और स्थापित किया गया जो स्टैन ओरेकल-बेस पर सुझाता है। यह UTL_HTTP के शीर्ष पर कुछ अच्छी लिफाफा-निर्माण कार्यक्षमता प्रदान करता है।

हालांकि कुछ प्रश्न थे जो आपके प्रश्न से संबंधित थे। SOAP_API मानता है कि सभी अनुरोध सरल XML हैं- यानी केवल एक परत टैग पदानुक्रम।

मैंने क्लाइंट कोड को मनमाने ढंग से अतिरिक्त टैग डालने की अनुमति देने के लिए SOAP_API पैकेज बढ़ाया। तो आप एक उप-स्तर डाल सकते हैं जैसे कि अनुरोध जारी रखना जारी रखें, और एक बंद टैग डालना याद रखें।

नामस्थान समस्या परियोजना के लिए एक भालू था- एक्सएमएल के विभिन्न स्तरों के अलग-अलग नामस्थान थे।

मेरे द्वारा उपयोग किया जाने वाला एक अच्छा डीबगिंग टूल पॉकेट साबुन से टीसीपी ट्रेस है। www.pocketsoap.com/tcptrace/ आप इसे प्रॉक्सी की तरह सेट करते हैं और HTTP अनुरोध और क्लाइंट और सर्वर कोड के बीच प्रतिक्रिया ऑब्जेक्ट देखते हैं।

यह सब कहकर, हमें वास्तव में डेटाबेस में एक SOAP क्लाइंट होना पसंद है- हमारे पास सभी डेटा और मौजूदा पीएलएसक्यूएल कोड तक पूर्ण पहुंच है, आसानी से कर्सर के माध्यम से लूप कर सकते हैं और आवश्यकता होने पर बाहरी ऐप को एसओएपी के माध्यम से कॉल कर सकते हैं।यह कई कस्टम जावा या .NET कोड के साथ एक मध्यम स्तर को तैनात करने से बहुत तेज़ और आसान था। शुभकामनाएं और मुझे बताएं कि क्या आप मेरा उन्नत एसओएपी एपीआई कोड देखना चाहते हैं।