Archives de catégorie : SQLCODE

CODE RETOUR -923

CONNECTION NOT ESTABLISHED: DB2 condition REASON code-raison, TYPE type-ressource, NAME nom-ressource

Explication :

La connexion à DB2 a échoué pour la raison précisée par ‘condition’, qui peut être l’une des suivantes :

  • DB2 non opérationnel,
  • Procédure d’arrêt de DB2 en cours,
  • Mode d’accès restreint à DB2,
  • Erreur d’allocation.

Les causes possibles d’erreur d’allocation sont :

  • Le plan d’application n’existe pas.
  • Le plan d’application n’est pas opérant. Un BIND ou REBIND est nécessaire.
  • Le plan d’application est invalide. Les ressources sous-jacentes ont changé.
  • Un objet database, tablespace, table ou index est indisponible.
  • L’allocation d’un fichier a échoué.
  • La mémoire virtuelle est insuffisante.

Action système :

L’ordre ne peut être exécuté. La connexion à DB2 n’est pas établie.

Réponse programmeur :

Si la connexion échoue parce que DB2, ou un objet database, tablespace, table ou index est indisponible, attendre la mise à disposition avant d’exécuter l’application.

Si l’allocation échoue pour un plan d’application, faire un REBIND du plan pour déterminer le problème. Les messages produits indiquent la raison de ce problème.

Pour tout autre type d’erreur d’allocation, une intervention de l’équipe système est nécessaire.

Détermination du problème :

Les informations ‘code raison’. ‘type-ressource’ et ‘nom-ressource’ apparaissent uniquement si elles sont disponibles. Consulter la documentation ” DB2 Codes “.

CODE RETOUR -922

CONNECTION AUTHORIZATION FAILURE; type-erreur ERROR

Explication :

L’autorisation de connexion a échoué pour le type d’erreur précisé par ‘type-erreur’, qui peut être l’un des suivants :

  • Validation utilisateur,
  • Accès de ressource,
  • Nom de sous-système,
  • Erreur d’installation.

Action système :

L’ordre ne peut être exécuté. La connexion à DB2 n’est pas établie.

Réponse programmeur :

Si l’erreur est du type ‘validation utilisateur’, l’auth-ID précisée à D62 par le module d’attachement est invalide. Contacter le programmeur système ou l’administrateur du système CICS, IMS, ou TSO.

Si l’erreur est du type ‘accès de plan’, l’allocation du plan demandé n’est pas permise. Contacter l’administrateur système.

Si l’erreur est du type ‘nom de sous-système’, le nom du sous-système est invalide.

Si l’erreur est du type ‘erreur d’installation’, un exit de validation de logon a rejeté la demande. Contacter le programmeur système.

CODE RETOUR -913

UNSUCCESSFUL EXECUTION CAUSED BY DEADLOCK OR TIMEOUT. REASON code-raison, TYPE OF RESOURCE type-ressource, AND RESOURCE NAME nom- ressource

Explication :

L’application a été victime d’une étreinte fatale ou d’un dépassement de temps. Le ‘code raison’ indique s’il s’agit d’une étreinte fatale ou d’un dépassement de temps.

Action système :

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

Réponse programmeur :

L’application doit émettre une commande COMMIT ou un ROLLBACK jusqu’au précédent point de COMMIT, et doit en général être stoppée.

CODE RETOUR -911

THE CURRENT UNIT OF WORK HAS BEEN ROLLED BACK DUE TO DEADLOCK OR TIMEOUT. REASON code-raison, TYPE OF RESOURCE type-ressource, AND RESOURCE NAME nom-ressource

Explication :

L’unité de travail courante a été victime d’une étreinte fatale ou d’un dépassement de temps et a provoqué une opération de ROLLBACK.

Le ‘code-raison’ indique s’il s’agit d’une étreinte fatale ou d’un dépassement de temps.

Note :

Les modifications associées à l’unité de travail doivent être retraitées.

Action système :

L’ordre ne peut être exécuté. L’application subit un ROLLBACK jusqu’au précédent point de COMMIT.

Réponse programmeur :

Une application lourde ou susceptible de rencontrer des problèmes d’étreinte fatale doit émettre aussi fréquemment que possible des commandes COMMIT. Après un code retour –911 l’application doit être en général stoppée.

CODE RETOUR -910

THE SQL STATEMENT CANNOT ACCESS AN OBJECT ON WICH A DROP OR ALTER IS PENDING

Explication :

Le programme d’application a émis un DROP ou ALTER sur un objet et tente de l’accéder alors que l’opération DROP ou ALTER n’est pas terminée.

Action système :

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

Réponse programmeur :

Dans le cas d’un ALTER, la logique du programme doit être modifiée en codant un COMMIT (ou l’équivalent IMS/VS ou CICS) entre l’ALTER et l’ordre SQL en erreur.

Pour un DROP, la logique du programme peut être modifiée de telle façon qu’il n’y ait plus d’accès à l’objet après l’exécution du DROP.

CODE RETOUR -909

THE OBJECT HAS BEEN DELETED

Explication :

