सर्वर कनेक्शन डेमॉन थ्रेड्स पर बनाए जाते हैं। इतनी लंबी कहानी छोटी है कि आप मोंगो क्लाइंट बनाते समय कनेक्शन संबंधी त्रुटियों की जांच नहीं कर पाएंगे।
जब आप अपना पहला वास्तविक डेटाबेस बनाते हैं जिसमें पढ़ना या लिखना शामिल होता है, तो आपको अपने कनेक्शन की जांच में देरी करनी होगी।
केवल प्रदर्शन के उद्देश्य से आपको एक विचार प्राप्त करना है।
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}
Deamon थ्रेड से MongoSocketOpenException
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
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)
तो MongoTimeoutException
के साथ ट्राई कैच ब्लॉक में कोड रैप करें और यह कनेक्शन संबंधी त्रुटियों की जाँच के लिए ठीक काम करेगा।