क्या ये टाइम-आउट निष्क्रियता की अवधि के बाद हुए थे? हो सकता है कि आपका कनेक्शन पूल बहुत देर तक निष्क्रिय रहने के बाद पुराना हो गया हो।
अगर ऐसा है, तो इसके बारे में जाने के दो तरीके हैं:
-
सॉकेट टाइम-आउट अपवादों को पकड़ें, और आपका तत्काल अनुरोध एक नए कनेक्शन पूल तक पहुंचने में सक्षम होना चाहिए। (यह तब होता है जब आपके कनेक्शन ऑब्जेक्ट में ऑटो-रीकनेक्ट विकल्प को सही पर छोड़ दिया जाता है, जो कि डिफ़ॉल्ट है।)
-
एक ही कनेक्शन पूल का उपयोग करके समय-समय पर mongod सर्वर को पिंग करने के लिए कस्टम कीप-अलाइव का उपयोग करें, ताकि पूल ताज़ा बना रहे।
विकल्प 1 को लागू करना आसान है, लेकिन डिफ़ॉल्ट सॉकेट टाइम-आउट 30 के आसपास है जो कि अत्यधिक है। आप इस सेटिंग को आवश्यकतानुसार बदल सकते हैं।
विकल्प 2 थोड़ा सा हैक है, जिसमें थ्रेडिंग शामिल है।