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 :
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.
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.
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é.
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.
SQL1403N Le nom d'utilisateur et/ou le mot de passe sont incorrects.
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.
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.
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 :
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.
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.
SQL30060N L'"<id-autorisation>" ne dispose pas du privilège permettant d'exécuter l'opération "<opération>".
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 :
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.
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>
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.
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.
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
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 :
SQL30081N avec code retour 1 et code de détection SNA 0877002C
Spécification d'un nom de réseau incorrect.
SQL30081N avec code retour 1 et code de détection SNA ffff0003
Spécification d'une adresse MAC incorrecte ou liaison SNA non active.
SQL30081N avec code retour 1 et code de détection SNA 10030021
Inadéquation du type de LU.
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 :
Le message SQL30081N est envoyé avec un code retour 2 et un code de détection SNA 08120022.
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.
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
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.
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
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 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
Vérifiez que le sous-système SNA est opérationnel sur le système DB2 Connect.
Le message SQL30081N est envoyé avec un code retour 27 et un code de détection SNA 800Axxxx.
La taille de l'unité d'information acheminable (PIU) VTAM est trop grande.
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
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.
db2 update dbm cfg using diaglevel 4Aprè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 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
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.