ERR DISCARD without MULTI: DISCARD without MULTI
RedisNe demek?
Açık bir MULTI bloğu yokken DISCARD komutu gönderildi. DISCARD yalnızca devam eden bir transaction'ı iptal etmek için kullanılır; ortada iptal edilecek bir transaction olmadığında bu hatayı verir.
Neden olur?
MULTI çağrılmadan ya da transaction zaten EXEC/DISCARD ile kapatıldıktan sonra tekrar DISCARD çağırmak; hata işleme (error handling) kodunda koşulsuz DISCARD çağrısı; ya da bağlantı durumunun beklenenden farklı olması (havuzdan gelen bağlantıda MULTI açık değil).
Nasıl çözülür?
DISCARD'ı yalnızca gerçekten açık bir MULTI varken çağırın; transaction durumunu koddan takip edin. Hata işleyicilerinde DISCARD çağırmadan önce bir transaction açık mı diye kontrol edin. Kütüphanenizin transaction sarmalayıcısını kullanarak durumu otomatik yönetmesini sağlayın. Bağlantı havuzunda temiz durum garantisi verin.
Aynı motorda diğer kayıtlar
- 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