MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Проверете удостоверяването на MongoDB с драйвер за Java 3.0

Конструкторите на MongoClient не хвърлят никакви изключения, свързани със свързаността. По-скоро те се връщат веднага след стартиране на една или повече фонови нишки, които се опитват да установят връзка и да се удостоверят въз основа на предоставените идентификационни данни.

Само когато дадено приложение използва MongoClient за извършване на някаква операция на сървъра на MongoDB, ще бъде изведено изключение. Това изключение обаче е общо изключение за изчакване, което показва, че драйверът не е успял да намери подходящ сървър за операцията, преди да изтече времето за изчакване на избор на сървър. Например:

    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
    }

ще хвърли MongoTimeoutException след 1 секунда. Въпреки че не се извежда MongoSecurityException, съобщението на MongoTimeoutException ще съдържа съответните подробности. Например, когато се свързвате към набор от три члена реплика, когато един от сървърите не работи и удостоверяването е неуспешно на останалите два, полето за съобщение на MongoTimeoutException ще бъде нещо като:

Времето за изчакване изтече след 1000 ms, докато се чака сървър, който съответства наReadPreferenceServerSelector{readPreference=primary}. Клиентският изглед на състоянието на клъстера е {type=UNKNOWN, servers=[{address=localhost:27017,type=UNKNOWN, state=CONNECTING,exception={com.mongodb.MongoSocketOpenException:Exception opensocket}, причинено от {java.net.ConnectException:Връзката е отказана}},{адрес=localhost:27018, type=UNKNOWN, state=CONNECTING,exception={com.mongodb.MongoSecurityException:Exceptionauthenticating MongoCredential{mechanism=null, userName='username',source='admin', password=, mehanizamProperties={}}}, причинено от{com.mongodb.MongoCommandException:Командата е неуспешна с грешка 18:'Удостоверяването не бе успешно.' на сървър localhost:27018. Пълният отговор е { "ok" :0.0, "code" :18, "errmsg" :"Удостоверяването не бе успешно." }}}]




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $setDifference

  2. Java/MongoDB заявка по дата

  3. Защо моята схема не добавя стойности по подразбиране в масиви от мангусти?

  4. Как да свържете Robomongo към MongoDB

  5. MongoDB ИЗБЕРЕТЕ БРОЙ ГРУПА ОТ