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

MongoDB:java.lang.IllegalStateException:stav by měl být:otevřený

Zkuste nastavit možnost maxConnectionIdleTime v MongoClientOptions (zejména pokud používáte hostované prostředí MongoDB)

Příklad:

    new MongoClientOptions.Builder()
    .requiredReplicaSetName(REPLICASET_NAME)
    .maxConnectionIdleTime (MAX_IDLE_TIME)
    .connectionsPerHost(CONNECTION_PER_HOST)
    .cursorFinalizerEnabled(false)
    .build();

connectTimeout je zavádějící, protože se jedná o nastavení časového limitu pro počáteční připojení.

U problému s opětovnou inicializací MongoClient se ujistěte, že klientský kód je ve správném rozsahu, aby jej mohl vložit kód vyzvednout. Také vidím, že se znovu inicializuje pouze db a nikoli objekt na úrovni kolekce (proxovaný?).




  1. find({}) vrací prázdné pole mongoose

  2. nejlepší možný návrh schématu pro databázi analýzy protokolů v mongodb

  3. Aktualizujte výraz místo hodnoty

  4. Jak nastavit časový limit čtení na klientovi node redis?