DB2 - Connectivité - Informations complémentaires

Incidents DB2 Connect les plus fréquents

Cette section répertorie les symptômes les plus communs des incidents de connexion se produisant lors de l'utilisation de DB2 Connect. Pour chaque cas, vous trouverez :

Remarques :

  1. Pour obtenir les informations les plus récentes sur les niveaux de correction de logiciel recommandés, reportez-vous au manuel Mise en route consacré à votre produit, ainsi qu'aux dernières remarques d'édition publiées.

  2. Pour les couples message/code retour propres aux communications APPC, un code de détection est éventuellement renvoyé. Désormais, toutes les informations concernant ce type de code associé à un message particulier doivent être obtenues du sous-système SNA.

    Parfois, vous pouvez consulter les codes de détection SNA par le biais des journaux système. Cela dépend du sous-système SNA utilisé. Dans certaines solutions, vous devrez recréer l'incident avec une trace SNA active afin d'obtenir les informations concernant le code de détection.

  3. Le terme passerelle fait référence à DB2 Connect Enterprise Edition.

SQL0965 ou SQL0969

Symptôme

Les messages SQL0965 et SQL0969 peuvent être émis avec différents codes retour provenant de DB2 Universal Database pour AS/400, DB2 Universal Database for OS/390, DB2 pour MVS/ESA et DB2 pour VM &VSE.

Lorsque vous recevez l'un de ces messages, recherchez le code SQL initial dans la documentation sur le serveur de base de données émettant le message.

Solution

Le code SQL reçu de la base de données hôte ne peut pas être converti. Remédiez à l'incident en vous fondant sur le code d'erreur, puis relancez la commande qui a échoué.

SQL1338 lors de l'exécution d'une instruction SQL CONNECT

Symptôme / Origine

Le nom de destination symbolique n'a pas été défini ou ne l'a pas été correctement.

Par exemple, cela peut se produire lorsqu'un noeud APPC est utilisé et que le nom de destination symbolique spécifié dans le répertoire de noeuds DB2 ne correspond à aucune entrée CPI-C dans la configuration du sous-système local de communications APPC.

Cela peut également être dû à l'existence de plusieurs piles SNA sur le poste. Vous devrez éventuellement vérifier dans les paramètres PATH et LIBPATH que la pile à utiliser apparaît en première position.

Solutions

  1. Vérifiez que le nom de profil des informations de configuration CPI-C associées spécifié dans le répertoire de noeuuds DB2 correspond à la configuration SNA (avec distinction entre les majuscules et les minuscules).
  2. Vous devrez éventuellement vérifier dans les paramètres PATH et LIBPATH que la pile à utiliser apparaît en première position.

SQL1403N lors de l'exécution d'une instruction SQL CONNECT

Symptôme

SQL1403N Le nom d'utilisateur et/ou le mot de passe sont incorrects.

Solution

  1. L'authentification de l'utilisateur sur le poste DB2 Connect a échoué. Déterminez si l'utilisateur peut être authentifié sur ce poste.

    Si tel est le cas, assurez-vous que le mot de passe correct est indiqué dans l'instruction CONNECT, et modifiez-le si nécessaire.

    Si tel n'est pas le cas, l'entrée du répertoire de bases de données système a probablement été cataloguée de manière incorrecte avec le type d'authentification SERVER (il s'agit de la valeur par défaut, si le paramètre AUTHENTICATION n'a pas été défini explicitement). Vous pouvez alors la recataloguer en indiquant la valeur DCS ou CLIENT pour le type d'authentification.

  2. Le mot de passe ne doit pas être envoyé à la base de données cible du serveur. Si l'entrée du répertoire des bases de données système a été catalogué avec le type d'authentification DCS, un mot de passe doit être transmis de DB2 Client à la base de données cible du serveur. Sur certaines plateformes, telle qu'AIX, le mot de passe ne peut être obtenu que s'il a été indiqué dans l'instruction CONNECT.

SQL5043N

Symptôme

Le démarrage du support d'un ou de plusieurs protocoles a échoué. Toutefois, la fonction du gestionnaire de bases de données a pu être démarrée.

Le protocole TCP/IP n'est peut-être pas opérationnel sur la passerelle DB2 Connect. Une connexion client peut avoir abouti auparavant.

Si diaglevel = 4, le journal de diagnostic (db2diag.log) peut contenir une entrée semblable :

   1997-05-30-14.09.55.321092   Instance:svtdbm5   Node:000
PID:10296(db2tcpcm)   Appid:none
common_communication  sqlcctcpconnmgr_child   Probe:46
DIA3205E Socket address "30090" configured in the TCP/IP
services file and
required by the TCP/IP server support is being used by another
process.

