sql >> Database >  >> NoSQL >> MongoDB

MongoDB+Azure+Android:com.mongodb.WriteConcernException err:geen hoofdcode:10058

Als de instanties allemaal achter een enkele load-balanced Input zitten eindpunt (bijv. 27017), dan wordt elke keer dat uw clientcomputer verbinding maakt met het eindpunt, deze verbonden met mogelijk verschillende knooppunten in het replicasetcluster (en heeft u geen controle over naar welke instantie u bent gegaan). Dit zou kunnen verklaren waarom u soms probeert te schrijven naar de niet-master en een foutmelding krijgt, maar al uw leesbewerkingen werken (aangezien u waarschijnlijk het MongoDB-cluster hebt ingesteld om leesbewerkingen op secundaire knooppunten toe te staan).

Werkrollen ondersteunen ook InstanceInput endpoints, waarmee u een extern gericht poortbereik kunt instellen (bijvoorbeeld 27017-27019), waarbij u naar een enkele poort op de worker-instanties zelf wijst (bijv. 27017). Als u dit doet, kan uw client-app nu rechtstreeks verbinding maken met alle drie de instanties (27017, 27018, 27019). Veel stuurprogramma's ondersteunen replicaset-verbindingen, zodat het in staat zou zijn om erachter te komen welk knooppunt de master is en alle schrijfbewerkingen ernaar toe te leiden. Ik weet niet of het stuurprogramma dat u op Android gebruikt replicasets ondersteunt. Als het stuurprogramma geen replicasets ondersteunt, wilt u waarschijnlijk overwegen een API-laag op te zetten die vervolgens alle communicatie met de database doet (in ieder geval een goede gewoonte om in het algemeen te volgen, en u kunt kijken naar Azure's Mobile Services voor een snelle manier om dit te implementeren).

Dus... als het eindpunt van uw replicasetcluster is geconfigureerd als Input , verklaart dit waarschijnlijk het probleem dat u ziet, dat moet worden opgelost door het eindpunttype over te schakelen naar InstanceInput .




  1. Hoe configureer ik mijn MongoDB om rekening te houden met UTF-8?

  2. Mongoose die lege arrays maakt?

  3. Hoe het aantal keren dat een trefwoord in een string voorkomt te krijgen met behulp van mongoDb

  4. Hoe om te gaan met een datum lager dan 1970 in MongoDB