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

43: CursorNotFound (code d'erreur 43)

MongoDB

Que signifie cette erreur ?

Le curseur côté serveur n'existe plus. Lorsque le client demande le lot suivant (getMore), l'erreur est renvoyée, car le curseur est introuvable.

Cause

Le curseur a expiré (10 minutes d'inactivité par défaut), attente trop longue entre les lots, redémarrage du serveur, ou curseur fermé explicitement.

Comment la corriger

Traitez les résultats du curseur plus rapidement ; n'attendez pas longtemps entre les lots. Pour les opérations de longue durée, utilisez l'option noCursorTimeout avec prudence (mongosh : cursor.noCursorTimeout() ; PyMongo : no_cursor_timeout=True) et fermez toujours le curseur ; un curseur à l'intérieur d'une session est fermé à l'expiration de la session (localLogicalSessionTimeoutMinutes, 30 min par défaut) même avec cette option. Pour les grands jeux de résultats, itérez avec un batchSize plus petit ou utilisez une pagination par plage. Relancez l'opération et interrogez à nouveau.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur