Aller au contenu

Message d'erreur IBM i (AS/400)

CPF3E89

Curseur SQL non ouvert pour une opération éloignée.

Gravité 40 · Fin anormale du programme ou de la fonction

Cause

Vous avez tenté d'extraire une ligne de données d'un serveur éloigné avec un curseur SQL qui n'est pas ouvert.

Que faire

Signalez l'incident à l'aide de la commande ANZPRB (Analyser les incidents).

Description technique

Ce message apparaît lorsqu'une commande DDM Continue query (CNTQRY) ou Close Query (CLSQRY) est émise pour un curseur de requête qui n'est pas ouvert. Le curseur a peut-être été fermé par un message de réponse DDM End Query (ENDQRYRM) ou End Unit of Work (ENDUOWRM) précédent. Si l'erreur s'est produite sur un IBM i, il est possible que le curseur ait été fermé par une commande Récupération de ressources (RCLRSC). Dans ce cas, le SQLCODE et le SQLSTATE obtenus sur le demandeur d'application sont respectivement -501 et 24501. Dans les autres cas, cette erreur ne devrait pas se produire. Si elle se produit, il en résulte le SQLCODE -30000 et le SQLSTATE 58008.

This message occurs if a DDM Continue query (CNTQRY) or Close Query (CLSQRY) command is issued for a query cursor that is not open. The cursor may have been closed by a previous DDM End Query (ENDQRYRM) reply message or End Unit of Work (ENDUOWRM) reply message. If the error occurred on an IBM i, it is possible that the cursor was closed by a Reclaim Resources (RCLRSC) command. In this case the resulting SQLCODE and SQLSTATE seen at the Application Requester are -501 and 24501 respectively. In other cases this error should not occur. If it does it will result in an SQLCODE and SQLSTATE of -30000 and 58008.

Sur votre IBM i

Afficher la description complète du message :

DSPMSGD RANGE(CPF3E89) MSGF(QSYS/QCPFMSG)

L'intercepter dans un programme CL, quand il est envoyé comme message d'échappement :

MONMSG MSGID(CPF3E89) EXEC(DO)
  /* traitement de l'erreur */
ENDDO