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

Zkontrolujte ověření MongoDB pomocí ovladače Java 3.0

Konstruktory MongoClient nevyvolávají žádné výjimky související s připojením. Spíše se vrátí okamžitě po spuštění jednoho nebo více vláken na pozadí, která se pokoušejí navázat spojení a ověřit se na základě poskytnutých přihlašovacích údajů.

Výjimka bude vyvolána pouze tehdy, když aplikace používá MongoClient k provedení nějaké operace na serveru MongoDB. Tato výjimka je však obecná výjimka časového limitu indikující, že ovladač nenalezl vhodný server pro operaci před vypršením časového limitu výběru serveru. Například:

    MongoClient client = new MongoClient(asList(new ServerAddress("localhost"), new ServerAddress("localhost:27018")),
                                         singletonList(MongoCredential.createCredential("username",
                                                                                        "admin",
                                                                                        "bad".toCharArray())),
                                         MongoClientOptions.builder().serverSelectionTimeout(1000).build());


    try {
        client.getDB("admin").command("ping");
    } catch (MongoTimeoutException e) {
        // do something
    }

po 1 sekundě vyvolá výjimku MongoTimeoutException. I když není vyvolána žádná výjimka MongoSecurityException, zpráva výjimky MongoTimeout bude obsahovat relevantní podrobnosti. Když se například připojujete k sadě tříčlenných replik, když je jeden ze serverů mimo provoz a ověření se nezdařilo na zbývajících dvou, pole zprávy MongoTimeoutException bude vypadat takto:

Časový limit vypršel po 1000 ms při čekání na server, který odpovídáReadPreferenceServerSelector{readPreference=primary}. Klientský pohled na stav clusteru je {type=UNKNOWN, servers=[{address=localhost:27017,type=UNKNOWN, state=CONNECTING,exception={com.mongodb.MongoSocketOpenException:Výjimka openingsocket} způsobená {java.net.ConnectException:Připojení odmítnuto}},{address=localhost:27018, type=UNKNOWN, state=CONNECTING,exception={com.mongodb.MongoSecurityException:Exceptionauthenticating MongoCredential{mechanism=null, userName='username',source='admin', password=, mechanismProperties={}}}, způsobeno {com.mongodb.MongoCommandException:Příkaz se nezdařil s chybou 18:'Autentizace selhala.' na serveru localhost:27018. Úplná odpověď je { "ok" :0,0, "kód" :18, "errmsg" :"Ověření se nezdařilo." }}}]




  1. Příkaz MongoDB count

  2. Meteorická stránka se obnovuje kliknutím na tlačítko

  3. node.js ukládá objekty v redis

  4. Položka seznamu Redis Pop Podle počtu položek