विकल्प #1
त्रुटि को कनेक्शन के प्रारूप द्वारा हल किया गया था (पैरामीटर maxIdleTimeMS . का उपयोग करके) , ssl और authSource ):
MongoClient mongoClient = MongoClients.create("mongodb://user:example@sqldat.com:27017,cluster0-shard-00-01-ox90k.mongodb.net:27017,cluster0-shard-00-02-ox90k.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true&maxIdleTimeMS=5000");
या आप क्रेडेंशियल को प्रोग्रामेटिक रूप से कॉन्फ़िगर कर सकते हैं (जावा ड्राइवर 3.6+ . का उपयोग करके) संस्करण):
admin - वह डेटाबेस है जहां उपयोगकर्ता एटलस में परिभाषित होते हैं;
user - उपयोगकर्ता नाम है;
mypassword - पासवर्ड है;
MongoCredential credential = MongoCredential.createCredential("user", "admin", "mypassword".toCharArray());
MongoClientSettings settings = MongoClientSettings.builder()
.credential(credential)
.retryWrites(true)
.applyToConnectionPoolSettings(builder ->
builder.maxConnectionIdleTime(5000, TimeUnit.MILLISECONDS))
.applyToSslSettings(builder -> builder.enabled(true))
.applyToClusterSettings(builder -> {
builder.hosts(Arrays.asList(
new ServerAddress("cluster0-shard-00-00-ox90k.mongodb.net", 27017),
new ServerAddress("cluster0-shard-00-01-ox90k.mongodb.net", 27017),
new ServerAddress("cluster0-shard-00-02-ox90k.mongodb.net", 27017)
));
builder.requiredReplicaSetName("Cluster0-shard-0");
})
.build();
MongoClient mongoClient = MongoClients.create(settings);
विकल्प #2
इसके अलावा, mongodb.MongoClient.connect . पर कॉल करके त्रुटि को हल किया जा सकता है एक बार, प्रत्येक अनुरोध नहीं। विशिष्ट दस्तावेज़ डालने के दौरान प्रत्येक बार के बजाय एक बार कनेक्शन कॉल करने के लिए अपने कोड को पुन:व्यवस्थित करने का प्रयास करें। इस मामले में, आप विकल्प #1 से किसी भी अतिरिक्त पैरामीटर से बच सकते हैं।
बस काफी:
mongodb+srv://admin:example@sqldat.com/test?retryWrites=true&w=majority
मदद के लिए विशेष धन्यवाद mongoDB समर्थन ।