MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB+Azure+Android :Erreur :com.mongodb.MongoException :ne parle pas au maître et les tentatives sont épuisées

La raison des erreurs intermittentes est due aux préférences de lecture par défaut du pilote, principalement en ce qui concerne les jeux de répliques. La préférence de lecture par défaut est primaire. Pour chacun des modes mentionnés ci-dessous, PRIMAIRE fait référence à la base de données maître (toujours la plus à jour) et SECONDAIRE fait référence aux esclaves, qui sont essentiellement les copies du maître et ne sont pas toujours à jour.

PRIMARY: The default read mode. Read from primary only. Throw an error if
         primary is unavailable. Cannot be combined with tags.

La solution pour changer la préférence de lecture en l'une des suivantes :

PRIMARY PREFERRED: Read from primary if available, otherwise a secondary.
SECONDARY PREFERRED: Read from a secondary if available, otherwise read from the primary.
NEAREST: Read from any member node from the set of nodes which respond the fastest.

Exemple de code :

// Use this when doing a read if you don't care if the data is always consistent.
// Change the following with secondaryPreferred() if you have high writes, so
// that you don't interfere with them.
ReadPreference preference = ReadPreference.primaryPreferred();
DBCursor cur = new DBCursor(collection, query, null, preference);

Pour plus d'informations, consultez la source .