ERR DISCARD without MULTI: DISCARD without MULTI
Redis¿Qué significa?
Se envió DISCARD sin ningún bloque MULTI abierto. DISCARD solo se usa para cancelar una transacción en curso; devuelve este error cuando no hay nada que cancelar.
¿Por qué ocurre?
Llamar a DISCARD sin MULTI, o de nuevo después de que la transacción ya se cerrara con EXEC/DISCARD; una llamada incondicional a DISCARD en el código de manejo de errores; o un estado de la conexión distinto del esperado (no hay MULTI abierto en la conexión tomada del pool).
Cómo solucionarlo
Llame a DISCARD solo cuando haya realmente un MULTI abierto; lleve el control del estado de la transacción en el código. En los manejadores de errores, compruebe si hay una transacción abierta antes de llamar a DISCARD. Use el wrapper de transacciones de su biblioteca para que gestione el estado automáticamente. Garantice un estado limpio en el pool de conexiones.
Más entradas de este motor
- ERR Lua script attempted to access nonexistent global variableLua script attempted to access a nonexistent global variable (el script Lua intentó acceder a una variable global inexistente)
- ERR unknown commandUnknown command
- TRYAGAIN Multiple keys request during rehashing of slotMultiple keys request during rehashing of slot (cluster) (solicitud de varias claves durante el rehashing del slot)
- BUSYGROUP Consumer Group name already existsConsumer group already exists
- NOGROUP No such key or consumer groupNo such key or consumer group in stream
- NOTBUSY No scripts in execution right nowNo scripts in execution right now
- DENIED Redis is running in protected modeRedis is running in protected mode