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

ERR Can't execute '<cmd>': only (P|S)SUBSCRIBE / (P|S)UNSUBSCRIBE / PING / QUIT / RESET are allowed in this context: Command not allowed in subscribe context

Redis

Que signifie cette erreur ?

Après le passage de la connexion en mode subscribe Pub/Sub, vous avez tenté d'exécuter une commande ordinaire (par ex. GET/SET) non autorisée dans ce mode. Une connexion en mode subscribe n'accepte qu'un ensemble limité de commandes. Dans les anciennes versions, le message était "ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / PING / QUIT allowed in this context".

Cause

Envoi de commandes de données sur une connexion passée en mode subscribe avec SUBSCRIBE/PSUBSCRIBE/SSUBSCRIBE. Avec le protocole RESP2, une connexion abonnée n'autorise que (P|S)SUBSCRIBE, (P|S)UNSUBSCRIBE, PING, QUIT et RESET. Partager une seule connexion pour le pub/sub et le travail ordinaire est l'erreur typique.

Comment la corriger

Utilisez une connexion dédiée au Pub/Sub et ouvrez-en une autre pour les commandes ordinaires (la plupart des bibliothèques clientes le font automatiquement). Envoyez UNSUBSCRIBE/PUNSUBSCRIBE pour quitter le mode subscribe ; les commandes ordinaires fonctionnent alors. Avec le protocole RESP3 (HELLO 3), d'autres commandes sont aussi autorisées sur une connexion abonnée ; passez à RESP3 si votre driver le prend en charge.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur