MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

जावा 3.0 ड्राइवर के साथ MongoDB प्रमाणीकरण की जाँच करें

MongoClient कंस्ट्रक्टर कोई कनेक्टिविटी-संबंधी अपवाद नहीं फेंकते हैं। इसके बजाय, वे एक या एक से अधिक पृष्ठभूमि थ्रेड शुरू करने के तुरंत बाद वापस लौटते हैं जो एक कनेक्शन स्थापित करने का प्रयास करते हैं और प्रदान किए गए प्रमाण-पत्रों के आधार पर प्रमाणित करते हैं।

यह केवल तभी होता है जब कोई एप्लिकेशन मोंगो क्लाइंट का उपयोग मोंगोडीबी सर्वर पर कुछ ऑपरेशन करने के लिए करता है कि एक अपवाद फेंक दिया जाएगा। हालांकि, वह अपवाद एक सामान्य टाइमआउट अपवाद है जो दर्शाता है कि सर्वर चयन टाइमआउट समाप्त होने से पहले ड्राइवर ऑपरेशन के लिए उपयुक्त सर्वर खोजने में विफल रहा। उदाहरण के लिए:

    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
    }

1 सेकंड के बाद MongoTimeoutException फेंक देगा। जबकि कोई MongoSecurityException नहीं फेंका गया है, MongoTimeoutException के संदेश में प्रासंगिक विवरण होंगे। उदाहरण के लिए, जब एक सर्वर डाउन होने पर तीन सदस्य प्रतिकृति सेट से कनेक्ट होता है, और शेष दो पर प्रमाणीकरण विफल हो जाता है, तो MongoTimeoutException का संदेश फ़ील्ड कुछ ऐसा होगा:

<ब्लॉकक्वॉट>

एक सर्वर की प्रतीक्षा करते समय 1000 एमएस के बाद समय समाप्त हो गया जो रीडप्रेफरेंस सर्वर चयनकर्ता {readPreference =प्राथमिक} से मेल खाता है। क्लस्टर स्थिति का क्लाइंट दृश्य {प्रकार =अज्ञात, सर्वर =[{पता =लोकलहोस्ट:27017, प्रकार =अज्ञात, राज्य =कनेक्टिंग, अपवाद ={com.mongodb.MongoSocketOpenException:अपवाद ओपनिंग सॉकेट} है, जो {java.net.ConnectException के कारण होता है:कनेक्शन अस्वीकृत}}, {पता =लोकलहोस्ट:27018, प्रकार =अज्ञात, राज्य =कनेक्टिंग, अपवाद ={com.mongodb.MongoSecurityException:अपवाद प्रमाणीकरण MongoCredential {तंत्र =शून्य, उपयोगकर्ता नाम ='उपयोगकर्ता नाम', स्रोत ='व्यवस्थापक', पासवर्ड =, मैकेनिज्मप्रॉपर्टीज ={}}}, जिसके कारण {com.mongodb.MongoCommandException:कमांड 18 त्रुटि के साथ विफल हुआ:'प्रमाणीकरण विफल रहा।' सर्वर लोकलहोस्ट पर:27018। पूर्ण प्रतिक्रिया {"ठीक है":0.0, "कोड":18, "त्रुटि":"प्रमाणीकरण विफल।" }}}]




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongoDB में आईपी एड्रेस सेव करें

  2. NoSQL डेटाबेस की लड़ाई - MongoDB और Cassandra की तुलना करना

  3. हमें क्यों चाहिए, नेवले का उपयोग करने के क्या फायदे हैं

  4. स्प्रिंग डेटा मोंगोडब आईडी फील्ड मैपिंग

  5. MongoDB में संग्रह के आकार की जांच करने के 5 तरीके