I dette afsnit beskrives de mest almindelige symptomer på problemer med at oprette forbindelse vha. DB2 Connect. I hvert tilfælde vises følgende oplysninger:
Bemærkninger:
Undertiden er det muligt at se SNA-registreringskoder i systemloggen. Det afhænger af, hvilket SNA-subsystem der anvendes. I visse situationer kan det være nødvendigt at genskabe problemet, mens en SNA-sporing er aktiv, for at få oplysninger om SNA-registreringskoder.
Meddelelse SQL0965 og SQL0969 kan blive afsendt sammen med en række forskellige returkoder fra DB2 Universal Database til AS/400, DB2 Universal Database til OS/390, DB2 til MVS/ESA og DB2 til VM og VSE.
Hvis du modtager en af meddelelserne, skal du slå den oprindelige SQLCODE op i dokumentationen til det databaseserverprodukt, der har afsendt meddelelsen.
Den SQLCODE, der er modtaget fra værtsdatabasen, kan ikke konverteres. Ret fejlen ud fra fejlkoden, og gentag kommandoen.
Det symbolske destinationsnavn er ikke defineret eller er ikke defineret korrekt.
Det kan f.eks. ske, når der benyttes en APPC-node, og det symbolske destinationsnavn, der er angivet i DB2-nodekataloget, ikke svarer til en CPI-C-indgang i den lokale konfiguration af APPC-kommunikationssubsystemet.
En anden årsag kan være, at der er installeret flere SNA-stakke på din maskine. Kontrollér PATH og LIBPATH for at sikre, at den stak, du vil bruge, står først i kommandoerne.
SQL1403N Det angivne brugernavn og/eller kodeord er forkert.
Hvis det er tilfældet, skal du sikre, at det rigtige kodeord angives i CONNECT-sætningen (hvis det er nødvendigt at angive kodeord).
Hvis det ikke er tilfældet, må indgangen i systemdatabasekataloget være katalogiseret forkert med værdien AUTHENTICATION SERVER. Det er standardværdien, hvis AUTHENTICATION ikke eksplicit angives. I det tilfælde skal du ændre katalogiseringen til AUTHENTICATION DCS eller CLIENT.
En eller flere kommunikationsprotokoller er ikke startet. Selve databasesystemet er imidlertid startet.
Måske er TCP/IP-protokollen ikke startet på DB2 Connect-gatewayen. Det kan tidligere have været muligt at oprette forbindelse fra klienten.
Hvis diaglevel = 4, kan db2diag.log indeholde en indgang, der ligner følgende:
1999-05-30-14.09.55.321092 Instance:svtdbm5 Node:000 PID:10296(db2tcpcm) Appid:none common_communication sqlcctcpconnmgr_child Probe:46 DIA3205E Socket-adressen "30090", der er angivet i TCP/IP-filen SERVICES og kræves af TCP/IP-serveren, anvendes af en anden proces.
Advarslen er et symptom på, at DB2 Connect som gateway for eksterne klienter har problemer med at håndtere en eller flere klientkommunikationsprotokoller. Protokollen kan være TCP/IP, APPC eller en anden, og meddelelsen indikerer, at en af de kommunikationsprotokoller, der er defineret over for DB2 Connect, ikke er konfigureret rigtigt.
Årsagen er ofte, at profilvariablen DB2COMM ikke er defineret eller er defineret forkert. Problemet skyldes som regel manglende overensstemmelse mellem DB2COMM-variablen og de navne, der er defineret i konfigurationen af databasesystemet (f.eks. svcename, nname eller tpname).
SQL5043-fejlmeddelelsen kan også opstå i en situation, hvor det tidligere var muligt at oprette forbindelse, og konfigurationen ikke er ændret. Det kan forekomme, når TCP/IP-protokollen benyttes, hvis det eksterne system af en eller anden årsag afbryder forbindelsen. Når det sker, kan det på klienten se ud, som om forbindelsen stadig findes. Forbindelsen kan muligvis genoprettes vha. nedenstående kommandoer uden anden handling.
En af de klienter, der er forbundet med gatewayen, har sandsynligvis stadig fat i TCP/IP-porten. Udfør følgende kommandoer på hver klient, der er forbundet med gatewayen:
SQL30020N Der opstod fejl under udførelsen pga. en distribueret protokolfejl, der påvirker udførelsen af efterfølgende kommandoer og SQL-sætninger.
Denne fejl bør rapporteres til IBM Service.
Se, om der findes en FFDC-dump (pid.000) i biblioteket db2dump. Formatér dumpfilen vha. db2fdump, og søg efter ERROR i resultatfilen. Filen kan indeholde en MVS ABEND. Undersøg i det tilfælde, om der er flere oplysninger på MVS-konsollen, og slå ABEND-koden op i bogen DB2 for MVS Messages and Codes.
SQL30060N <autorisations-id> har ikke tilladelse til at udføre funktionen <funktion>.
Ved oprettelse af forbindelse til DB2 til MVS eller DB2 til OS/390 er CDB-tabellerne (Communications Database) ikke opdateret korrekt. Se i:
Der oprettes forbindelse til en forkert værts- eller AS/400-databaseserverplacering. Det er ikke muligt at finde databasen.
Der kan være angivet et forkert navn på serverdatabasen i kataloget over databaseforbindelser. I det tilfælde sendes SQLCODE -30061 tilbage til applikationen.
Kontrollér indgangene i DB2-katalogerne (node, database og databaseforbindelser (DCS)). Måldatabasenavnet i kataloget over databaseforbindelser skal svare til navnet på databasen baseret på platformen. For en DB2 Universal Database til OS/390-database skal navnet f.eks. være det samme som det, der benyttes i "LOCATION=placnavn"-feltet i BSDS (Boot Strap Data Set), og som også vises i DSNL004I-meddelelsen (LOCATION=placering), når DDF (Distributed Data Facility) startes. Se også Begrebet database og Opdatering af databasekataloger.
Bogen Kom godt i gang (Quick Beginnings) til DB2 Connect indeholder også eksempler på, hvordan DB2-katalogerne opdateres. Se afsnittet "Opdatér DB2-kataloger" i hvert af de kapitler, der beskriver SNA-konfiguration, eller afsnittet "Konfiguration af TCP/IP-forbindelse" i kapitlet "Konfigurér værts- og AS/400-databaser til DB2 Connect".
Til en APPC- eller APPN-node benyttes følgende kommandoer:
db2 catalog appc node <nodenavn> remote <sym_destnavn> security program db2 catalog dcs database <lokalt_navn> as <reelt_dbnavn> db2 catalog database <lokalt_navn> as <alias> at node <nodenavn> authentication dcs
Til en TCP/IP-node benyttes følgende kommandoer:
db2 catalog tcpip node <nodenavn> remote <værtsnavn_eller_adresse> server <portnr_eller_servicenavn> db2 catalog dcs database <lokalt_navn> as <reelt_dbnavn> db2 catalog database <lokalt_navn> as <alias> at node <nodenavn> authentication dcs
Derefter oprettes forbindelse til databasen vha. følgende kommando:
db2 connect to <alias> user <brugernavn> using <kodeord>
Meddelelse SQL30073 afsendes med returkode 119C. Det sker, når databasen på serveren ikke understøtter den tegntabel, der anvendes på DB2-klienten (der går via DB2 Connect). Tegntabellen afledes af konfigurationen af det styresystem, hvor DB2-klienten kører.
Der er flere oplysninger i Administration Guide.
Problemet kan ofte løses, ved at der installeres en rettelse på serverdatabasesystemet. Kontakt din serviceorganisation, og installér den rettelse, der anbefales til dette symptom.
Brugeren kan som en midlertidig løsning angive systemvariablen DB2CODEPAGE, så standardtegntabellen erstattes. Undersøg sprogkonventionerne (locale), eller angiv DB2CODEPAGE=850.
På UNIX-platforme kan brugeren muligvis skifte til en anden tegntabel ved at sætte systemvariablen LANG til en anden værdi.
Symptomet er følgende meddelelse og en SNA-registreringskode:
db2 connect to <databasenavn> user <brugerid> Indtast det aktuelle kodeord for <brugerid>: SQL30081N Der er fundet en kommunikationsfejl. Kommunikationsprotokol Anvendt kommunikations-API: "CPI-C" Placering, hvor fejlen er opdaget: "". Kommunikationsfunktion, der opdagede fejlen: "cmallc". Protokolspecifikke fejlkoder: "1", "*", "0x10030021". SQLSTATE=08001
I dette eksempel er registreringskoden 10030021.
Nedenfor vises de mest almindelige registreringskoder, der er knyttet til denne fejlmeddelelse, og forslag til en løsning:
SQL30081N med returkode 1 og SNA-registreringskode 0877002C
Der er angivet et forkert netværksnavn.
SQL30081N med returkode 1 og SNA-registreringskode ffff0003
Der er angivet en forkert MAC-adresse, eller SNA-linket er ikke aktivt.
SQL30081N med returkode 1 og SNA-registreringskode 10030021
Der er uoverensstemmelse mellem LU-typerne.
SQL30081N med returkode 1 og SNA-registreringskode 084B6031
MAXDBAT i DSNZPARM (på et DB2 til MVS- eller DB2 til OS/390-system) er sat til 0
Andre forslag:
Meddelelse SQL30081N modtages med returkode 2 og SNA-registreringskode 08120022.
NUMILU-parameteren i NCP (i værtssystemets ende af linket) kan være sat til 0 (standardværdien). Kontrollér, om det er tilfældet. Ret NCP-definitionen, og aktivér ændringen, inden du forsøger igen.
Symptomet er følgende meddelelse (i dette tilfælde er SNA-registreringskoden ikke nødvendig):
db2 connect to <database> user <brugerid> SQL30081N Der er fundet en kommunikationsfejl. Kommunikationsprotokol Anvendt kommunikations-API: "CPI-C" Placering, hvor fejlen er opdaget: "". Kommunikationsfunktion, der opdagede fejlen: "cmsend". Protokolspecifikke fejlkoder: "9", "*", "0x10086021". SQLSTATE=08001
Problemet er, at TPNAME (Transaction Program Name) ikke er defineret korrekt på DB2 Connect-systemet. Du kan f.eks. have opdateret SNA-konfigurationen, men endnu ikke valideret den på DB2 Connect-gatewayen. Der er flere oplysninger i DB2 Connect Enterprise Edition for OS/2 and Windows Quick Beginnings eller DB2 Connect Personal Edition Kom godt i gang.
Symptomet er følgende meddelelse (SNA-registreringskoden er ikke nødvendig):
SQL30081N Der er fundet en kommunikationsfejl. Kommunikationsprotokol Anvendt kommunikations-API: "CPI-C" Placering, hvor fejlen er opdaget: "". Kommunikationsfunktion, der opdagede fejlen: "cmrcv". Protokolspecifikke fejlkoder: "10", "*", "*". SQLSTATE=08001
Kontrollér, at DB2 er installeret korrekt.
Hvis du bruger DB2 Connect til OS/2-gatewayen, kan du få vist følgende, hvis TP-navnet ikke er defineret korrekt:
Protokolspecifikke fejlkoder: "10", "*", "0x084C0000". SQLSTATE=08001
I det tilfælde skal navnet defineres som følger (i CM/2):
Transaction program name = 'tpname' (user defined) OS/2 program path and file name = notused
og (på næste konfigurationsskærmbillede i CM/2)
Presentation type - background Operation type - Queued, operator preloaded
SQL30081N Der er fundet en kommunikationsfejl. Kommunikationsprotokol Anvendt kommunikations-API: "CPI-C" Placering, hvor fejlen er opdaget: "". Kommunikationsfunktion, der opdagede fejlen: "xcstp". Protokolspecifikke fejlkoder: "20", "*", "*". SQLSTATE=08001
Sørg for, at SNA-subsystemet er startet på DB2 Connect-systemet.
Meddelelse SQL30081N modtages med returkode 27 og SNA-registreringskode 800Axxxx.
PIU (Path Information Unit) i VTAM er for stor.
SQL30081N Der er fundet en kommunikationsfejl. Kommunikationsprotokol Anvendt kommunikations-API: "SOCKETS" Placering fejlen er opdaget: "". Kommunikationsfunktion, der opdagede fejlen: "connect". Protokolspecifikke fejlkoder: "79", "*", "*". SQLSTATE=08001
Fejlen kan opstå i en situation, hvor en ekstern klient forsøger at oprette forbindelse til en DB2 Connect-gateway. Den kan også opstå ved oprettelse af forbindelse fra DB2 Connect-gatewayen til et værtssystem.
db2 update dbm cfg using diaglevel 4Når du har stoppet og genstartet DB2, skal du i filen db2diag.log kontrollere, at DB2 TCP/IP-kommunikationen er startet. Filen skal indeholde en indgang, der ligner følgende:
1999-02-03-12.41.04.861119 Instance:svtdbm2 Node:00 PID:86496(db2sysc) Appid:none common_communication sqlcctcp_start_listen Probe:80 DIA3000I "TCPIP"-protokollen er startet.
SQL30081N Der er fundet en kommunikationsfejl. Kommunikationsprotokol Anvendt kommunikations-API: "SOCKETS" Placering fejlen er opdaget: "9.21.85.159". Kommunikationsfunktion, der opdagede fejlen: "send". Protokolspecifikke fejlkoder: "10032", "*", "*". SQLSTATE=08001
Fejlmeddelelsen kan blive modtaget, når du prøver at afbryde forbindelsen til en maskine, hvor TCP/IP-kommunikationen allerede er afbrudt. Løs problemet med TCP/IP-subsystemet.
På de fleste maskiner kan problemet løses ved at genstarte TCP/IP-protokollen. Undertiden er det nødvendigt at genstarte hele maskinen.