Valgmulighed #1
Fejlen blev løst af forbindelsesformatet (ved hjælp af parametrene maxIdleTimeMS
, ssl
og authSource
):
MongoClient mongoClient =MongoClients.create("mongodb://user:example @sqldat.com
; =5000");
Eller du kan konfigurere legitimationsoplysningerne programmatisk (ved hjælp af java-driver 3.6+
versioner):
admin
- er databasen, hvor brugerne er defineret i Atlas;
bruger
- er brugernavnet;
mypassword
- er adgangskoden;
MongoCredential credential =MongoCredential.createCredential("bruger", "admin", "mypassword".toCharArray()); MongoClientSettings-indstillinger =MongoClientSettings.builder() .credential(credential) .retryWrites(true) .applyToConnectionPoolSettings(builder -> builder.maxConnectionIdleTime(5000, TimeUnit.MILLISECONDS)) -Selderapply(builder)Settingly(builder) (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(indstillinger);
Mulighed #2
Desuden kan fejlen løses ved at ringe til mongodb.MongoClient.connect
én gang, ikke hver anmodning. Prøv at omstrukturere din kode til opkaldsforbindelse én gang i stedet for hver gang under indsættelse af specifikt dokument. I dette tilfælde kan du undgå yderligere parametre fra mulighed #1.
Lige nok:
MongoDB+SRV:// Admin: mongodb+srv:// a> /test?retryWrites=true&w=majoritySærlig tak for hjælpen mongoDB-understøttelse .