2012-04-16 6 views
13

मैं c3op के लिए नया है, और के उपयोग के बारे में उलझन में हूँ HowTo configure the C3P0 connection poolc3p0.idle_test_period का उपयोग।</p> <pre><code>c3p0.idle_test_period </code></pre> <p>इस लिंक में:

idleTestPeriod : Must be set in hibernate.cfg.xml (or hibernate.properties), Hibernate default: 
0, If this is a number greater than 0, c3p0 will test all idle, pooled but unchecked-out 
connections, every this number of seconds. 

परीक्षण के इस प्रकार का उद्देश्य क्या है (इडेल, जमा कनेक्शन) , और c3p0.idle_test_period और c3p0.timeout के बीच संबंध?

उत्तर

23

डेटाबेस सर्वर कुछ समय के बाद अपने पक्ष में एक कनेक्शन बंद कर सकता है - आपके एप्लिकेशन में कुछ त्रुटि उत्पन्न कर रहा है, क्योंकि यह किसी कनेक्शन पर एक क्वेरी भेजने का प्रयास करेगा जो अब सर्वर के पक्ष में उपलब्ध नहीं है।

इससे बचने के लिए आप पूल को समय-समय पर इसकी वैधता के लिए कनेक्शन (एक पिंग के बारे में सोचें) की जांच कर सकते हैं। यह idle_test_period है।

timeout वह समय है जिसके बाद पूल पूल से कनेक्शन हटा देगा, क्योंकि कनेक्शन थोड़ी देर के लिए चेक (आउट) नहीं किया गया था और पूल में c3pO.min_size से अधिक कनेक्शन शामिल हैं।

+8

कृपया ध्यान रखें, कि hibernate.c3p0.idle_test_period मान कभी भी hibernate.c3p0.timeout से अधिक नहीं होना चाहिए। अन्यथा सी 3 पी 0 कनेक्शन बंद नहीं होगा जो बंद कर दिया गया है। – MichaelCleverly

+0

@MichaelCleverly मुझे लगता है कि उस मामले में यह पूल से कनेक्शन को हमेशा लचीलापन के लिए जांचने के बजाय हटा देगा ... निश्चित रूप से महसूस करने के लायक है लेकिन जरूरी नहीं कि मुझे "कभी नहीं" मुझे लगता है :) – rogerdpack

+0

एक कनेक्शन खराब हो सकता है सर्वर-साइड निष्क्रिय टाइमआउट से अधिक कारण - एचए परतें हैं जो एक विफलता होने पर इसे ट्रिगर कर सकती हैं, उदाहरण के लिए। –

-1

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