MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak złapać wyjątek podczas tworzenia instancji MongoClient?

Połączenia z serwerem są tworzone w wątkach demonów. Krótko mówiąc, nie będziesz w stanie sprawdzić błędów związanych z połączeniem podczas tworzenia klienta Mongo.

Będziesz musiał opóźnić sprawdzanie połączenia, kiedy tworzysz pierwszą prawdziwą bazę danych, która wymaga odczytu lub zapisu.

Tylko w celach demonstracyjnych, aby uzyskać pomysł.

MongoClient mongoClient = new MongoClient("127.0.34.1", 89);
DB db = mongoClient.getDB("test");
try {
   db.addUser("user", new char[] {'p', 'a', 's', 's'});
} catch(Exception e) { MongoTimeoutException exception}

MongoSocketOpenException z wątku Demona

INFO: Exception in monitor thread while connecting to server 127.0.34.1:89
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.connection.SocketStream.open(SocketStream.java:63)
at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:115)
at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:116)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused: connect

MongoTimeoutException z głównego wątku

Exception in thread "main" com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=127.0.34.1:89, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, 
caused by {java.net.ConnectException: Connection refused: connect}}]
at com.mongodb.connection.BaseCluster.createTimeoutException(BaseCluster.java:375)

Więc zawiń kod w try catch blok z MongoTimeoutException i będzie działać dobrze w przypadku sprawdzania błędów związanych z połączeniem.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Uzyskaj całkowitą liczbę dokumentów w MongoDB podczas korzystania z limitu

  2. MongoDB $setEquals

  3. Przegląd raportowania operacyjnego bazy danych w ClusterControl

  4. Jak wstawić dokument z datą w mongo?

  5. Jak projektować wysoce dostępne środowiska baz danych typu open source