Details
-
Bug
-
Resolution: Duplicate
-
Major - P3
-
None
-
3.0.3
-
None
-
Ubuntu 14.04, Java 8, Vertx
Description
When i use the async driver and connect to a replica set (3 nodes), i get most of the time (66%+) and error:
com.mongodb.MongoNotPrimaryException: The server is not the primary and did not execute the operation
final MongoClientSettings clientSettings = MongoClientSettings.builder()
|
.codecRegistry(CodecRegistries.fromRegistries(
|
CodecRegistries.fromProviders(asList(new ValueCodecProvider(), new DocumentCodecProvider(), new BsonValueCodecProvider())),
|
new VertxCodecRegistry()
|
))
|
.clusterSettings(ClusterSettings.builder()
|
.hosts(Lists.newArrayList(new ServerAddress(host, port)))
|
.build())
|
.readPreference(ReadPreference.nearest())
|
.build();
|
|
|
mongoClient = MongoClients.create(clientSettings);
|
|
|
FindIterable<JsonObject> find = mongoDatabase.getCollection(collectionName)
|
.find(BsonDocument.parse(matcher.encode()), JsonObject.class);
|
|
|
if (projection != null && !projection.isEmpty()) {
|
find = find.projection(BsonDocument.parse(projection.encode()));
|
}
|
|
|
if (page != null && !page.isEmpty()) {
|
find.limit(page.getInteger("limit", 10));
|
find.skip(page.getInteger("offset", 0));
|
}
|
|
|
find.into(new ArrayList<>(), (List<JsonObject> elements, Throwable error) -> {
|
if (error != null) {
|
LOG.warning("Could not execute query: " + matcher);
|
message.fail(500, error.getMessage());
|
} else {
|
message.reply(new JsonArray(elements));
|
}
|
});
|
If i use the sync driver or change the read preferences to primary everthing works fine. I suppose it is a bug?
Attachments
Issue Links
- duplicates
-
JAVA-1954 count/find query gives: MongoNotPrimaryException: The server is not the primary and did not execute the operation
-
- Closed
-