DBAtlas · Atlas d'exploitation des bases de données

ERR DISCARD without MULTI: DISCARD without MULTI

Redis

Que signifie cette erreur ?

DISCARD a été envoyé alors qu'aucun bloc MULTI n'était ouvert. DISCARD sert uniquement à annuler une transaction en cours ; il renvoie cette erreur lorsqu'il n'y a rien à annuler.

Cause

Appel de DISCARD sans MULTI, ou de nouveau après que la transaction a déjà été fermée par EXEC/DISCARD ; appel inconditionnel de DISCARD dans le code de gestion d'erreurs ; ou état de connexion différent de celui attendu (aucun MULTI ouvert sur la connexion prise dans le pool).

Comment la corriger

N'appelez DISCARD que lorsqu'un MULTI est réellement ouvert ; suivez l'état de la transaction dans le code. Dans les gestionnaires d'erreurs, vérifiez si une transaction est ouverte avant d'appeler DISCARD. Utilisez le wrapper de transaction de votre bibliothèque pour qu'il gère l'état automatiquement. Garantissez un état propre dans le pool de connexions.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur