ERR DISCARD without MULTI: DISCARD without MULTI
RedisQue 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.
Autres entrées pour ce moteur
- ERR Lua script attempted to access nonexistent global variableLua script attempted to access a nonexistent global variable (le script Lua a tenté d'accéder à une variable globale inexistante)
- ERR unknown commandUnknown command
- TRYAGAIN Multiple keys request during rehashing of slotMultiple keys request during rehashing of slot (cluster) (requête multi-clés pendant la migration d'un 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