2009-03-24 10 views
8

जेआरयूएन को अपग्रेड करने के हिस्से के रूप में, हम 1.4 जेवीएम से 1.6 जेवीएम तक जा रहे हैं। अब मुझे वास्तव में अजीब ऑरैकल डीबी त्रुटि मिल रही है: "ओएलएल 8 एक असंगत स्थिति में है"। मैंने उन प्रश्नों को सम्मिलित करने के लिए समस्या को पिन किया है जो बाध्य चर का उपयोग नहीं करते हैं - सभी इनलाइन पैरामीटर। यदि मैं किसी भी बाध्य चर के बिना क्वेरी चलाता हूं, तो मुझे उपरोक्त त्रुटि मिलती है। जैसे ही मैं एक बाध्य चर के साथ हार्ड कोडित मानों में से एक को प्रतिस्थापित करता हूं - सबकुछ त्रुटि के बिना काम करता है।ओरेकल: ओएएल 8 एक असंगत स्थिति में है

अन्य अजीब बिट यह है कि क्वेरी निष्पादित करने के बाद, यह वास्तव में डेटाबेस के लिए प्रतिबद्ध है। मैं दूसरे सत्र से कनेक्ट कर सकता हूं और सम्मिलित पंक्ति देख सकता हूं। मैंने एक लेनदेन में क्वेरी को लपेटने की कोशिश की है और ऐसा लगता है क्योंकि व्यवहार स्पष्ट लेनदेन के बिना क्वेरी से अपरिवर्तित है।

जावा संस्करण:: 1.6.0_12-B04
वर्चुअल मशीन संस्करण:

यहाँ प्रासंगिक जानकारी दी जा रही 11.2-B01 (हॉटस्पॉट सर्वर)
ओरेकल सर्वर: 10.2.0.4
ओरेकल ग्राहक: 11.1। 0.7.0 के माध्यम से ojdbc6.jar

अद्यतन: मैं cfqueryparam का उपयोग कर रहा हूं - उन्हें ऑरैकल दुनिया में बाध्य चर कहा जाता है। हालांकि यह तत्काल समस्या का समाधान करता है, हमारे पास एक बड़ा विरासत कोड आधार है जिसे हम वास्तविक रूप से CF7 से CF8 तक अपग्रेड करने के हिस्से के रूप में प्रश्नों को अपडेट करने के लिए नहीं जा सकते हैं।

भले ही मैंने एक विशिष्ट स्थिति को पिन किया है जो असफल हो जाता है (और इसे एक मैक्सुनिट परीक्षण में encapsulated) - इसका मतलब यह नहीं है कि अन्य क्षेत्र नहीं हैं जहां यह एक मुद्दा हो सकता है। मैं वास्तव में ऐसे समाधान का समाधान करना चाहता हूं जो इसके चारों ओर कोडिंग करने के बजाय OALL8 त्रुटि को हटा देता है।

अपडेट 2: हमारे डीबीए के साथ जांच करने के बाद उसने सिमिलर को CURSOR_SHARING नामक पैरामीटर सेट किया था। ओरेकल डिफ़ॉल्ट सटीक है। क्या हो रहा है जब कोल्डफ्यूजन क्वेरी को निष्पादित करने के लिए हाथ से पकड़ता है, ओरेकल सभी शाब्दिक मूल्यों को मोड़ने के लिए बदल रहा है और यह कोल्डफ्यूजन को भ्रमित कर रहा है। सेटिंग को EXACT पर वापस चालू करने से शाब्दिक प्रश्नों को ठीक से काम करने की अनुमति मिलती है।

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

उत्तर

8

तो ... बाध्य चर का उपयोग करें?

सुरक्षा के लिए आपको उनका उपयोग करना चाहिए (cfqueryparam के माध्यम से), और यदि यह समस्या हल करती है तो ऐसा करने का और भी कारण है।


आप में रुचि रखते हैं क्या वास्तविक त्रुटि का अर्थ है, गूगल plentyofresults है, सुझाव है कि यह JDBC ड्राइवर के साथ एक त्रुटि है, और यहां तक ​​कि एक patch is available पता चलता है।


लेकिन मुझे आपकी पोस्ट में कोई वास्तविक प्रश्न नहीं दिख रहा है ...?

+5

विडंबना यह पृष्ठ शीर्ष 10 Google परिणाम में से एक है। –

0

पाया तो weblogic में आप आवेदन रन, आप ojdbc.jar "weblogic81 \ सर्वर \ lib" निर्देशिका स्थापित करने के लिए, कॉपी एक ही नाम फ़ाइल को शामिल करना चाहिए।