2010-10-04 11 views
6

बहुत समय पहले मुझे पता चला कि बीसीपी सिर्फ एक छोटा सी प्रोग्राम है जो डाटाबेस में बड़े पैमाने पर डेटा करने के लिए सिबेज क्लाइंट एपीआई का विशेष बिट कहता है। यह धोखा देती है और चोरी करता है और गति के नाम पर चेक बाधाओं को छोड़ देता है। बढ़िया, मैं इसके लिए सब कुछ कर रहा हूँ। sybase 12 में मैंने देखा कि एपीआई क्लाइंट लाइब्रेरी में उजागर हुआ था, लेकिन जावा नहीं।क्या sybase 15 जावा में बीसीपी एपीआई का समर्थन करता है?

मैं देख रहा हूं लेकिन मुझे कुछ भी नहीं मिला है जो कहता है कि उन्होंने अभी तक इसे सिबेज 15 जावा क्लाइंट लाइब्रेरी में लागू किया है। क्या किसी को पता है कि यह उपलब्ध है या नहीं sybase 15 में?

उत्तर

3

मैं एक बीसीपी एपीआई का उपयोग कर जावा पर आपकी टिप्पणियों से असहमत हूं। जबकि मैं जावा और ओडीबीसी/जेडीबीसी की सीमाओं के बारे में सहमत हूं जिसका मतलब यह नहीं है कि जावा बीसीपी एपीआई का उपयोग करने के फायदे नहीं हैं। हमारे पास बहुत सारे जावा के साथ एक प्रणाली है और यह जावा से खोलने के लिए व्यावहारिक या बहुत प्रभावी नहीं है और बीसीपी कमांड लाइन उपयोगिता चलाएं।

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

गति के लिए, अच्छी तरह से जेबीसीपी मूल एपीआई से धीमी है, हालांकि यह दोहराए गए सम्मिलित आदेशों को कॉल करने से स्वीकार्य और निश्चित रूप से तेज़ है।

Mwillett (JBCP के लेखक)

+1

मैं एक बहुत ही स्पष्ट व्यक्ति नहीं हूं लेकिन मेरी आत्मा में मुझे पता है कि हर प्रोग्रामर जानता है कि आपने उल्लेख किया है कि आप चीजों को कम करने के लिए लाइन कार्यक्रमों को कम करने के लिए शेल नहीं करते हैं। तुम बस नहीं करते इसे बहुत अच्छी तरह से शब्दों के लिए धन्यवाद। – stu

1

मैं नहीं सोच रहा हूं, यह जेडीबीसी स्पेक में ऑपरेशन करने के लिए एक और समस्या हो सकती है।

मुझे सोर्सफोर्ज पर एक जेबीसीपी परियोजना दिखाई देती है, लेकिन इसके साथ कोई अनुभव नहीं है।

+0

मुझे लगता है कि तुम सही हो। यह दुख की बात है कि एक स्पेस एक कंपनी को उपयोगी सॉफ्टवेयर लिखने से रोक देगा। – stu

1

उत्तर नहीं है।

लेकिन क्यों पृथ्वी पर आप जावा से डेटा के डेटा को स्थानांतरित करना चाहते हैं? (1) जावा इसके लिए डिज़ाइन नहीं किया गया है, इसलिए यह बहुत धीमा (2) देशी बीसीपी या सी + बीसीपी या पर्ल + बीसीपी या कोई शेल कमांड + बीसीपी इसके चारों ओर सर्कल चिल्लाएगा, और वैसे भी इसे विस्थापित करेगा। यह ओडीबीसी या जेडीबीसी के माध्यम से बीसीपी चलाने की इच्छा है।

हमें मास्लो के हथौड़ा से दूर जाने और नौकरी के लिए सही उपकरण का उपयोग करने की आवश्यकता है।