Solution

Cet avertissement signale que DB2 Connect, agissant en tant passerelle pour des clients éloignés, a des difficultés à traiter un, voire plusieurs protocoles de communications client. Il peut s'agir de TCP/IP, APPC, etc. ; en principe, le message indique que l'un des protocoles de communications définis dans DB2 Connect n'est pas configuré correctement.

Fréquemment, cet incident est dû à l'absence de définition de la variable de profil DB2COMM, ou à sa définition incorrecte. En règle générale, il résulte d'une disparité entre la variable DB2COMM et les noms définis dans la configuration du gestionnaire de bases de données (par exemple, svcename, nname ou tpname).

Un des scénarios possibles est le suivant : une connexion précédente a abouti, puis vous avez reçu un message d'erreur SQL5043 alors que la configuration n'a pas été modifiée. Cela peut se produire avec le protocole TCP/IP, lorsque le système éloigné met fin de façon anormale à la connexion pour une raison quelconque. Dans ce cas, une connexion peut toujours sembler exister sur le client et vous pourrez peut-être rétablir la connexion sans autre intervention en émettant les commandes mentionnées ci-après.

Il est cependant probable qu'un des clients connectés à la passerelle détient toujours un pointeur sur le port TCP/IP. Sur chaque poste client connecté à la passerelle, lancez :

  1. db2 terminate
  2. db2stop

SQL30020

Symptôme

SQL30020N L'exécution a échoué en raison d'une erreur de protocole de répartition qui affectera l'exécution des commandes et des instructions SQL suivantes.

Solutions

Prenez contact avec votre support technique.

Recherchez un cliché ffdc (pid.000) dans le répertoire db2dump. Ensuite, formatez ce fichier avec la commande db2fdump et recherchez le terme "ERROR" dans le résultat obtenu. Un message de fin anormale MVS ABEND y figure peut-être. Si tel est le cas, consultez les messages VMS à la console pour plus de détails et recherchez le code de fin anormale dans le manuel consacré aux codes et messages MVS.

SQL30060

Symptôme

SQL30060N L'"<id-autorisation>" ne dispose pas du privilège permettant d'exécuter l'opération "<opération>".

Solution

Lors de la connexion à DB2 pour MVS ou DB2 pour OS/390, les tables de la base de données de communications n'ont pas été mises à jour correctement. Reportez-vous aux manuels :

SQL30061

Symptôme

Le nom ou l'alias de base de données est introuvable sur le serveur de bases de données hôte ou AS/400.

Solution

Un nom de base de données serveur incorrect peut avoir été indiqué dans l'entrée du répertoire DCS. Dans ce cas, SQLCODE -30061 est renvoyé à l'application.

Vérifiez le noeud, la base de données DB2 et les entrées du répertoire DCS. La valeur indiquée dans la zone du nom de base de données cible figurant dans l'entrée du répertoire DCS doit être identique au nom de la base de données résidant sur la plateforme. Ainsi, pour une base de données DB2 Universal Database for OS/390, le nom à utiliser doit être le même que celui indiqué dans la zone "LOCATION=nomempl" du fichier d'amorçage (BSDS), nom également fourni dans le message DSNL004I (LOCATION=emplacement) lors du démarrage de la fonction DDF (Distributed Data Facility).

Le manuel Mise en route de DB2 Connect correspondant à votre plateforme contient des exemples de mise à jour des catalogues DB2. Reportez-vous à la section "Mise à jour des répertoires DB2" de chaque chapitre décrivant la configuration SNA, ou au chapitre "Configuration des bases de données hôte ou AS/400 pour DB2 Connect", ou à la section "Configuration de TCP/IP".

Les commandes pouvant être utilisées avec un noeud APPC ou APPN sont les suivantes :

   db2 catalog appc node <nom-noeud> remote <nom-dest-symb> security program
   db2 catalog dcs database <nom-local> as <nom-bdd-réelle>
   db2 catalog database <nom-local> as <alias> at node <nom-noeud> 
                authentication dcs

Les commandes pouvant être utilisées avec un noeud TCP/IP sont les suivantes :

   db2 catalog tcpip node <nom-noeud> remote <nom-ou-adresse-hôte>
                server <num-port_ou_nom-service>
   db2 catalog dcs database <nom-local> as <nom-bdd-réelle>
   db2 catalog database <nom-local> as <alias> at node <nom-noeud>
                authentication dcs

Pour vous connecter à la base de données, lancez ensuite la commande suivante :

   db2 connect to <alias> user <nom-utilisateur> using <mot-de-passe>

SQL30073 avec code retour 119C lors de l'exécution d'une instruction SQL CONNECT

Symptôme

Le message SQL30073 a été envoyé avec un code retour 119C. Cela se produit lorsque la base de données cible du serveur ne prend pas en charge la page de codes utilisée par le client DB2 (via DB2 Connect). La page de codes est dérivée de la configuration de l'environnement d'exploitation dans lequel s'exécute le client DB2.

Pour plus de détails, reportez-vous au manuel Administration Guide.

Solution

En règle générale, vous pouvez remédier à cet incident en installant une PTF sur le système de bases de données serveur. Prenez contact avec le support technique approprié pour obtenir et appliquer toute PTF éventuellement conseillée pour supprimer ce symptôme.

Comme solution temporaire, l'utilisateur peut remplacer la page de codes par défaut en définissant la variable d'environnement DB2CODEPAGE. Pour ce faire, vérifiez l'environnement local ou adoptez la valeur 850.

Sur les plateformes UNIX, l'utilisateur peut éventuellement adopter une page de codes différente en définissant la variable d'environnement LANG par une autre valeur.

SQL30081N avec code retour 1

Symptôme

Le symptôme est constitué du message suivant accompagné d'un code de détection SNA :

  db2 connect to <nom-bdd> user <id-utilisateur>
  Enter password for <id-utilisateur>:
SQL30081N  Erreur de communication détectée.
   Protocole de communication
: "APPC".
   API de communication : "CPI-C".
   Emplacement en erreur
: "".
   Fonction de communication ayant détecté l'erreur
:
 "cmallc".
  Codes d'erreur spécifiques du protocole : "1", "*", "0x10030021".
   SQLSTATE=08001

Solution(s)

Dans le présent exemple, le code de détection est 10030021.

Les codes de détection les plus fréquents associés à ce message d'erreur et la solution recommandée dans chaque cas sont les suivants :

  1. SQL30081N avec code retour 1 et code de détection SNA 0877002C
    

    Spécification d'un nom de réseau incorrect.

  2. SQL30081N avec code retour 1 et code de détection SNA ffff0003
    

    Spécification d'une adresse MAC incorrecte ou liaison SNA non active.

  3. SQL30081N avec code retour 1 et code de détection SNA 10030021
    

    Inadéquation du type de LU.

  4. SQL30081N avec code retour 1 et code de détection SNA 084B6031
    

    Définition par la valeur 0 de MAXDBAT dans le paramètre DSNZPARM (sur un hôte DB2 pour MVS ou DB2 pour OS/390).

Autres suggestions :

  1. Lors de la création du profil de la LU locale, définissez celle-ci en tant que LU par défaut. Par exemple, dans la liste des fonctions de CM/2, procédez comme suit :
  2. Vérifiez que le protocole SNA est opérationnel sur la passerelle DB2 Connect.
  3. En cas d'utilisation de DB2 pour MVS ou de DB2 pour OS/390, vérifiez que l'espace adresse DDF (Distributed Data Facility) est démarré et que DB2 est opérationnel.

SQL30081N avec code retour 2

Symptôme

Le message SQL30081N est envoyé avec un code retour 2 et un code de détection SNA 08120022.

Solution

Le paramètre NUMILU sur NCP (extrémité hôte de la liaison) est peut-être défini par la valeur par défaut (0). Vérifiez-le, et, le cas échéant, changez cette valeur avant d'effectuer une nouvelle tentative après validation de la modification.

SQL30081N avec code retour 9

Symptôme

