V tem razdelku so navedeni najpogostejši simptomi težav pri vzpostavljanju povezav, na katere lahko naletite med uporabo DB2 Connect. V vsakem primeru bo na voljo naslednje:
Opombe:
Včasih lahko kode zaznavanja SNA poiščete tudi tako, da pregledate sistemske dnevnike. Ali je to mogoče, je odvisno od podsistema SNA, ki ga uporabljate; včasih boste morali za pridobitev informacij o kodah zaznavanja ponoviti težavo z aktivnim sledenjem SNA.
Sporočili SQL0965 in SQL0969 sta lahko izdani z različnimi povratnimi kodami iz DB2 Universal Database za AS/400, DB2 Universal Database za OS/390, DB2 za MVS/ESA in DB2 za VM & VSE.
Če naletite na katerokoli izmed zgornjih sporočil, v dokumentaciji za strežnik baz podatkov, ki je izdal sporočilo, poiščite izvirno kodo SQL.
Kode SQL, ki ste jo prejeli iz baze podatkov gostitelja, ni mogoče prevesti. Na osnovi kode napake odpravite težavo, nato pa ponovite neuspeli ukaz.
Simbolično ciljno ime ni bilo definirano ali pa je bilo definirano napačno.
Do tega lahko na primer pride, če uporabljate vozlišče APPC in se simbolično ciljno ime, podano v imeniku vozlišč DB2, ne ujema s postavko CPI-C v konfiguraciji lokalnega komunikacijskega podsistema APPC.
Do te težave lahko pride tudi, če imate na računalniku nameščen več kot en sklad SNA. Preglejte stavka PATH in LIBPATH in zagotovite, da je sklad, ki ga želite uporabiti, naveden prvi.
SQL1403N Podano ime uporabnika in/ali geslo ni pravilno.
Če je potrebno, preverite, ali ste za stavek CONNECT podali pravilno geslo.
Če to ni potrebno, postavke imenika sistemske baze podatkov niste pravilno katalogizirali z uporabo strežnika za overjanje (če overjanja ne podate izrecno, je to privzetek). V tem primeru znova katalogizirajte postavko z uporabo DCS-ja ali odjemalca za overjanje.
Podpora za enega ali več komunikacijskih protokolov se ni uspela zagnati, Vendar pa se je osnovno delovanje upravljalnika baze podatkov uspešno zagnalo.
Morda protokol TCP/IP ni zagnan v prehodu DB2 Connect. Uspešna povezava z odjemalcem je bila lahko vzpostavljena že predhodno.
Če je diaglevel = 4, potem lahko db2diag.log vsebuje podobno postavko, kot je npr:
1997-05-30-14.09.55.321092 Primerek:svtdbm5 Vozlišče:000 PID:10296(db2tcpcm) IDapl:none common_communication sqlcctcpconnmgr_child Sonda:46 DIA3205E Naslov vtičnice "30090", konfiguriran v datoteki storitev TCP/IP, ki ga potrebuje podpora za strežnik TCP/IP, uporablja drug postopek.
To opozorilo kaže, da ima DB2 Connect, ki deluje kot prehod za oddaljene odjemalce, težave pri obravnavanju enega ali več komunikacijskih protokolov odjemalcev. Ti protokoli so lahko TCP/IP, APPC in drugi; sporočilo običajno kaže, da eden izmed komunikacijskih protokolov, ki je definiran za DB2 Connect, ni pravilno konfiguriran.
Pogosto je vzrok za to težavo v tem, da spremenljivka profila DB2COMM ni definirana, ali je definirana napačno. Običajno težava nastane kot posledica neujemanja spremenljivke DB2COMM in imen, definiranih v konfiguraciji Upravljalnika baz podatkov (na primer svcename, nname ali tpname).
Zgodi se lahko tudi, da ste povezavo predhodno uspešno vzpostavili, nato pa se sporočilo o napaki SQL5043 prikaže kljub temu, da konfiguracije niste spremenili. Do tega lahko pride, če uporabljate protokol TCP/IP in oddaljeni sistem iz nekega razloga nenormalno prekine povezavo. V tem primeru je obstoj povezave še vedno lahko prikazan na odjemalcu in povezavo bo mogoče obnoviti brez nadaljnjega posredovanja z uporabo spodnjih ukazov.
Najverjetneje je, da ima eden izmed odjemalcev, ki vzpostavlja povezavo s prehodom, na vratih TCP/IP še vedno ročko. V vseh odjemalskih delovnih postajah, ki so povezane s prehodom, izdajte naslednja ukaza:
SQL30020N Izvajanje ni uspelo zaradi napake porazdeljenega protokola, ki bo vplivala na uspešno izvajanje nadaljnjih ukazov in stavkov SQL.
Če pride do te napake, se obrnite na servisno službo.
V imeniku db2dump poiščite ffdc dump (pid.000). Nato to datoteko izpisa pomnilnika formatirajte z db2fdump in v nastali datoteki poiščite stavek "ERROR". Naveden bo lahko stavek MVS ABEND. V tem primeru za podrobnejše informacije preglejte ukazno mizo MVS in v priročniku DB2 for MVS Messages and Codes poiščite kodo abend.
SQL30060N "<pooblastitveni_ID>" nima pooblastila za izvajanje operacije "<operacija>".
Pri vzpostavljanju povezave z DB2 za MVS ali z DB2 za OS/390 tabele komunikacijske baze podatkov (CDB) niso bile pravilno ažurirane. Preglejte priročnika:
Vzpostavljate povezavo z napačnim nahajališčem strežnika baz podatkov gostitelja ali AS/400 - ciljne baze podatkov ni mogoče najti.
V postavki imenika DCS je morda podano napačno ime baze podatkov strežnika. Če pride do te težave, bo aplikaciji vrnjena koda 30061.
Preglejte postavke vozlišča, baze podatkov in imenika DCS DB2. Polje s ciljnim imenom baze podatkov v postavki imenika DCS se mora ujemati z imenom baze podatkov, ki temelji na platformi. Tako na primer za bazo podatkov DB2 Universal Database za OS/390 uporabite enako ime, kot ste ga uporabili v polju BSDS (Boot Strap Data Set) "LOCATION=locname", ki se prikaže tudi v sporočilu DSNL004I (LOCATION=location), ko zaženete pomožni program za porazdeljene podatke (DDF).
Priročnik Hitri začetki za DB2 Connect vsebuje zglede, ki kažejo, kako se ažurirajo katalogi DB2. V vseh poglavjih, ki opisujejo konfiguracijo SNA, preberite razdelek "Ažuriranje imenikov DB2" ali pa poglavje "Konfiguriranje baz podatkov gostitelja ali AS/400 za DB2 Connect" in razdelek "Konfiguriranje povezave TCP/IP".
Pravilni ukazi za vozlišče APPC ali APPN so:
db2 catalog appc node <ime_vozlišča> remote <ciljno_ime> security program db2 catalog dcs database <lokalno_ime> as <resnično_ime_baze_podatkov> db2 catalog database <lokalno_ime> as <vzdevek> at node <ime_vozlišča> authentication dcs
Pravilni ukazi za vozlišče TCP/IP so:
db2 catalog tcpip node <ime_vozlišča> remote <ime_ali_naslov_gostitelja> server <št_vrat_ali_ime_storitve> db2 catalog dcs database <lokalno_ime> as <resnično_ime_baze_podatkov> db2 catalog database <lokalno_ime> as <vzdevek> at node <ime_vozlišča> authentication dcs
Če želite vzpostaviti povezavo z bazo podatkov, izdajte naslednji ukaz:
db2 connect to <vzdevek> user <ime_uporabnika> using <geslo>
Sporočilo SQL30073 je izdano s povratno kodo 119C. Do te težave pride, če baza podatkov ciljnega strežnika ne podpira kodne strani, ki jo uporablja odjemalec DB2 (ki uporablja DB2 Connect). Kodna stran je pridobljena iz konfiguracije operacijskega okolja, v katerem se izvaja odjemalec DB2.
Dodatne informacije poiščite v Administration Guide.
To težavo lahko pogosto rešite tako, da v sistem baze podatkov ciljnega strežnika namestite popravek. Obrnite se na ustrezno službo za pomoč in uveljavite popravke, ki vam jih priporoči za ta simptom.
Uporabnik lahko težavo začasno reši tako, da s spremenljivko okolja DB2CODEPAGE nadomesti privzeto kodno stran. Preverite državne nastavitve ali pa nastavite DB2CODEPAGE=850.
Na platformah UNIX lahko uporabniki preklopijo v drugo kodno stran tako, da spremenljivko okolja LANG nastavijo na drugo vrednost.
Simptom je sestavljen iz naslednjega sporočila in iz kode zaznavanja SNA:
db2 connect to <ime_baze_podatkov> user <ID_uporabnika> Vnesite geslo za <ID_uporabnika>: SQL30081N Odkrita je bila komunikacijska napaka. Uporabljen komunikacijski protokol: "APPC". Uporabljen komunikacijski API: "CPI-C". Mesto, kjer je bila odkrita napaka: "". Komunikacijska funkcija, ki je odkrila napako: "cmallc". Koda napake, specifična za protokol: "1", "*", "0x10030021". SQLSTATE=08001
V tem primeru je koda zaznavanja 10030021.
Najpogostejše kode zaznavanja, ki so povezane s tem sporočilom o napaki, in predlagani ukrepi so naslednji:
SQL30081N s povratno kodo 1 in kodo zaznavanja SNA 0877002C
Podali ste napačno omrežno ime.
SQL30081N s povratno kodo 1 in s kodo zaznavanja SNA ffff0003
Podali ste napačen naslov MAC ali pa povezava SNA ni aktivna.
SQL30081N s povratno kodo 1 in s kodo zaznavanja SNA 10030021
V tipu LU je prišlo do neujemanja.
SQL30081N s povratno kodo 1 in s kodo zaznavanja SNA 084B6031
MAXDBAT v DSNZPARM (v DB2 za MVS ali v DB2 za gostitelja OS/390) je nastavljen na 0.
Drugi predlogi:
Sporočilo SQL30081N je izdano s povratno kodo 2 in s kodo zaznavanja SNA 08120022.
Parameter NUMILU v NCP (gostiteljski del povezave) je lahko nastavljen na privzetek (0). To morate preveriti, preden nadaljujete. Ko uveljavite spremembo, po potrebi pred vnovičnim poskusom spremenite definicijo NCP.
Simptom je naslednje sporočilo (koda zaznavanja SNA v tem primeru ni potrebna):
db2 connect to <baza_podatkov> user <ID_uporabnika> SQL30081N Odkrita je bila komunikacijska napaka. Uporabljen komunikacijski protokol: "APPC". Uporabljen komunikacijski API: "CPI-C". Mesto, kjer je bila odkrita napaka: "". Komunikacijska funkcija, ki je odkrila napako: "cmsend". Koda napake, specifična za protokol: "9", "*", "0x10086021". SQLSTATE=08001
Vzrok težave je ime programa za transakcije (TPNAME), ki v sistemu DB2 Connect ni pravilno definirano. Možno je, da ste ažurirali konfiguracijo SNA, niste pa je še preverili v prehodu DB2 Connect. Za podrobnejše podatke preglejte priročnik Hitri začetki za izdajo DB2 za podjetja za OS/2 in Windows ali Hitri začetki izdaje DB2 Connect za osebno uporabo.
Simptom je naslednje sporočilo (koda zaznavanja SNA ni potrebna):
SQL30081N Odkrita je bila komunikacijska napaka. Uporabljen komunikacijski protokol: "APPC". Uporabljen komunikacijski API: "CPI-C". Mesto, kjer je bila odkrita napaka: "". Komunikacijska funkcija, ki je odkrila napako: "cmrcv". Koda napake, specifična za protokol: "10", "*", "*". SQLSTATE=08001
Preverite, ali je DB2 pravilno nameščen.
Če uporabljate DB2 Connect za prehod OS/2, se lahko v primeru, da ime TP ni pravilno definirano, prikaže naslednje:
Koda napake, specifična za protokol: "10", "*", "0x084C0000". SQLSTATE=08001
V tem primeru bo v CM/2 definirana tako:
Ime programa za transakcije = 'tpname' (definira uporabnik) Ime datoteke in pot programa OS/2 = notused
in (na naslednjem konfiguracijskem zaslonu CM/2)
Tip predstavitve - ozadje Tip delovanja - v čakalni vrsti, operator je vnaprej naložen
SQL30081N Odkrita je bila komunikacijska napaka. Uporabljen komunikacijski protokol: "APPC". Uporabljen komunikacijski API: "CPI-C". Mesto, kjer je bila odkrita napaka: "". Komunikacijska funkcija, ki je odkrila napako: "xcstp". Koda napake, specifična za protokol: "20", "*", "*". SQLSTATE=08001
Preverite, ali je podsistem SNA zagnan v sistemu DB2 Connect.
Sporočilo SQL30081N je izdano s povratno kodo 27 in s kodo zaznavanja SNA 800Axxxx.
Informacijska enota poti (PIU) VTAM je prevelika.
SQL30081N Odkrita je bila komunikacijska napaka. Uporabljen komunikacijski protokol: "TCP/IP". Uporabljen komunikacijski API: "SOCKETS". Mesto, kjer je bila odkrita napaka: "". Komunikacijska funkcija, ki je odkrila napako: "connect". Koda napake, specifična za protokol: "79", "*", "*". SQLSTATE=08001
Do te težave lahko pride, če oddaljenemu odjemalcu ne uspe vzpostaviti povezave s prehodom DB2 Connect. Pojavi se lahko tudi pri vzpostavljanju povezave prehoda DB2 Connect z gostiteljem.
db2 update dbm cfg using diaglevel 4Ko DB2 zaustavite in znova zaženete, preglejte datoteko db2diag.log in preverite, ali so komunikacije TCP/IP DB2 zagnane. Prikaže se lahko izpis, podoben naslednjemu:
1998-02-03-12.41.04.861119 Primerek:svtdbm2 Vozlišče:00 PID:86496(db2sysc) Appid:none common_communication sqlcctcp_start_listen Vozlišče:80 DIA3000I Podpora za protokol "TCPIP" je bila uspešno zagnana.
SQL30081N Odkrita je bila komunikacijska napaka. Uporabljen komunikacijski protokol: "TCP/IP". Uporabljen komunikacijski API: "SOCKETS". Mesto, kjer je bila odkrita napaka: "9.21.85.159". Komunikacijska funkcija, ki je odkrila napako: "send". Koda napake, specifična za protokol: "10032", "*", "*". SQLSTATE=08001
To sporočilo o napaki se lahko prikaže, če poskusite prekiniti povezavo z delovni postajo, na kateri komunikacije TCP/IP ne delujejo več. Težavo odpravite s podsistemom TCP/IP.
V večini delovnih postaj lahko težavo odpravite tako, da za delovno postajo znova zaženete protokol TCP/IP. Včasih morate delovno postajo znova zagnati.