Oracle को SQL सर्वर से कनेक्ट करना Easysoft SQL Server ODBC ड्राइवर के लिए सबसे आम उपयोग के मामलों में से एक है। इस संयोजन का समर्थन करने में न केवल हमारे ड्राइवर को स्थापित करने में सहायता प्रदान करना शामिल है। इसका मतलब Oracle कॉन्फ़िगरेशन समस्याओं को हल करने में मदद करना भी है जो Oracle Heterogeneous Services को हमारे ड्राइवर को लोड करने से रोकता है।
हाल ही में, एक SQL सर्वर ODBC ड्राइवर ग्राहक ने हमें निम्न त्रुटि की सूचना दी:
ORA-28513: internal error in heterogeneous remote agent
ग्राहक हमें DG4ODBC ट्रेस लॉग प्रदान करने में सक्षम था, जिसने हमें दो बातें बताईं:
- Oracle कॉन्फ़िगरेशन फ़ाइलें (.ora) सही तरीके से सेट की गई थीं। अगर इन फ़ाइलों में कोई त्रुटि है (उदाहरण के लिए एक लापता या बाहरी ब्रैकेट), तो कोई DG4ODBC ट्रेस लॉग उत्पन्न नहीं होगा।
- DG4ODBC, unixODBC ड्राइवर मैनेजर को लोड करने का प्रयास भी नहीं कर रहा था।
ऐसी स्थितियों में जहां Oracle DG4ODBC लॉग समस्या की पहचान नहीं करता है (इसमें आमतौर पर हमेशा एप्लिकेशन द्वारा रिपोर्ट की गई ORA-NNNNN त्रुटि की तुलना में अधिक जानकारी होगी), और ODBC लॉगिंग अभी तक संभव नहीं है, हम strace<तक पहुंचते हैं /कोड> या
ट्रस
. उदाहरण के लिए:
- Oracle उपयोगकर्ता के रूप में दो शेल सत्र प्रारंभ करें।
- खोल 1 में, Oracle श्रोता को रोकें।
- श्रोता को इस कमांड से शुरू करें:
strace -f -o /tmp/easysoft.log -s 512 lsnrctl start
—या—
truss -wall -rall -o /tmp/easysoft.log lsnrctl start
- शेल 2 में, SQL*PLus प्रारंभ करें और DG4ODBC / SQL सर्वर डेटाबेस लिंक के विरुद्ध SQL कथन चलाएँ।
- खोल 2 में, Oracle श्रोता को रोकें।
हालांकि सिस्टम लाइब्रेरी ट्रेसिंग टूल (ट्रस
ग्राहक के मामले में) ने अभी भी समस्या का कारण नहीं बताया।
अंत में, यह पता चला कि ग्राहक ORA_NLS10
. सेट कर रहा था पर्यावरण चर, और ऐसा करने का एक दुष्परिणाम DG4ODBC को काम करने से रोकना था। चूंकि इस मशीन पर वेरिएबल सेट करने की आवश्यकता नहीं थी, इसे अनसेट करना और प्रोफ़ाइल फ़ाइल से इसे हटाना ग्राहक की समस्या का समाधान था।