Došlo k těmto časovým limitům po obdobích nečinnosti? Je pravděpodobné, že se váš fond připojení stal zastaralým poté, co zůstal příliš dlouho nečinný.
Pokud ano, existují dva způsoby, jak toho dosáhnout:
-
Zachyťte výjimky časového limitu soketu a váš okamžitý požadavek by měl mít přístup k novému fondu připojení. (To je, pokud je možnost automatického opětovného připojení v objektu připojení ponechána na hodnotu true, což je výchozí nastavení.)
-
Použijte vlastní udržování naživu k pravidelnému testování serveru mongod pomocí stejného fondu připojení, aby fond zůstal čerstvý.
Možnost 1 je snadno implementovatelná, ale výchozí časový limit soketu je přibližně 30 s, což je poněkud přehnané. Toto nastavení můžete podle potřeby změnit.
Možnost 2 je trochu hack, který zahrnuje vytváření vláken.