Tous les articles par Mr COBOL

CODE RETOUR -951

OBJECT object-name OBJECT TYPE object-type IS IN USE AND CANNOT BE THE TARGET OF THE SPECIFIED ALTER STATEMENT

Explication :
Les options de la routine SQL ne peuvent pas être modifiées si la version de la routine est actuellement active sous le même thread qui a émis l’instruction ALTER et qu’une ou plusieurs des options en cours de modification entraînent la reliaison ou la régénération du package pour le Routine SQL.

object-name
Le nom de l’objet.

object-type
Le type d’objet.

Si l’instruction défaillante était ALTER PROCEDURE ACTIVATE VERSION ou ALTER FUNCTION ACTIVATE VERSION, la version active d’une routine SQL actuellement active sous l’appel de routine imbriquée par le même thread ne peut pas être modifiée.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Passez en revue les informations sur les options de modification et les modifications qui entraînent la reliaison ou la régénération des packages associés.

Vérifiez que la logique d’appel de routines imbriquées impliquant des routines SQL et les instructions ALTER fonctionnent comme prévu. Portez une attention particulière aux instructions CALL :HV avec le réglage du registre spécial CURRENT ROUTINE VERSION, car la combinaison de ces instructions peut produire des flux logiques indésirables. S’il est nécessaire d’utiliser plusieurs versions de la même routine SQL dans la chaîne récursive imbriquée, envisagez d’utiliser CALL :HV et le registre spécial CURRENT ROUTINE VERSION pour contrôler la version utilisée, au lieu de la clause ALTER ACTIVATE VERSION.

SQLSTATE :
55007

CODE RETOUR -950

THE LOCATION NAME SPECIFIED IN THE CONNECT STATEMENT IS INVALID OR NOT LISTED IN THE COMMUNICATIONS DATABASE

Explication :

L’une des conditions suivantes s’applique :

  • Le nom de l’emplacement est vide.
  • Le type de données de la variable hôte n’est pas une chaîne de caractères.
  • L’attribut de longueur de la variable hôte est supérieur à 16.
  • Le nom d’emplacement n’apparaît pas dans la colonne LOCATIONS de la table SYSIBM.LOCATIONS, ni le nom du sous-système Db2 local.

Action du système :
La déclaration ne peut pas être traitée. Le processus d’application est placé dans l’état non connecté.

Réponse du programmeur :
Si le nom d’emplacement est spécifié comme valeur d’une variable hôte, assurez-vous que le nom est justifié à gauche dans la variable hôte et, si nécessaire, complété à droite par des blancs. Si ce n’est pas le problème, soit SYSIBM.LOCATIONS doit être mis à jour pour inclure le nom spécifié, soit le nom spécifié doit être modifié pour correspondre à un nom dans SYSIBM.LOCATIONS.

SQLSTATE :
42705

CODE RETOUR -948

DISTRIBUTED OPERATION IS INVALID

Explication :
L’unité d’oeuvre a été lancée avant le démarrage de DDF et l’application a tenté d’effectuer une opération distribuée. L’unité d’oeuvre doit se terminer par une opération de restauration.

Action du système :
Dans les environnements IMS et CICS, toutes les instructions SQL sont rejetées jusqu’à ce qu’une annulation se produise. Dans les autres environnements, toutes les instructions SQL autres qu’un ROLLBACK statique sont rejetées jusqu’à ce qu’un ROLLBACK statique soit exécuté.

Réponse du programmeur :
Une application qui effectue des mises à jour de base de données locales avant le démarrage de DDF ne peut pas effectuer d’opérations distribuées au sein de la même unité de travail. L’unité de travail actuelle doit être terminée par une opération de restauration et une nouvelle unité de travail doit être initiée avant que toute opération SQL puisse être effectuée.

Redémarrez l’unité de travail en cours.

SQLSTATE :
56062

CODE RETOUR -947

THE SQL STATEMENT FAILED BECAUSE IT WILL CHANGE A TABLE DEFINED WITH DATA CAPTURE CHANGES, BUT THE DATA CANNOT BE PROPAGATED

Explication :
L’option DPROP SUPPORT du panneau d’installation est définie sur 2 (prise en charge de DPROP uniquement). L’instruction SQL aurait modifié une table définie avec DATA CAPTURE CHANGES. Cependant, les données ne peuvent pas être propagées car l’instruction SQL ne provient pas d’un sous-système IMS ou la classe de trace de moniteur 6 n’était pas active au début de l’unité de travail pour cette modification.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur système :
Effectuez l’une des actions suivantes :

  • Modifiez l’option d’installation sur 1 (pas de propagation) ou 3 (permet les modifications à partir de n’importe quel sous-système).
  • Modifiez le programme d’application qui reçoit ce SQLCODE afin qu’il puisse être exécuté dans un sous-système IMS et activez la classe de trace 6 du moniteur.

Si l’option d’installation est modifiée sur 3, les modifications SQL apportées aux tables définies avec DATA CAPTURE CHANGES sont autorisées à partir de n’importe quel sous-système, mais elles ne sont pas propagées à moins que l’environnement ne soit configuré pour la propagation.

SQLSTATE :
56038

CODE RETOUR -939

ROLLBACK REQUIRED DUE TO UNREQUESTED ROLLBACK OF A REMOTE SERVER

Explication :
Un commit dynamique a été exécuté avant l’exécution de cette requête. Le serveur distant auquel l’application a été CONNECTée lors du COMMIT dynamique validée avec succès. Cependant, au moins un autre serveur distant (qui était en lecture seule) a annulé sa partie de l’unité de travail distribuée lors de la validation dynamique.

Pour s’assurer qu’une application qui utilise des cursor-hold (curseurs de maintien) du curseur ne suppose pas à tort que la position du curseur est conservée sur un serveur distant qui a été annulé, l’application doit effectuer une opération d’annulation.

Les communications sont toujours établies avec tous les serveurs distants.

Action du système :
Dans les environnements IMS et CICS, toutes les instructions SQL sont rejetées jusqu’à ce que la restauration se produise. Dans les autres environnements, toutes les instructions SQL autres qu’un ROLLBACK statique sont rejetées jusqu’à ce qu’un ROLLBACK statique soit exécuté.

Réponse du programmeur :
Émettez la demande appropriée (en fonction de l’environnement) pour provoquer une restauration. Rétablissez le positionnement du curseur et poursuivez l’application avec la première requête ayant reçu le SQLCODE -939.

SQLERRP contient le nom du module qui a détecté l’échec précédent et placé l’application dans l’état must-abort.

SQLSTATE :
51021

CODE RETOUR -929

FAILURE IN A DATA CAPTURE EXIT: token

Explication :
token‘ est une chaîne d’informations fournie par la routine de sortie de DPROP qui capture les modifications de données dans les tables définies avec DATA CAPTURE CHANGES.

Action du système :
La chaîne d’informations est placée dans la zone SQLERRM de SQLCA.

Réponse du programmeur système :
Pour la documentation des actions associées à ce SQLCODE, reportez-vous aux publications Data Propagator (DPROP).

SQLSTATE :
58002

CODE RETOUR -919

A ROLLBACK OPERATION IS REQUIRED

Explication :

L’unité d’oeuvre a été placée dans un état où une opération de restauration est requise. Cela peut arriver pour les raisons suivantes :

  • Une instruction SQL a mis à jour un serveur de base de données distribué, mais le serveur de base de données ne peut être utilisé que pour des opérations en lecture seule. Soit les mises à jour sont actuellement limitées aux serveurs qui prennent en charge la validation en deux phases distribuée et ce serveur d’applications ne prend pas en charge la validation en deux phases distribuée, soit les mises à jour sont limitées à un seul serveur qui ne prend pas en charge la validation en deux phases distribuée et ce serveur d’applications n’est pas ce serveur.
    L’unité d’oeuvre doit se terminer par une opération de restauration car la mise à jour effectuée (mais non validée) sur le serveur d’applications ne peut pas être validée de manière cohérente avec les autres mises à jour actuelles ou futures apportées à cette unité d’oeuvre distribuée.
  • Une fin anormale s’est produite lors de l’exécution d’une procédure stockée ou une instruction SQL restreinte a été émise à partir d’une procédure stockée.
  • Une fin anormale s’est produite lors de l’exécution d’une fonction ou une instruction SQL restreinte a été émise à partir d’une fonction.
  • L’unité de travail fait partie d’une transaction globale et une autre unité de travail dans la transaction globale a initié un ROLLBACK. Toutes les unités de travail dans la transaction globale doivent maintenant ROLLBACK.

Action du système :
Dans les environnements IMS et CICS, toutes les instructions SQL sont rejetées jusqu’à ce que la restauration se produise. Dans les autres environnements, toutes les instructions SQL autres qu’un ROLLBACK statique sont rejetées jusqu’à ce qu’un ROLLBACK statique soit exécuté.

