DBAtlas · Atlas für Datenbankbetrieb

ERR DISCARD without MULTI: DISCARD without MULTI

Redis

Was 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.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank