sql >> Databáze >  >> NoSQL >> MongoDB

Výjimka časového limitu soketu v Mongo

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:

  1. 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í.)

  2. 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.




  1. Java&Mongo:získat objekt tam, kde existuje pole

  2. Meteor Mongo findOne vrací v metodě nedefinované

  3. Jak zpracovat požadavky na vložení do Spring Data před jejich přidáním do MongoDB?

  4. Klient sdruženého připojení Redis serviceStack