Réponse du programmeur :
Corrigez l’application, la fonction ou la procédure stockée, reliez-la et soumettez à nouveau le travail.

SQLERRP contient le nom du module qui a détecté l’échec précédent et placé l’application dans l’état must-abort.

SQLSTATE :
56045

CODE RETOUR -918

THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE A CONNECTION HAS BEEN LOST

Explication :
L’exécution de l’instruction SQL a échoué car un lien de communication entre le Db2 local et au moins un serveur distant n’existe plus. Une panne précédente a causé cette condition.

Action du système :
Dans les environnements IMS et CICS, toutes les instructions SQL sont rejetées jusqu’à ce que la restauration se produise. Dans les autres environnements, toutes les instructions SQL autres qu’un ROLLBACK statique sont rejetées jusqu’à ce qu’un ROLLBACK statique soit exécuté.

Réponse du programmeur :
En général, un programme d’application doit émettre un ROLLBACK statique. Les tentatives de l’application d’émettre des instructions SQL autres que ROLLBACK statique peuvent échouer. Une fois le ROLLBACK statique émis, l’application peut reprendre son exécution.

SQLERRP contient le nom du module qui a détecté l’échec précédent et placé l’application dans l’état must-abort.

SQLSTATE :
51021

CODE RETOUR -917

BIND PACKAGE FAILED

Explication :
Une erreur s’est produite qui empêche la création du package. Ce SQLCODE peut être émis pendant le traitement de la liaison ou de la validation.

Action du système :
La liaison échoue et le package n’est pas créé. S’il est émis pendant le traitement de la validation, toutes les modifications apportées à la base de données sont annulées. S’il est émis pendant le traitement de la liaison, seule la création du package échoue. D’autres modifications au sein de l’unité logique de travail peuvent être validées.

Réponse du programmeur :
Corrigez la cause du problème et réessayez.

Détermination du problème :
Inspectez les SQLCODES émis pour les instructions SQL du package.

SQLSTATE :
42969

CODE RETOUR -804

AN ERROR WAS FOUND IN THE APPLICATION PROGRAM INPUT PARAMETERS FOR THE SQL STATEMENT, REASON reason

Explication :

La liste des paramètres d’appel ou la SQLDA est invalide :

  • La liste des paramètres d’appel, qui est créée par le précompilateur, peut être invalide si le programmeur de l’application a modifié la sortie du précompilateur, utilisé un nom de variable commençant par ‘SQL’ dans le programme d’application ou écrasé la liste des paramètres d’appel dans un autre chemin.
  • Le SQLDA, qui est créé par le programme d’application, a un type de données ou une longueur de données non valides.
  • La valeur de SQLDABC n’est pas cohérente avec la valeur de SQLD.

Voici la liste des codes de raison :

01Ouvert émis pour non-curseur
02Fermer émis pour non-curseur
03Préparez-vous à EXECUTE IMMEDIATE.
04La déclaration n’est pas reconnue.
05Aucune chaîne d’instruction n’est présente.
06Format SQLDA incorrect dans la liste des paramètres.
07La longueur SQLDA n’est pas valide.
08Type de données d’entrée non reconnu.
09Longueur non valide pour la variable d’entrée.
10Longueur de données non valide pour la variable de sortie.
11La valeur de SQLDABC n’est pas cohérente avec la valeur de SQLD.
12Pointeur de données d’entrée non valide. Si l’erreur se produit dans une application REXX, il est possible qu’une valeur n’ait pas été définie pour une variable hôte d’entrée ou une variable d’indicateur.
13Pointeur de données de sortie non valide.
14SQLN contient trop d’éléments pour SQLDABC.
15Le pointeur RDI d’entrée n’est pas valide.
16Type de données de sortie non reconnu.
17La valeur du 7ème octet de SQLDAID n’est pas cohérente avec les types de données contenus dans le SQLDA. La SQLDA contient une variable hôte de type LOB, mais le 7ème octet de SQLDAID n’est pas défini sur ‘2’ ou plus pour indiquer que les SQLVAR étendus ont été alloués.
18Un ARRAY SQLTYPE a été spécifié dans un SQLDA.
19Nom de programme invalide.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur:
système Examinez le programme d’application pour toute erreur notée dans l’explication ci-dessus. En général, le programmeur de l’application ne doit pas tenter de modifier la sortie du précompilateur.

SQLSTATE :
07002