In diesem Abschnitt werden die häufigsten Symptome von Verbindungsproblemen bei der Verwendung von DB2 Connect aufgelistet. Für jedes Problem werden Ihnen folgende Informationen zur Verfügung gestellt:
Anmerkungen:
Manchmal können SNA-Prüfcodes über die Systemprotokolle angezeigt werden. Ob dies der Fall ist oder nicht, hängt vom verwendeten SNA-Subsystem ab, und in einigen Situationen müssen Sie das Problem eventuell mit einer aktiven SNA-Ablaufverfolgung reproduzieren, um die Prüfcodeinformationen abzurufen.
Die Nachrichten SQL0965 und SQL0969 können mit einer Anzahl verschiedener Rückkehrcodes von DB2 Universal Database für AS/400, DB2 Universal Database für OS/390, DB2 für MVS/ESA und DB2 für VM &VSE abgesetzt werden.
Wenn eine dieser Nachrichten angezeigt wird, müssen Sie den ursprünglichen SQL-Code in der Dokumentation für das Datenbank-Server-Produkt nachschlagen, das die Nachricht abgesetzt hat.
Der von der Host-Datenbank empfangene SQL-Code kann nicht umgesetzt werden. Korrigieren Sie das Problem basierend auf dem Fehlercode, und wiederholen Sie den fehlgeschlagenen Befehl.
Der symbolische Bestimmungsname wurde nicht definiert oder ist nicht ordnungsgemäß definiert.
Dazu kann es zum Beispiel kommen, wenn ein APPC-Knoten verwendet wird und der im DB2-Knotenverzeichnis angegebene symbolische Bestimmungsname nicht mit einem CPI-DFV-Eintrag in der Konfiguration des lokalen Subsystems für APPC-Datenfernverarbeitung übereinstimmt.
Eine weitere Ursache kann sein, daß auf Ihrer Maschine mehrere SNA-Stapelspeicher installiert sind. Sie müssen eventuell PATH und LIBPATH überprüfen, um sicherzustellen, daß zuerst auf den Stapelspeicher verwiesen wird, den Sie verwenden wollen.
SQL1403N Angegebene Benutzer-ID und/oder Kennwort sind/ist falsch.
Ist dies der Fall, stellen Sie sicher, daß in der Anweisung CONNECT das richtige Kennwort angegeben ist, falls es erforderlich ist.
Ist dies nicht der Fall, wurde der Eintrag für das Systemdatenbankverzeichnis mit AUTHENTICATION SERVER (dies ist die Standardeinstellung, wenn AUTHENTICATION nicht explizit angegeben ist) falsch katalogisiert. Wenn letzteres zutrifft, katalogisieren Sie den Eintrag erneut mit AUTHENTICATION DCS bzw. CLIENT.
Die Unterstützung für mindestens ein Übertragungsprotokoll konnte nicht gestartet werden. Die Kernfunktionalität des Datenbankmanagers wurde jedoch erfolgreich gestartet.
Vielleicht wurde das TCP/IP-Protokoll auf dem DB2 Connect-Gateway nicht gestartet. Möglicherweise hat zuvor eine erfolgreiche Client-Verbindung bestanden.
Wenn diaglevel = 4, enthält db2diag.log eventuell einen Eintrag wie zum Beispiel den folgenden:
1997-05-30-14.09.55.321092 Instance:svtdbm5 Node:000 PID:10296(db2tcpcm) Appid:none common_communication sqlcctcpconnmgr_child Probe:46 DIA3205E Die Socket-Adresse "30090", die in der TCP/IP-Servicedatei definiert und für die TCP/IP-Server-Unterstützung erforderlich ist, wird von einem anderen Prozeß verwendet.
Diese Warnung ist ein Symptom dafür, daß DB2 Connect als Gateway für ferne Clients Schwierigkeiten beim Handhaben von mindestens einem Übertragungsprotokoll hat. Diese Protokolle können vom Typ TCP/IP oder APPC und andere sein, und in der Nachricht wird in der Regel angegeben, daß eines der für DB2 Connect definierten Übertragungsprotokolle nicht ordnungsgemäß konfiguriert ist.
Eine mögliche Ursache ist häufig, daß die Profilvariable DB2COMM nicht definiert oder falsch definiert ist. Im allgemeinen ist das Problem das Ergebnis einer Abweichung zwischen der Variablen DB2COMM und den in der Datenbankmanagerkonfiguration definierten Namen (zum Beispiel svcename, nname oder tpname).
Ein mögliches Szenario ist, daß zuvor erfolgreich eine Verbindung hergestellt wurde und daß dann die Fehlernachricht SQL5043 angezeigt wird, obwohl die Konfiguration nicht geändert wurde. Dazu kann es bei Verwendung des TCP/IP-Protokolls kommen, wenn das ferne System die Verbindung aus einem bestimmten Grund abnormal beendet. Wenn dies auftritt, kann eine Verbindung weiterhin auf dem Client vorhanden sein, und es ist eventuell möglich, die Verbindung durch Absetzen der untenstehenden Befehle ohne weiteres Eingreifen wiederherzustellen.
Sehr wahrscheinlich hat einer der Clients, der mit dem Gateway verbunden ist, noch eine Kennung am TCP/IP-Anschluß. Geben Sie auf jeder Client-Maschine, die mit dem Gateway verbunden ist, folgende Befehle ein:
SQL30020N Die Ausführung schlug aufgrund eines Verteilungsprotokollfehlers (Distributed Protocol Error) fehl. Dieser Fehler beeinflußt die erfolgreiche Ausführung der nachfolgenden Befehle und SQL-Anweisungen.
Wenden Sie sich bei diesem Fehler an den Service.
Überprüfen Sie das Verzeichnis db2dump auf einen ffdc-Speicherauszug (pid.000). Formatieren Sie diese Speicherauszugsdatei anschließend mit db2fdump, und suchen Sie in der Ergebnisdatei nach "ERROR". Hier wird eventuell ein Verweis auf MVS ABEND aufgelistet. Überprüfen Sie in diesem Fall die MVS-Konsole auf weitere Informationen, und schlagen Sie den Code für abnormale Beendigung im Handbuch DB2 for MVS Messages and Codes nach.
SQL30060N "<berechtigungs-ID>" verfügt nicht über die Berechtigung, die Operation "<operation>" auszuführen.
Beim Herstellen der Verbindung zu DB2 für MVS bzw. DB2 für OS/390 wurden die Kommunikationsdatenbanktabellen nicht ordnungsgemäß aktualisiert. Weitere Informationen finden sie in:
Verbindung zu falschem Datenbank-Server-Standort auf dem Host oder System IBM AS/400; keine Zieldatenbank gefunden.
Im DCS-Verzeichniseintrag wurde eventuell der falsche Server-Datenbankname angegeben. Wenn es dazu kommt, wird SQLCODE -30061 an die Anwendung zurückgegeben.
Überprüfen Sie den DB2-Knoten, die Datenbank und die DCS-Verzeichniseinträge. Das Feld für den Zieldatenbanknamen im DCS-Verzeichniseintrag muß mit dem Namen der Datenbank basierend auf der Plattform übereinstimmen. Bei einer Datenbank unter DB2 Universal Database für OS/390 muß der zu verwendende Name beispielsweise mit dem Namen übereinstimmen, der im Feld "LOCATION=standortname" des BSDS (Boot Strap Data Set) verwendet wird und der auch in der Nachricht DSNL004I (LOCATION=standort) angezeigt wird, wenn DDF (Distributed Data Facility) gestartet wird. Weitere Informationen finden Sie in Das Datenbankkonzept und in Kapitel 6, Aktualisieren von Datenbankverzeichnissen.
Zudem enthält das Handbuch Einstieg für DB2 Connect Beispiele zum Aktualisieren der DB2-Kataloge. Informationen dazu finden Sie im Schritt zur Aktualisierung der DB2-Verzeichnisse in jedem Kapitel, das die SNA-Konfiguration beschreibt, oder im Kapitel über die Konfiguration von Datenbanken für DB2 Connect auf dem Host oder System IBM AS/400 und im Abschnitt über die Konfiguration der TCP/IP-Verbindung.
Die korrekten Befehle für einen APPC- oder APPN-Knoten sind:
db2 catalog appc node <knotenname> remote <symb.-bestimmungsname> security program db2 catalog dcs database <lokaler-name> as <tatsächlicher-datenbankname> db2 catalog database <lokaler-name> as <alias> at node <knotenname> authentication dcs
Die korrekten Befehle für einen TCP/IP-Knoten sind:
db2 catalog tcpip node <knotenname> remote <host-name-oder-adresse> server <anschlußnummer-oder-servicename> db2 catalog dcs database <lokaler-name> as <tatsächlicher-datenbankname> db2 catalog database <lokaler-name> as <alias> at node <knotenname> authentication dcs
Setzen Sie zum Verbinden der Datenbank folgenden Befehl ab:
db2 connect to <alias> user <benutzername> using <kennwort>
Die Nachricht SQL30073 wird mit dem Rückkehrcode 119C abgesetzt. Dazu kommt es, wenn die Ziel-Server-Datenbank die vom DB2-Client (über DB2 Connect) verwendete Codepage nicht unterstützt. Die Codepage wird von der Konfiguration der Betriebsumgebung abgeleitet, in der der DB2-Client ausgeführt wird.
Weitere Informationen finden Sie im Handbuch Systemverwaltung.
Dieses Problem kann häufig gelöst werden, indem Sie eine Berichtigung auf dem Ziel-Server-Datenbanksystem installieren. Wenden Sie sich an die geeignete Serviceorganisation, beziehen Sie die für dieses Symptom empfohlenen Berichtigungen, und wenden Sie diese an.
Als temporäre Lösung kann der Benutzer die Standard-Codepage durch Einstellen der Umgebungsvariablen DB2CODEPAGE überschreiben. Überprüfen Sie die länderspezifischen Angaben, bzw. stellen Sie DB2CODEPAGE=850 ein.
Auf UNIX-Plattformen kann der Benutzer eventuell zu einer anderen Codepage umschalten, indem er die Umgebungsvariable LANG auf einen anderen Wert setzt.
Das Symptom ist die folgende Nachricht plus SNA-Prüfcode:
db2 connect to <datenbankname> user <benutzer-ID> Kennwort eingeben für <benutzer-ID>: SQL30081N Übertragungsfehler. Verwendetes Übertragungsprotokoll: "APPC". Verwendete Übertragungs-API: "CPI-C". Position, an der der Fehler festgestellt wurde: "". Übertragungsfunktion, die den Fehler feststellte: "cmallc". Protokollspezifische(r) Fehlercode(s): "1", "*", "0x10030021". SQLSTATE=08001
In diesem Beispiel ist der Prüfcode 10030021.
Im folgenden werden die häufigsten Prüfcodes für diese Fehlernachricht und die jeweiligen vorgeschlagenen Lösungen angegeben:
SQL30081N mit Rückkehrcode 1 und SNA-Prüfcode 0877002C
Es wurde ein falscher Netzwerkname angegeben.
SQL30081N mit Rückkehrcode 1 und SNA-Prüfcode ffff0003
Es wurde die falsche MAC-Adresse angegeben, oder die SNA-Verbindung ist nicht aktiv.
SQL30081N mit Rückkehrcode 1 und SNA-Prüfcode 10030021
Es liegt eine Abweichung vom LU-Typ vor.
SQL30081N mit Rückkehrcode 1 und SNA-Prüfcode 084B6031
MAXDBAT in DSNZPARM (bei einem Host unter DB2 für MVS oder DB2 für OS/390) ist auf 0 gesetzt.
Andere Vorschläge:
Die Nachricht SQL30081N wird mit Rückkehrcode 2 und SNA-Prüfcode 08120022 empfangen.
Der Parameter NUMILU für NCP (Host-Ende der Programmverbindung (Link)) ist eventuell auf den Standardwert (0) gesetzt. Überprüfen Sie dies. Ändern Sie ggf. die NCP-Definition, bevor Sie den Vorgang nach der Aktivierung der Änderung wiederholen.
Das Symptom ist die folgende Nachricht (der SNA-Prüfcode ist in diesem Fall nicht erforderlich):
db2 connect to <datenbank> user <benutzer-ID> SQL30081N Übertragungsfehler. Verwendetes Übertragungsprotokoll: "APPC". Verwendete Übertragungs-API: "CPI-C". Position, an der der Fehler festgestellt wurde: "". Übertragungsfunktion, die den Fehler feststellte:"cmsend". Protokollspezifische(r) Fehlercode(s): "9", "*", "0x10086021". SQLSTATE=08001
Das Problem ist, daß der Name des Transaktionsprogramms (TPNAME) auf dem DB2 Connect-System nicht ordnungsgemäß definiert ist. Sie haben zum Beispiel eventuell Ihre SNA-Konfiguration aktualisiert, sie jedoch noch nicht auf dem DB2 Connect-Gateway geprüft. Weitere Einzelangaben finden Sie im Handbuch DB2 Connect Enterprise Edition für OS/2 und Windows Einstieg bzw. DB2 Connect Personal Edition Einstieg.
Das Symptom ist die folgende Nachricht (der SNA-Prüfcode ist nicht erforderlich):
SQL30081N Übertragungsfehler. Verwendetes Übertragungsprotokoll: "APPC". Verwendete Übertragungs-API: "CPI-C". Position, an der der Fehler festgestellt wurde: "". Übertragungsfunktion, die den Fehler feststellte: "cmrcv". Protokollspezifische(r) Fehlercode(s): "10", "*", "*". SQLSTATE=08001
Überprüfen Sie, ob DB2 ordnungsgemäß installiert wurde.
Wird ein Gateway unter DB2 Connect für OS/2 verwendet, wird eventuell folgende Nachricht angezeigt, wenn der Transaktionsprogrammname nicht ordnungsgemäß definiert ist:
Protokollspezifische(r) Fehlercode(s): "10", "*", "0x084C0000". SQLSTATE=08001
In diesem Fall muß der TP-Name beispielsweise in CM/2 wie folgt definiert werden:
Name des Transaktionsprogramms (TP-Name) = 'tpname' (benutzerdefiniert) OS/2-Programmpfad und Dateiname = nicht verwendet
und (auf der nächsten CM/2-Konfigurationsanzeige)
Darstellungsart - Hintergrund Betriebsart - Warteschlangenbetrieb - Vom Bediener vorher geladen
SQL30081N Übertragungsfehler. Verwendetes Übertragungsprotokoll: "APPC". Verwendete Übertragungs-API: "CPI-C". Position, an der der Fehler festgestellt wurde: "". Übertragungsfunktion, die den Fehler feststellte: "xcstp". Protokollspezifische(r) Fehlercode(s): "20", "*", "*". SQLSTATE=08001
Stellen Sie sicher, daß das SNA-Subsystem auf dem DB2 Connect-System gestartet wurde.
Die Nachricht SQL30081N wird mit Rückkehrcode 27 und SNA-Prüfcode 800Axxxx empfangen.
Die VTAM-Pfadinformationseinheit (PIU) ist zu groß.
SQL30081N Übertragungsfehler. Verwendetes Übertragungsprotokoll: "TCP/IP". Verwendete Übertragungs-API: "SOCKETS". Position, an der der Fehler festgestellt wurde: "". Übertragungsfunktion, die den Fehler feststellte: "connect". Protokollspezifische(r) Fehlercode(s): "79", "*", "*". SQLSTATE=08001
Dieser Fehler kann auftreten, wenn ein ferner Client keine Verbindung zu einem DB2 Connect-Gateway herstellen kann. Dazu kann es auch kommen, wenn die Verbindung vom DB2 Connect-Gateway zu einem Host hergestellt wird.
db2 update dbm cfg using diaglevel 4Überprüfen Sie nach dem Stoppen und Neustart von DB2 in der Datei db2diag.log, ob die DB2-TCP/IP-Datenfernverarbeitung gestartet wurde. Es wird eine Ausgabe angezeigt, die der folgenden ähnelt:
1998-02-03-12.41.04.861119 Instance:svtdbm2 Node:00 PID:86496(db2sysc) Appid:none common_communication sqlcctcp_start_listen Probe:80 DIA3000I Die Protokollunterstützung für "TCPIP" wurde erfolgreich gestartet.
SQL30081N Übertragungsfehler. Verwendetes Übertragungsprotokoll: "TCP/IP". Verwendete Übertragungs-API: "SOCKETS". Position, an der der Fehler festgestellt wurde: "9.21.85.159". Übertragungsfunktion, die den Fehler feststellte: "send". Protokollspezifische(r) Fehlercode(s): "10032", "*", "*". SQLSTATE=08001
Diese Fehlernachricht wird eventuell empfangen, wenn versucht wird, die Verbindung zu einer Maschine zu trennen, auf der die TCP/IP-Datenfernverarbeitung bereits fehlgeschlagen ist. Korrigieren Sie das Problem mit dem TCP/IP-Subsystem.
Starten Sie dazu auf den meisten Maschinen einfach das TCP/IP-Protokoll erneut. Gelegentlich ist der Neustart der gesamten Maschine erforderlich.