2009-08-20 15 views
29

क्या ओरेकल एसक्यूएल डेवलपर को मेरे डीबी कनेक्शन बंद करने या टाइमआउट बढ़ाने के लिए कोई तरीका है? कभी-कभी लंबे समय से चलने वाली क्वेरी के दौरान SQL Dev कनेक्शन को बंद कर देगा, मेरी क्वेरी सर्वर पर चल रही है लेकिन मुझे कोई परिणाम नहीं है। यदि मैं सर्वर में आरडीपी करता हूं और स्थानीय रूप से एसक्यूएल चलाता हूं तो यह कभी भी इस समस्या को नहीं लगता है।मैं ओरेकल एसक्यूएल डेवलपर को डीबी कनेक्शन बंद करने से कैसे रोक सकता हूं?

+0

एसक्यूएल डेवलपर 4 के लिए समाधान के साथ संबंधित प्रश्न: http://stackoverflow.com/questions/12999811/when-sql-developer-is-idle-i-lose-my-connection – Vadzim

उत्तर

7

यह एसक्यूएल डेवलपर के साथ किसी समस्या की तरह नहीं लगता है, मैं कभी भी इसे पार नहीं कर पाया। क्या आप सुनिश्चित हैं कि यह आपके नेटवर्क की तरह कुछ और नहीं है? यदि आप SQL से अपने डेस्कटॉप से ​​कनेक्ट करते हैं तो क्या होता है।

+0

इस उत्तर को चिह्नित करने में देर से, लेकिन हाँ यह एक नेटवर्क मुद्दा था। –

+0

@ केविनबैबॉक आप जिस नेटवर्क समस्या का सामना कर रहे थे वह क्या था? – theCodeMachine

+0

