You are not logged in.
Pages: 1
Does anybody implement correct works with mongoDB replicaset?
The problem is that all insert/update TMongoCollection operations calls Database.Client.Connections[0] where index "0" is a primary server. When the primary server is down/reboots the primary server in replicaset will be changed. After that all insert/update operations will fail with the error:
..."connectionId":6,"err":"Not primary while writing to database.ServerStat","code":189,"codeName":"PrimarySteppedDown"...
As a solution, maybe we should run the command "ismaster" to resort Database.Client.Connections periodically or when error occurred?
{
"hosts" : [
"devdb1:27017",
"devdb2:27017",
"devdb3:27017"
],
"setName" : "devgapps",
"setVersion" : 3,
"ismaster" : false,
"secondary" : true,
"primary" : "devdb1:27017",
"me" : "devdb3:27017",
"lastWrite" : {
"opTime" : {
"ts" : Timestamp(1547122432, 1),
"t" : NumberLong(1)
},
"lastWriteDate" : ISODate("2019-01-10T12:13:52.000Z"),
"majorityOpTime" : {
"ts" : Timestamp(1547122432, 1),
"t" : NumberLong(1)
},
"majorityWriteDate" : ISODate("2019-01-10T12:13:52.000Z")
},
"maxBsonObjectSize" : 16777216,
"maxMessageSizeBytes" : 48000000,
"maxWriteBatchSize" : 100000,
"localTime" : ISODate("2019-01-10T12:13:54.403Z"),
"logicalSessionTimeoutMinutes" : 30,
"minWireVersion" : 0,
"maxWireVersion" : 6,
"readOnly" : false,
"ok" : 1.0,
"operationTime" : Timestamp(1547122432, 1)
}
One of the problems is internal host names
"devdb1:27017",
"devdb2:27017",
"devdb3:27017"
but this may be resolved by adding aliases to TMongoClient.Create('devdb1@192.168.0.1',...'
Offline
Pages: 1