आगे विस्तार, टिप्पणी का जवाब:

  1. एक साधारण कार्यक्रम एएसई सर्वर (क्लाइंट-सर्वर शैली) से कनेक्ट होता है प्रदान की ओपन क्लाइंट लाइब्रेरी का उपयोग करता है; यह मूल है, और टीडीएस पैकेट को कुशलतापूर्वक ले जाता है। कनेक्शन एक सार्वभौमिक रूप से उपलब्ध एक इंच उद्यान नली है। सी, सी ++, कोबोल, पर्ल और पावरबिल्डर में लिखे गए कार्यक्रम इस परिवहन का उपयोग करते हैं।

  2. ओडीबीसी (और इस प्रकार जेडीबीसी क्योंकि यह ओडीबीसी के शीर्ष पर बनाया गया है) एक मिलीमीटर नली का उपयोग कर सर्वर से कनेक्ट करने का एक आसान तरीका है। हालांकि यह एएसई टेबल से चार्ट को आकर्षित करने के लिए Excel का उपयोग करने जैसे कार्यों के लिए काफी पर्याप्त है, जहां डेटा स्थानांतरण गति प्रासंगिक नहीं है; यह डेटा सर्वर पर सामान्य ऐप पहुंच के लिए किसी भी पर्याप्त मात्रा के डेटा को स्थानांतरित करने के लिए काफी अपर्याप्त है (सिवाय इसके कि "प्रोग्रामर" इस ​​तथ्य से अनजान है कि [1] उपलब्ध है)।

    जावा में [1] नहीं है और यह [2] परिवहन तक ही सीमित है।

  3. बीसीपी एक उपयोगिता प्रोग्राम है (अपने आप पर मौजूद है) विक्रेता द्वारा आपूर्ति की जाती है जो सर्वर से अधिक कसकर जुड़ती है। यह "क्लाइंट एपीआई का विशेष बिट" नहीं है। कोई "झूठ बोलना और धोखाधड़ी" शामिल नहीं है, सभी बाधाओं को कार्य करने वाले डीबीए द्वारा निर्देशित किया जाता है। कनेक्शन ढाई इंच की आग नली है, आम तौर पर जनता के लिए उपलब्ध नहीं है। यह गति पर बड़े डेटा वॉल्यूम को स्थानांतरित करने के लिए डिज़ाइन किया गया है। यदि सर्वर के समान मेजबान पर उपयोग किया जाता है, क्योंकि नेटवर्क के माध्यम से नली को रेट नहीं किया जाता है, तो यह डेटा को तेज़ी से ले जाता है।

  4. बाद में, विक्रेता ने पुस्तकालय (आपकी शर्तों में एपीआई) के रूप में बीसीपी क्षमता उपलब्ध कराई, जिसे किसी भी उचित आर्किटेक्टेड कंपाइलर से बुलाया जा सकता है। सी, सी ++, कोबोल, और पर्ल ऐसे हैं, और कार्यक्रम तैयार करते हैं, और इसलिए सीधे अपने कोड से इस पुस्तकालय तक पहुंच प्रदान करते हैं। कनेक्शन एक ही ढाई इंच की आग नली है, लेकिन अतिरिक्त परतों के कारण, यह दो इंच की आग नली की अधिकतम गति से चलता है।

(पाठकों ने इस एक पूरी सूची के होने की उम्मीद के लिए नोट: वहाँ दो अन्य विकल्प जो मैं यहाँ विस्तृत नहीं है, क्योंकि वे सर्वर-सर्वर और इस सूत्र के लिए प्रासंगिक नहीं हैं)।

चूंकि जावा प्रोग्राम वर्तमान में एएसई सर्वर से एक मिलीमीटर कनेक्शन तक ही सीमित हैं, जावा में बीसीपी एपीआई प्रदान करने में कोई उपयोग नहीं है (आपके पास नेटवर्क के माध्यम से केवल ढाई इंच की आग नली होगी, एक मिलीमीटर के प्रवाह के साथ), यह एक बेतुका उद्यम है। एक कारण है कि लाखों संगठनों ने जावा में डाला है, इसके बजाय लंबे समय तक प्रगति के दौरान, उनमें से कोई भी एक फायरहाउस प्रदान करने में पैसा खर्च नहीं करता है जो ड्रिप और बूंदों को चलाता है।

आप एक डचशंड से ग्रेहाउंड की गति प्राप्त नहीं कर सकते हैं, इसे रैसेट्रैक प्रशिक्षण देने का कोई उपयोग नहीं है। आप अपने कान में फुसफुसाते हुए वादे रोक सकते हैं।