Vous recevez le message suivant (le code de détection SNA n'est pas indispensable dans ce cas) :

   db2 connect to <nom-bdd> user <id-utilisateur>
SQL30081N  Erreur de communication détectée.
   Protocole de communication : "APPC".
   API de communication : "CPI-C".
   Emplacement en erreur : "".
   Fonction de communication ayant détecté l'erreur :  "cmsend".
   Codes d'erreur spécifiques du protocole : "9", "*", "0x10086021".
   SQLSTATE=08001

Solution

L'origine de l'incident est la suivante : le nom du programme transactionnel (TPNAME) n'a pas été défini correctement sur le système DB2 Connect. Par exemple, vous avez modifié votre configuration SNA mais vous ne l'avez pas encore vérifiée sur la passerelle DB2 Connect. Pour de plus amples renseignements, consultez les manuels DB2 Connect Enterprise Edition pour OS/2 et Windows - Mise en route ou DB2 Connect Personal Edition - Mise en route.

SQL30081N avec code retour 10

Symptôme

Vous recevez le message suivant (le code de détection SNA n'est pas indispensable dans ce cas) :

SQL30081N  Erreur de communication détectée.
   Protocole de communication : "APPC".
   API de communication : "CPI-C".
   Emplacement en erreur : "".
   Fonction de communication ayant détecté l'erreur : "cmrcv".
   Codes d'erreur spécifiques du protocole : "10", "*", "*".
   SQLSTATE=08001

Solution

Vérifiez que DB2 est installé correctement.

Si vous utilisez la passerelle DB2 Connect pour OS/2, le message suivant peut s'afficher si le nom TP est mal défini :

   Codes d'erreur spécifiques du protocole : "10", "*", "0x084C0000".
   SQLSTATE=08001

Par exemple, dans ce cas, sous CM/2, il doit être défini comme suit :

   Transaction program name        = 'nompt' (défini par l'utilisateur)
   OS/2 program path and file name = notused

et (sur l'écran de configuration CM/2 suivant)

   Presentation type - background
   Operation type - Queued, operator preloaded

SQL30081N avec code retour 20

Symptôme

   SQL30081N  Erreur de communication détectée.
   Protocole de communication : "APPC".
   API de communication : "CPI-C".
   Emplacement en erreur : "".
   Fonction de communication ayant détecté l'erreur : "xcstp".
   Codes d'erreur spécifiques du protocole : "20", "*", "*".
   SQLSTATE=08001

Solution

Vérifiez que le sous-système SNA est opérationnel sur le système DB2 Connect.

SQL30081N avec code retour 27

Symptôme

Le message SQL30081N est envoyé avec un code retour 27 et un code de détection SNA 800Axxxx.

Solution

La taille de l'unité d'information acheminable (PIU) VTAM est trop grande.

SQL30081N avec code retour 79

Symptôme

   SQL30081N  Erreur de communication détectée.
   Protocole de communication : "TCP/IP".
   API de communication : "SOCKETS".
   Emplacement en erreur : "".
   Fonction de communication ayant détecté l'erreur : "connect".
   Codes d'erreur spécifiques du protocole : "79", "*", "*".
   SQLSTATE=08001

Solution(s)

Cette erreur peut se produire lorsqu'un client éloigné n'a pas réussi à se connecter à une passerelle DB2 Connect ou lors de la connexion à un hôte à partir d'une passerelle DB2 Connect.

  1. La variable profil DB2COMM peut avoir été définie de façon incorrecte sur la passerelle DB2 Connect. Vérifiez-le. Par exemple, la commande db2set db2comm=tcpip doit apparaître dans le fichier sqllib/db2profile lors de l'exécution de DB2 Extended Enterprise Edition sous AIX.
  2. Il peut avoir une disparité entre le nom de service ou numéro de port TCP/IP indiqué sur le client DB2 et celui spécifié sur la passerelle DB2 Connect. Vérifiez les entrées correspondantes dans les fichiers services TCP/IP résidant sur les deux postes.
  3. Vérifiez que DB2 est opérationnel sur la passerelle DB2 Connect. Définissez le paramètre de configuration du gestionnaire de bases de données diaglevel par la valeur 4, en lançant la commande suivante :
    db2 update dbm cfg using diaglevel 4
    
    Après avoir arrêté puis redémarré DB2, vérifiez dans le fichier db2diag.log que le démarrage des communications DB2 TCP/IP a bien abouti. Il doit apparaître un résultat semblable à ceci :
       1998-02-03-12.41.04.861119   Instance:svtdbm2   Node:00
       PID:86496(db2sysc)   Appid:none
       common_communication  sqlcctcp_start_listen   Probe:80
       DIA3000I "TCPIP" protocol support was successfully started.
    

SQL30081N avec un code erreur spécifique du protocole 10032

Symptôme

   SQL30081N  Erreur de communication détectée.
   Protocole de communication : "TCP/IP".
   API de communication : "SOCKETS".
   Emplacement en erreur : "9.21.85.159".
   Fonction de communication ayant détecté l'erreur :  "send".
   Codes d'erreur spécifiques du protocole : "10032",    "*", "*".
   SQLSTATE=08001

Solution

Vous pouvez recevoir ce message d'erreur lors d'une tentative de déconnexion d'un poste sur lequel des communications TC/IP ont déjà échoué. Remédiez à l'incident sur le sous-système TCP/IP.

Sur la plupart des postes, il suffit de redémarrer le protocole TCP/IP sur le poste pour résoudre le problème. Parfois, il faut relancer la totalité du poste.


[ Début de page | Page précédente | Page suivante | Table des matières | Index ]