2013-01-14 11 views
5

मैंने एसक्यूएल कनेक्शन का निपटान करने से संबंधित this प्रश्न पढ़ा।समापन(), लेकिन निपटान नहीं() एसक्यूएल कनेक्शन - प्रभाव

मेरा सवाल है, एसक्यूएल कनेक्शन को बंद करना कितना बुरा है, लेकिन इसका निपटान नहीं है? हमारे पास एक ऐसा कार्य है जो बस बंद है, लेकिन कभी निपटान नहीं किया जाता है, और इसका उपयोग दिन में 1000s बार किया जाता है। क्या इसे बंद करना बेहतर है, या क्या इसे बंद करना और निपटाना बेहतर होगा?

मुझे पता है कि निपटान() कनेक्शन को भी बंद कर देता है, हालांकि मैं जानना चाहता हूं कि कनेक्शन कनेक्शन का निपटान क्यों नहीं करता है।

+1

'उपयोग' कथन के साथ हर कनेक्शन को आसानी से लपेटना कितना मुश्किल है? मैंने इसे आदत बना दी है और हर जगह इसका इस्तेमाल किया है। – mellamokb

+0

'। कारण 'कनेक्शन कनेक्शन का निपटान नहीं करता है क्योंकि आप कनेक्शन को फिर से खोलने के लिए आसानी से' ओपेन 'को कॉल कर सकते हैं। – mellamokb

+0

@mellamokb। पूलिंग दिया गया है आप आसानी से कनेक्शन फिर से बना सकते हैं। पूल तब तक इसका निपटान नहीं करेगा जब तक यह 2 मिनट (डिफ़ॉल्ट) के लिए निष्क्रिय नहीं हो जाता –

उत्तर

4

कनेक्शन के बारे में महत्वपूर्ण बात उन्हें बंद करना है ताकि वे कनेक्शन पूल में लौट सकें।

इस तरह, कनेक्शन को निपटाने और बंद करने के बीच थोड़ा अंतर होता है, जब तक आप कनेक्शन बंद करने और पुन: उपयोग करने के बारे में अनुशासित नहीं होते हैं।

हालांकि, using कथन में कनेक्शन के निर्माण को लपेटने की आदत में होने का मतलब है कि आप इसे बंद करना कभी नहीं भूलते हैं।

IDisposable लागू करने वाली किसी ऑब्जेक्ट का निर्माण करने के लिए यह एक सामान्य अच्छा मुहावरे है using कथन में लपेटा जाना चाहिए, और ऐसे मुहावरे के रूप में कनेक्शन के साथ-साथ यह भी अच्छा है।

0

इस पर निर्भर करता है कि यह दायरे से बाहर है या नहीं। यदि यह करता है तो यह वैसे भी बंद हो जाएगा, और कनेक्शन पूल वापस कर दिया गया है (बशर्ते आपने इसे अक्षम नहीं किया है)। तो आप जो भी कर रहे हैं, उसे स्पष्ट रूप से या स्पष्ट रूप से कॉल करना आपके इरादे को स्पष्ट करता है और पूल में पुन: उपयोग के लिए "तुरंत" कनेक्शन बनाता है।

आइडिया डेवलपर्स को डीबी त्वरित में आने और बाहर आने के लिए राजी करना था। बहुत सारे छोटे लेनदेन। पुरानी शैली एक कनेक्शन खोलती नहीं है और फिर इसे छुपाती है, इसलिए किसी और को इसकी आवश्यकता नहीं होने पर, कोई और नहीं मिल सकता है।

यदि कनेक्शन पूलिंग कनेक्शन क्लॉज पर है, तो बनाएं, खोलें, बंद करें। यदि यह बंद है तो एक उपयोग खंड बनाने, खोलने, बंद करने, निपटाने के बराबर है।

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

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