Límites y transacciones largas
Cuánto puede durar y cuánto puede ocupar una transacción.
Ajusta tus transacciones a sus límites de duración y de memoria, o sube el límite de duración si tu caso lo pide.
Requisitos
- Un usuario con permiso para
setParametersi vas a cambiar el límite.
Duración
Una transacción se anula al pasar de transactionLifetimeLimitSeconds, 60 segundos por defecto. Para cambiarlo:
JavaScript
db.adminCommand({ setParameter: 1, transactionLifetimeLimitSeconds: 120 });Tamaño
El estado de la transacción tiene que caber en la memoria de su coordinador. Una transacción que escribe demasiados
documentos falla con TransactionTooLarge (257).
Comprobar
JavaScript
db.adminCommand({ getParameter: 1, transactionLifetimeLimitSeconds: 1 });getParameter responde con el valor de transactionLifetimeLimitSeconds que está en vigor en el nodo que usa tu sesión,
así que ves el límite de vida con el que va a chocar una transacción abierta desde esa sesión.
Problemas frecuentes
- Una carga masiva dentro de una transacción choca con los dos límites. Haz la carga en lotes fuera de transacción.