2010-11-25 6 views
5

मेरे पास ऐसी स्थिति है जहां मुझे कुछ कोड निष्पादित करने की आवश्यकता है कि कई कारणों से (जो मैं यहां नहीं आऊंगा) पीएल/एसक्यूएल की तुलना में जावा में बेहतर है। मैं इसे देखना वहाँ के रूप में दो विकल्प हैं:जावा और ओरेकल - जेएआर को ओरेकल लोड करें या अलग से निष्पादित करें?

  1. अपने सभी संकलित कोड और अन्य समर्थन फ़ाइलें/अन्य जार के साथ एक जार बनाएं, ओरेकल में जार (हम 10g चला रहे हैं) लोड, और से जावा निष्पादित एक संग्रहीत प्रक्रिया।

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

    • पेशेवर: मैंने जावा को इस तरह लिखा है इसलिए मैं इससे परिचित हूं।
    • विपक्ष: बाकी सब कुछ के साथ गरीब एकीकरण, शायद चलाने और प्रबंधित करने के लिए अतिरिक्त मैन्युअल चरणों की आवश्यकता होगी।

जावा कोड अन्य तालिकाओं के लिए डेटा (गैर एक्सएमएल) ओरेकल तालिकाओं से XML डेटा पढ़ा है, और लिखने के लिए होगा, इसलिए डेटाबेस एकीकरण की राशि बनाया मुझे डेटाबेस में जावा कोड लोड हो रहा है लगता है एक अच्छा विचार हो सकता है लेकिन मुझे यकीन नहीं है ...

लोगों को ओरेकल के भीतर से जावा कोड लोड करने और चलाने का क्या अनुभव है? परीक्षण और डीबग करना कितना आसान है? क्या कोई विशेष उपकरण आवश्यक हैं? कोई भी "गॉथचास" मुझे अवगत होना चाहिए?

+0

यदि आप बहुत सारे डेटा तक पहुंचने के लिए जा रहे हैं, तो डेटाबेस के अंदर से जावा चलाना बेहतर प्रदर्शन करेगा। अनजान ज्ञान को अपने विकल्पों को ड्राइव न करने दें! – milan

+0

मैं जेडीई डेवलपर आईडीई में देखने का सुझाव दूंगा। यह सभी तैनाती के विवरण जानता है। –

+0

@ Thorbjørn: धन्यवाद। मैं इसे अगले प्रोजेक्ट के लिए देख लूंगा। समय के नए आईडीई को स्थापित/कॉन्फ़िगर/सीखना शुरू करने के लिए समय बहुत छोटा है, लेकिन मैं इसे ध्यान में रखूंगा। – FrustratedWithFormsDesigner

उत्तर

1

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

एकमात्र ऐसा हिस्सा जहां आपके डेटाबेस में जावा एम्बेड करना जटिल हो जाता है (आपको अपने जावा कोड के लिए विशेष अनुमतियां सेट करनी होंगी) जब आपको बाहरी संसाधनों तक पहुंच की आवश्यकता होती है (नेटवर्क, फ़ाइल I/o कुछ नामों के लिए) यह स्पष्ट रूप से इस समस्या में आपकी स्थिति नहीं है।

+0

मैं बाहरी कुछ भी नहीं पहुंच पाऊंगा। बस एक्सएमएल और एक या दो अन्य टेबल भंडारण तालिका।मेरी मुख्य चिंता परीक्षण और डिबगिंग थी। क्या कोई आईडीई है जो इस कोड से कदम उठाने में सक्षम होगी? साथ ही, कुछ कोड जो मैं प्राप्त कर सकता हूं (अगर मैं ऐसा चुनता हूं) लॉग जानकारी को लॉग करने के लिए log4j का उपयोग करता है। मैं * उसे किसी तालिका (या dbms_output?) पर रीडायरेक्ट कर सकता हूं, लेकिन यह और अधिक काम होगा और मेरी टाइमलाइन नहीं हैं, उम ... शानदार। ;) – FrustratedWithFormsDesigner

+0

** log4j ** के बारे में पता नहीं है। मेरे पास यह समस्या नहीं थी क्योंकि हर बार मैंने ओरेकल डेटाबेस पर चलाने के लिए जावा कोड लिखा था, यह केवल ** ** उद्देश्य के लिए विशिष्ट कोड था। आईडीई समर्थन के बारे में सुनिश्चित नहीं है: आप ** पीएल/एसक्यूएल डेवलपर ** {महान ओरेकल फ्रंट एंड कभी IMHO :-)} या ओरेकल के ** एसक्यूएल डेवलपर ** को देख सकते हैं कि उनके डिबगर्स के पास जावा समर्थन है या नहीं। –

0

अपने परिदृश्य के लिए, डेटाबेस में इसे सही दृष्टिकोण लगता है। कारण बाहर यह करने के लिए हो सकता है: जावा libs पर

  • निर्भरता कि तुलना में एक अलग linux उपयोगकर्ता खाते के अंतर्गत इसे चलाने के लिए Oracle की

लेकिन ओरेकल के अंतर्निहित JVM

  • की आवश्यकता के साथ संगत नहीं हैं मैं या तो आपके परिदृश्य में नहीं देखता

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