दूसरा, जावा बड़े (स्रोत) डेटा सेट को कुशलता से संभाल नहीं सकता है, यह इसके लिए डिज़ाइन नहीं किया गया था। इसलिए भले ही जेडीबीसी स्ट्रैंगुलेशन उठाया गया था (उदाहरण के लिए। मूल ओपन क्लाइंट लाइब्रेरी लागू की गई थी), यह अभी भी सी, सी ++, कोबोल, पर्ल, पीबी के रूप में डेटा को तेज़ी से नहीं ले जा सकता है; यह एक इंच की नली में एक ट्रिकल (चौथाई इंच?) पर डेटा ले जाएगा। इसलिए, फिर भी, जावा पुस्तकालय में बीसीपी क्षमता प्रदान करना बेतुका होगा; यह उपयोगी होगा अगर जावा (जिसे अन्य प्राथमिकताओं के साथ डिजाइन किया गया था) बड़ी डेटा स्थानांतरण क्षमता के साथ निषिद्ध है।

यह आपके जावा, जावा, और जावा मानसिकता के अलावा कुछ भी नहीं छोड़ सकता है, और नौकरी के लिए सही उपकरण (प्रोग्राम) का उपयोग करें। यदि आप जावा "प्रोग्रामर" हैं, तो कम से कम आपको अपनी प्रोग्रामिंग भाषा और उपलब्ध पुस्तकालयों की क्षमता और सीमाओं से परिचित होना चाहिए। मूल प्रश्न उसमें पूरी अज्ञानता प्रदर्शित करता है, इसलिए मुझे इसे अपने संशोधित पद में आपूर्ति करना था।

प्रोग्रामर जो जावा तक सीमित नहीं हैं, इस बारे में सोचें कि बड़े डेटा स्रोत कहां स्थित हैं; नेटवर्क पर डेटा स्थानान्तरण को कम करें; इस बारे में सोचें कि कौन से कार्यक्रम पहले ही लिखे गए हैं और इसका उपयोग किया जा सकता है (जैसा कि ग्रह के बाकी हिस्सों से अलगाव में खुद को लिखने का विरोध किया गया है); और उनका इस्तेमाल करें।

आखिरकार, समझने के लिए, अगर आपने कुछ लाइब्रेरी में बीसीपी क्षमता प्राप्त की है, और इसे लागू किया है, तो जब आप वास्तविक दुनिया में "प्रोग्राम" डालते हैं, तो कोई भी उचित डीबीए इसके ट्रिकल स्पीड डेटा ट्रांसपोर्ट के कारण इसे खारिज कर देगा , और इसकी आग नली के साथ बीसीपी का उपयोग करें।

+0

http://catless.ncl.ac.uk/Risks/26.20.html#subj2 – stu

+0

मुझे यह अच्छा लेख मिला कि आपको चीजों को पूरा करने के लिए गोले क्यों नहीं चलाना चाहिए। – stu

+1

आप अपनी निश्चित स्थिति का समर्थन करने के लिए सबूत ढूंढ रहे हैं। बेवकूफ जो रिपोर्ट सिस्टम को कार्यान्वित करता है, यह समझ में नहीं आता कि यूनिक्स सिस्टम पर सुरक्षा कैसे स्थापित करें। MySQL RUby, आदि, सभी फ्रीवेयर हैकिंग के लिए व्यापक रूप से खुला है, एंटरप्राइज़ डीबीएस नहीं हैं। लेकिन चलो विचलित नहीं हो जाते हैं, ग्रह पर सफलतापूर्वक चल रहे लाखों (शायद अरबों) खोल और पर्ल स्क्रिप्ट हैं (सबसे सुरक्षित, लेकिन कुछ मिकी माउस की दुकानें असुरक्षित हैं)। – PerformanceDBA

1

आप कोई आपत्ति नहीं है अपने जावा प्रोग्राम अब और पोर्टेबल नहीं किया जा रहा है, तो आप JNI के माध्यम से किसी भी सी पुस्तकालय के लिए लिंक कर सकते हैं। यही कारण है कि बेहतर आपके आवेदन को फिर से लिखने के लिए होने के लिए, या डेटा

BCP के लिए एक अलग कार्य बुला रहा है मुझे लगता है अगर आप सी में अपने पूरे आवेदन को फिर से लिखने नहीं चाहते ++ ;-)

+0

यह एक बहुत अच्छा मुद्दा है, मुझे नहीं पता कि यह 4 साल पहले क्यों नहीं हुआ था। :-) लेकिन हां, यह समस्या अब कोई समस्या नहीं है, लेकिन यह एक बहुत अच्छा काम करने योग्य विचार होगा। – stu

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