Las lecturas reintentables permiten a los controladores de MongoDB volver a intentar automáticamente ciertas operaciones de lectura una sola vez si encuentran ciertos errores de red o del servidor.
Requisitos previos
- Versión mínima del controlador
Los controladores oficiales de MongoDB compatibles con MongoDB Server 6.0 y versiones posteriores admiten lecturas reintentables.
Para obtener más información acerca de los drivers oficiales de MongoDB, consulte Controladores MongoDB.
- Versión mínima del servidor
- Los controladores solo pueden reintentar operaciones de lectura si están conectados al servidor MongoDB 6.0 o posterior.
Habilitación de lecturas reintentables
Los drivers oficiales de MongoDB compatibles con MongoDB Server 6.0 y versiones posteriores habilitan las lecturas con reintentos por defecto. Para desactivar explícitamente las lecturas que pueden volver a intentarse, especifique retryReads=false en la cadena de conexión para la implementación.
mongosh no admite lecturas reintentables.
Operaciones de lectura reintentables
Los controladores de MongoDB permiten reintentar las siguientes operaciones de lectura. La lista incluye una descripción general de cada método. Para conocer la sintaxis y el uso específicos, consulte la documentación del controlador correspondiente.
Métodos | Descripciones |
|---|---|
Collection.aggregateCollection.countCollection.countDocumentsCollection.distinctCollection.estimatedDocumentCountCollection.findDatabase.aggregatePara | Operaciones de lectura de la API CRUD |
Collection.watchDatabase.watchMongoClient.watch | Operaciones de flujo de cambios |
MongoClient.listDatabasesDatabase.listCollectionsCollection.listIndexes | Operaciones de enumeración |
Operaciones GridFS respaldadas por | Operaciones de descarga de archivos GridFS |
Los drivers de MongoDB pueden incluir soporte para otros tipos de operaciones, como los métodos asistentes o los métodos que envuelvan una operación de lectura reintentable. Consulta la documentación del controlador para determinar si un método admite explícitamente lecturas reprocesables.
Tip
Especificación de lectura reintentable: Operaciones de lectura soportadas
Operaciones de lectura no admitidas
Las siguientes operaciones no admiten lecturas reintentables:
Cualquier comando de lectura pasado a un asistente genérico de
Database.runCommand, el cual es indiferente a los comandos de lectura o escritura.
Comportamiento
Errores persistentes de red
Las lecturas reintentables de MongoDB solo hacen un intento de reintento. Esto ayuda a abordar los errores de red transitorios o elecciones de sets de réplicas, pero no los errores de red persistentes.
Período de conmutación por error
El controlador realiza la selección del servidor utilizando la preferencia de lectura original del comando de lectura antes de volver a intentar la operación de lectura. Si el driver no puede seleccionar un servidor para el intento de reintento usando la preferencia de lectura original, el driver devuelve el error original.
Los controladores esperan serverSelectionTimeoutMS milisegundos antes de seleccionar el servidor. Las lecturas reintentables no abordan instancias donde no existen servidores elegibles después de serverSelectionTimeoutMS esperar.