Le programme d’application a détruit une table et tente de l’accéder, ou à détruit un index et essaie d’accéder à la table par cet index.

Action système :

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

Réponse programmeur :

La logique du programme doit être corrigée afin qu’il ne tente pas d’accéder ou d’utiliser un objet qu’il vient de détruire.

Détruire des index dans un programmé d’application est particulièrement hasardeux, car il n’est pas possible de savoir si le plan qui a été construit pour l’application (par BIND ou REBIND) utilise un index particulier pour accéder aux tables.

CODE RETOUR -906

THE SQL STATEMENT CANNOT BE EXECUTED BECAUSE THIS FUNCTION IS DISABLED DUE TO A PRIOR ERROR

Explication :

L’exécution d’un ordre SQL échoue car cette fonction est inhibée depuis une précédente erreur. Cette situation peut se produire lorsque le programme d’application a intercepté un abend (par exemple sur une condition ON ERROR en PL/l) et continue à émettre des ordres SQL.

Action système :

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

Réponse programmeur :

Généralement, le programme d’application doit s’arrêter. Toute autre tentative d’exécution d’un ordre SQL échouera avec le même code retour.

CODE RETOUR -905

UNSUCCESSFUL EXECUTION DUE TO RESOURCE LIMIT BEING EXCEEDED, RESOURCE NAME nom-ressource LIMIT ” limite-1 CPU SECONDS (limite-2 SERVICE UNITS) DERIVED FROM source-limite

Explication :

L’exécution d’un ordre SQL est interrompue par un dépassement de limite de ressource.

Le nom de la ressource pour laquelle la limite est dépassée est ‘nom-ressource’. C’est aussi le nom de la colonne de la table de spécification des limites des ressources. La limite dépassée en secondes CPU est ‘limite-1′ et en unités de service ‘limite-2’. Le ‘nom- ressource’ peut être ASUTIME et correspond dans ce cas au nombre de secondes CPU permis pour chaque ordre SQL. Le nombre maximum de secondes CPU est ‘limite-1′. Le nombre maximum en unités de service est ‘limite-2’.

La source de dérivation de la limite est ‘source-limite’ et correspond au nom de la table de spécification des limites des ressources, ou à un paramètre système. Si la source est un paramètre système, la table de spécification ne contient pas d’entrée applicable ou une erreur s’est produite pendant l’accès à cette table. Dans les deux cas. la limite est obtenue à partir d’un paramètre d’installation.

Action système:

L’exécution de l’ordre est interrompue. Un enregistrement détaillant l’anomalie est généré. Si un curseur est assodé à l’instruction abandonnée, sa position reste inchangée et une commande CLOSE ou PREPARE peut être émise. Toute autre opération sur le curseur est non exécutable et provoque le code -905. S’il n’y a pas de curseur, l’ordre est annulé (ROLLBACK).

Réponse programmeur :

Déterminer pourquoi cet ordre SQL est si long, et prendre l’action appropriée. Considérer une simplification de l’ordre, une restructuration des tables et des index, ou contacter le groupe d’installation responsable de la maintenance des tables de spécification des limites des ressources.

Un programme d’application recevant ce code peut exécuter d’autres ordres SQL.

CODE RETOUR -904

UNSUCCESSFUL EXECUTION CAUSED BY AN UNAVAILABLE RESOURCE. REASON code-raison, TYPE OF RESOURCE type-ressource, AND RESOURCE NAME nom-ressource

Explication :

L’ordre SQL ne peut être exécuté du fait que la ressource ‘nom-ressource’ de type ‘type- ressource’ est indisponible pour la raison indiquée par ‘code-raison’.

Action système :

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

Réponse programmeur :

Vérifier l’identité de la ressource indisponible. La raison d’indisponibilité figure dans la documentation ” DB2 Codes “.

CODE RETOUR -818

THE PRECOMPILER-GENERATED TIMESTAMP horodatage-1 IN THE LOAD MODULE IS DIFFERENT FROM THE BIND TIMESTAMP hondatage-2 BUILT FROM THE DBRM

Explication :

Le précompilateur SQL place un ‘horodatage-2’ dans le DBRM et un ‘horodatage-1’

dans la liste des paramètres de chaque ordre SQL du programme. Au moment du BIND. DB2 enregistre l’horodatage du DBRM pour l’utiliser à l’exécution. A l’exécution, ‘horodatage-1’ de l’ordre SQL est comparé à ‘horodatage-2’ dérivé du DBRM lors du BIND. Si les deux horodatages sont différents, le DBRM et le programme ne sont pas issus de la même précompilation.

Causes possibles de l’erreur :

  • Précompilation, compilation et linkedit, sans BIND de l’application,
  • Précompilation et BIND, sans compilation et linkedit,
  • BIND de l’application avec un DBRM résultant d’une précompilation différente de celle utilisée pour la préparation de l’application.

Les horodatages sont internes à DB2 et ne possèdent pas d’interprétation externe.

Action système :

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

Réponse programmeur :

Exécuter un BIND de l’application en utilisant le DBRM du programme correspondant au module objet.