Archives par mot-clé : – 901

CODE RETOUR -901

UNSUCCESSFUL EXECUTION CAUSED BY A SYSTEM ERROR THAT DOES NOT PRECLUDE THE SUCCESSFUL EXECUTION OF SUBSEQUENT SQL STATEMENTS

Explication :
Une erreur système s’est produite et a empêché l’exécution réussie de l’instruction SQL en cours.

accelerator-info
Message d’erreur renvoyé par le serveur accélérateur.
Si l’instruction SQL n’est pas une requête envoyée à un serveur accélérateur, les causes possibles de cette erreur incluent :

  • Longueur de l’instruction : la longueur de l’instruction SQL est inférieure à 0 ou supérieure à la longueur maximale autorisée pour une instruction.
  • Traitement de validation distribué : le traitement de validation distribué a rencontré une erreur. Tous les serveurs de l’unité d’oeuvre prenant en charge la validation en deux phases distribuée renvoient l’unité d’oeuvre. Si un serveur qui ne prend pas en charge la validation en deux phases distribuée a des mises à jour dans l’unité d’oeuvre, ce serveur doit être interrogé pour déterminer si ses mises à jour ont été validées ou annulées.
  • Travail de post-traitement incomplet : la transaction est abandonnée et la validation a échoué. Les causes typiques d’un post-traitement incomplet incluent :
    • Une mise à jour qui modifie la partition d’une ligne
    • La disponibilité des ressources
    • L’existence de curseurs maintenus
    • Violations des contraintes d’unicité

Si l’instruction SQL est une requête qui a été envoyée à un serveur accélérateur, l’erreur est renvoyée car le serveur accélérateur n’a pas pu exécuter la requête.

Action du système :
La déclaration ne peut pas être traitée. Une fin anormale X’04E’ peut être demandée pour l’application. Le programme d’application peut avoir une routine de récupération pour récupérer d’une telle fin anormale et peut réessayer des instructions SQL.

L’erreur n’empêche pas l’exécution réussie d’autres instructions SQL.

Réponse du programmeur :
Si une fin anormale s’est produite, informez le programmeur système pour qu’il analyse la fin anormale qui a provoqué ce code retour. Même si une fin anormale s’est produite, un programme d’application recevant ce code retour peut réessayer et il n’est pas interdit d’exécuter d’autres instructions SQL.

Si l’erreur s’est produite lors d’une validation, examinez toutes les informations détaillées sur l’indisponibilité des ressources publiées sur la console de l’opérateur système ou dans le journal des travaux de l’espace d’adressage des services système (ssnmMSTR) pour déterminer si un problème d’indisponibilité des ressources a empêché la fin du post-traitement de la validation.

Si l’erreur s’est produite pour une requête envoyée à un serveur accélérateur, vérifiez si l’instruction SQL contient une erreur logique. Un exemple d’erreur logique dans une instruction SQL est une opération de division qui se traduit par une division par 0. Si vous déterminez que votre application n’est pas la source de l’erreur, contactez le support IBM® et indiquez la valeur accelerator-info dans le jeton.

SQLSTATE :
58004

CODE RETOUR -507

THE CURSOR IDENTIFIED IN THE UPDATE OR DELETE STATEMENT IS NOT OPEN

Explication :

Le programme tente d’exécuter un ordre UPDATE ou DELETE WHERE CURRENT OF sur un curseur non ouvert.

Action système :

L’ordre ne peut être exécuté. Aucune mise à jour ou suppression n’est effectuée.

Réponse programmeur :

Rechercher un code retour SQL précédent qui a pu fermer le curseur. Les codes retour 404, -652, -679, -901, -904, -909. -910, -911 et -913 forcent la fermeture des curseurs. Après fermeture du curseur, tout ordre FETCH ou CLOSE reçoit le code -501, tout ordre UPDATE ou DELETE reçoit le code -507. Corriger la logique du programme en s’assurant que te curseur est bien ouvert lors de l’exécution d’un ordre UPDATE ou DELETE.

CODE RETOUR -501

THE CURSOR IDENTIFIED IN A FETCH OR CLOSE STATEMENT IS NOT OPEN

Explication :

Le programme d’application tente d’exécuter un ordre FETCH ou CLOSE sur un curseur. alors que celui-ci n’est pas ouvert.

Action système :

L’ordre ne peut être exécuté.

Réponse programmeur :

Rechercher un code retour SQL précédent qui a pu fermer le curseur. Les opérations de COMMIT et ROLLBACK ferment tous tes curseurs actifs. Les codes retour -404, -652, -679, – 901, -904, -909, -910, -911 et -913 forcent la fermeture des curseurs. Si aucun code retour précédent n’a été émis, corriger la logique du programme en s’assurant que le curseur est ouvert lors de l’exécution de l’ordre FETCH ou CLOSE.