Reintentos y errores transitorios

Cuáles de los errores de una transacción se reintentan y de qué forma lo hacen.

Reintenta una transacción cuando falla con un error transitorio. Los drivers lo hacen por ti con withTransaction.

Requisitos

Las etiquetas

EtiquetaQué hacer
TransientTransactionErrorReintenta la transacción entera desde el principio.
UnknownTransactionCommitResultReintenta solo commitTransaction; no sabes si se confirmó.

Con withTransaction

withTransaction reintenta lo que debe según esas etiquetas. Si escribes el bucle a mano, mira la etiqueta del error y no el código.

Comprobar

Con dos clientes escribiendo el mismo documento a la vez, los dos acaban confirmando gracias a los reintentos.

Problemas frecuentes

  • Una sentencia que encuentra una versión dentro de su ventana de incertidumbre falla con WriteConflict; se resuelve igual, reintentando.

Ver también