ERR DISCARD without MULTI: DISCARD without MULTI
RedisWas bedeutet das?
DISCARD wurde gesendet, ohne dass ein MULTI-Block offen war. DISCARD dient nur zum Abbrechen einer laufenden Transaktion; gibt es nichts abzubrechen, liefert es diesen Fehler.
Ursache
Aufruf von DISCARD ohne MULTI oder erneut, nachdem die Transaktion bereits mit EXEC/DISCARD abgeschlossen wurde; ein bedingungsloser DISCARD-Aufruf im Fehlerbehandlungscode; oder der Verbindungszustand weicht vom erwarteten ab (auf der aus dem Pool entnommenen Verbindung ist kein MULTI offen).
Lösung
Rufe DISCARD nur auf, wenn tatsächlich ein MULTI offen ist; verfolge den Transaktionszustand im Code. Prüfe in Fehlerbehandlern, ob eine Transaktion offen ist, bevor du DISCARD aufrufst. Nutze den Transaktions-Wrapper deiner Bibliothek, damit er den Zustand automatisch verwaltet. Garantiere einen sauberen Zustand im Connection Pool.
Weitere Einträge zu dieser Datenbank
- ERR Lua script attempted to access nonexistent global variableLua script attempted to access a nonexistent global variable
- ERR unknown commandUnknown command
- TRYAGAIN Multiple keys request during rehashing of slotMultiple keys request during rehashing of slot (cluster)
- 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