मेरे पास टॉड और ओरेकल एसक्यूएल डेवलपर है, ओरेकल एसक्यूएल डेवलपर हमेशा डिस्कनेक्टिंग और कनेक्ट करने का प्रयास कर रहा है, बहुत परेशान है, इस बीच टॉड पूरे दिन कनेक्शन रखता है। अब मैं मैं रखें जिंदा विस्तार परीक्षण किया व्यावसायिक कारणों के लिए टॉड छोड़ना पड़ :( –

26

मेरे पास इसका जवाब नहीं है, लेकिन मुझे एक ही समस्या का सामना करना पड़ रहा है।

मेरे एसक्यूएल डेवलपर और डेटाबेस के बीच फ़ायरवॉल स्वचालित रूप से "निष्क्रिय" सत्र बंद कर देता है। एक लंबी चल रही क्वेरी फ़ायरवॉल के अनुसार एक निष्क्रिय सत्र है, इसलिए वह इसे बंद कर देता है। मैंने अभी तक नहीं पाया है कि एसक्यूएल डेवलपर को लंबे समय तक चलने वाली क्वेरी के साथ कनेक्शन पर पैकेट कैसे भेजना है, ताकि फ़ायरवॉल कनेक्शन बंद न करे। और मुझे नहीं पता कि यह संभव है या नहीं।

इसलिए मुझे नहीं लगता कि यह एक SQL डेवलपर समस्या है, लेकिन फ़ायरवॉल समस्या है।

- अद्यतन

है कि आप कनेक्शन को सक्रिय रखने के लिए अनुमति देता SQL डेवलपर के लिए एक विस्तार है: http://sites.google.com/site/keepaliveext/

यह पूरी तरह से समाप्त नहीं हुआ है (उदाहरण के लिए अधिसूचना आप राज्यों में एक ही समय समाप्त नहीं मिलता है अभी तक इससे कोई फर्क नहीं पड़ता कि आपने किस टाइमआउट को निर्दिष्ट किया है) लेकिन यह चाल है। मुझे नहीं है, फिर भी, यह नवीनतम SQL डेवलपर रिलीज के खिलाफ परीक्षण किया है, लेकिन यह SQL डेवलपर 2.2.x के साथ काम किया

- अद्यतन

SQL डेवलपर 4+ आप उपयोग कर सकते हैं: http://scristalli.github.io/SQL-Developer-4-keepalive/

+0

। http://sites.google.com/site/keepaliveext/ यह वास्तव में अपेक्षा के अनुरूप है, धन्यवाद! –

+0

यह नहीं लगता है काम करता है 4.0 – ATorras

+3

पर काम कर रहा है एसक्यूएल डेवलपर 4.0 के लिए एक वर्किंग वर्जन: https://bitbucket.org/scristalli/sql-developer-4-keepalive/overview –

8

मुझे फ़ायरवॉल समस्या की तरह लगता है।

सर्वर की SQLNET.ORA फ़ाइल में EXPIRE_TIME पैरामीटर सेट करने के साथ आपको कुछ भाग्य हो सकता है। प्रलेखन से:

क्लाइंट/सर्वर कनेक्शन सक्रिय हैं, यह सत्यापित करने के लिए जांच भेजने के लिए मिनटों में समय अंतराल निर्दिष्ट करने के लिए पैरामीटर SQLNET.EXPIRE_TIME का उपयोग करें। 0 से अधिक मान निर्धारित करने से यह सुनिश्चित होता है कि असामान्य ग्राहक समाप्ति के कारण कनेक्शन अनिश्चित काल तक नहीं छोड़े जाते हैं। अगर जांच को समाप्त कनेक्शन मिल जाता है, या कनेक्शन जो अब उपयोग में नहीं है, तो यह एक त्रुटि देता है, जिससे सर्वर प्रक्रिया से बाहर निकलती है। यह पैरामीटर मुख्य रूप से डेटाबेस सर्वर के लिए है, जो आमतौर पर किसी भी समय एकाधिक कनेक्शन को संभालता है।

10g Documentation on EXPIRE_TIME

+0

मैंने सफलतापूर्वक इस पैरामीटर की प्रभावशीलता का परीक्षण किया। धन्यवाद! –

5

इसे करने के लिए एक अस्थायी समाधान, 'डाटा ग्रिड' आप टैब 'डीबीएमएस आउटपुट' मिल जाएगा के किनारे पर के रूप में, डीबीएमएस उत्पादन चालू और एक स्वीकार्य समय के लिए मतदान आवृत्ति सेट ।

+0

अच्छा सुझाव ... I "डेटा ग्रिड" से आपका क्या मतलब है, मुझे पता नहीं है लेकिन मुझे यह 'व्यू> डीएमबीएस आउटपुट' (एएलटी, वी, डी) के तहत मिला है। –

11

यहां एक और रखें कनेक्शन सक्रिय एक्सटेंशन है जो उपयोग में हो सकता है। (उपरोक्त वर्णित विस्तार में इस समस्या में कई समस्याएं हल की गई हैं।

2.2:)

http://sites.google.com/site/keepconnext/

+1

पोर्ट पर काम लगभग पूरा हो गया है, यहां विवरण: http: // साइट्स। google.com/site/keepconnext/ –

2

हमारे डीबीए इस के लिए एक समाधान मिल गया है लगता है। यदि OC4J इंस्टेंस & डेटाबेस के बीच फ़ायरवॉल मौजूद है तो फ़ायरवॉल डेटाबेस सर्वर पर निष्क्रिय जेडीबीसी कनेक्शन छोड़ सकता है। हालांकि, ओसी 4 जे इंस्टेंस यह नहीं पता लगा सकता है कि फ़ायरवॉल ने डेटाबेस से कनेक्शन का समय समाप्त कर दिया है। ओरेकल नेट को इस समस्या को हल करने के लिए डेड कनेक्शन डिटेक्शन (SQLNET.EXPIRE_TIME) के साथ कॉन्फ़िगर किया जा सकता है। डेटाबेस सर्वर पर EXPIRE_TIME को फ़ायरवॉल कनेक्शन टाइमआउट से कम मान पर सेट करें ताकि डीसीडी डेटाबेस को जीवंत बनाए रख सके। नोट 151972.1 देखें "डेड कनेक्शन डिटेक्शन (डीसीडी) समझाया गया"। चूंकि यह डेटाबेस सर्वर पर कॉन्फ़िगर किया गया एक सेटिंग है, मिडटीयर पर नहीं, यह सभी डेटाबेस कनेक्शन (ओसीआई और पतली जेडीबीसी) के लिए लागू होगा। वैकल्पिक समाधान: - फ़ायरवॉल के निष्क्रिय टाइमआउट पैरामीटर को अक्षम या बढ़ाएं। या - डेटाबेस पर और मध्यवर्ती सर्वर पर TCP Keepalive समय सेटिंग को फ़ायरवॉल कनेक्शन टाइमआउट से कम मान पर कॉन्फ़िगर करें। टीसीपी के रखरखाव के समय को स्थापित करने के बाद, मशीनों को जिंदा कनेक्शन रखने के लिए निर्दिष्ट मिनटों के बाद बार-बार एक नल पैकेट भेजना होगा। जैसे ही फ़ायरवॉल निष्क्रिय टाइमआउट के अंदर हर बार पैकेट भेजा जाता है, कनेक्शन बंद नहीं होगा।

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

  • कोई संबंधित समस्या नहीं^_^