Ez a fejezet a DB2 Connect termék használatakor leggyakrabban jelentkező hibajelenségeket (tüneteket) sorolja fel. Minden probléma esetén a fejezetben megtalálhatja az alábbi információkat:
Megjegyzések:
Néha az SNA értelmezési kódok megtalálhatók a rendszernaplókban. Hogy ez az adott esetben megtehető-e, az a használt SNA alrendszertől függ. Némely esetben az értelmezési kódok csak úgy kaphatók meg, ha újra előállítja a problémát aktív SNA nyomkövetés közben.
Az SQL0965 és SQL0969 üzenetek több különböző visszatérési kóddal jelenhetnek meg a DB2 Universal Database for AS/400, DB2 Universal Database for OS/390, DB2 for MVS/ESA és DB2 for VM &VSE rendszerek esetében.
Ha ezekkel az üzenetekkel találkozik, keresse meg az eredeti SQL kódot az üzenetet kiadó adatbázis-kiszolgáló termék leírásában.
A gazdaadatbázisból kapott SQL kód nem lefordítható. A hibakód alapján hárítsa el a problémát, és küldje el újra a meghiúsult parancsot.
Nincs, vagy nem megfelelően van a jelképes célnév meghatározva.
Ez például akkor történhet, ha APPC csomópontot használnak és a DB2 csomópont-katalógusban megadott jelképes célnév nem egyezik a helyi APPC kommunikációs alrendszer konfigurációban lévő CPI-C bejegyzéssel.
Egy másik lehetséges ok, ha több SNA verem van telepítve a gépen. A PATH és LIBPATH környezeti változók ellenőrzésével győződhet meg arról, hogy a használni kívánt veremre hivatkozik-e először.
SQL1403N A megadott felhasználói név és/vagy jelszó érvénytelen.
Ha igen, ellenőrizze, hogy (ennek szükségességekor) a megfelelő jelszó van-e megadva a CONNECT utasításban.
Ha nem, akkor a rendszeradatbázis-katalógus bejegyzése az AUTHENTICATION SERVER segítségével, helytelenül keletkezett (ez az alapértelmezett, ha az AUTHENTICATION nincsen kifejezetten megadva). Ebben az esetben AUTHENTICATION DCS vagy CLIENT használatával vegye fel újra a bejegyzést a katalógusba.
Egy vagy több kommunikációs protokolltámogatás indítása meghiúsult. Az alapvető adatbáziskezelő működése azonban sikeresen elindult.
Lehet, hogy a TCP/IP protokoll nem indult el a DB2 Connect átjárón. Lehet, hogy már volt előzőleg sikeres ügyfélkapcsolat.
Ha a diaglevel = 4, akkor a db2diag.log fájlban lehet egy hasonló bejegyzés, például:
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.
Ez a figyelmeztetés azt jelzi, hogy a távoli ügyfelek számára átjáróként működő DB2 Connect egyes ügyfél kommunikációs protokollokat nem képes kezelni. Ezek lehetnek TCP/IP, APPC és egyéb protokollok, és az üzenet általában arra utal, hogy a DB2 számára meghatározott kommunikációs protokollok egyike nincsen megfelelően konfigurálva.
Az ok gyakran az, hogy a DB2COMM profilváltozó nincs, vagy helytelenül van meghatározva. Rendszerint a probléma a DB2COMM változó és az adatbáziskezelő konfigurációjában meghatározott nevek (pl. svcename, nname vagy tpname) közötti eltérésből adódik.
Egy lehetséges eset, ha egy korábban sikeres kapcsolat használata során érkezik az SQL5043 hibaüzenet, miközben a konfiguráció változatlan maradt. Ez TCP/IP protokoll használata közben állhat elő, amikor a távoli rendszer valamilyen okból rendellenesen fejezi be a kapcsolatot. Ha ez történik, az ügyfélen úgy tűnhet, hogy a kapcsolat még mindig létezik, és lehet, hogy további beavatkozás nélkül még visszaállítható a kapcsolat az alábbi parancsok kiadásával.
Valószínűleg az átjáróhoz kapcsolódó ügyfelek egyike még hozzáfér a TCP/IP porthoz. Minden, az átjáróhoz kapcsolódó ügyfél gépen kiadandóak a következő parancsok:
SQL30020N A végrehajtás elosztott protokoll hiba miatt hiúsult meg, amely kihatással lesz az ezután következő parancsok és SQL utasítások sikeres végrehajtására is.
E hiba esetén forduljon a ügyfélszolgálathoz.
Keresse meg a db2dumpkönyvtárban az ffdc memóriakiíratást (pid.000). Ezután formázza ezt a memóriakiíratás fájlt a db2fdump segítségével, és keresse meg az eredményfájlban az "ERROR"-t! Lehet, hogy itt talál egy MVS ABEND bejegyzést. Ebben az esetben további információt talál az MVS kezelőpulton, és keresse meg a rendellenes befejezés kódot a DB2 for MVS Messages and Codes kézikönyvben!
SQL30060N "<jogosultságazonosító>" nem rendelkezik a <művelet>" művelet végrehajtásához szükséges jogosultságokkal.
A DB2 for MVS vagy a DB2 for OS/390 termékhez kapcsolódáskor a Kommunikációs adatbázis (CDB, Communications database) táblák nincsenek megfelelően frissítve. Erről többet:
Nem a megfelelő gazdagép vagy AS/400 adatbázis-kiszolgáló helyhez kapcsolódott - nem található céladatbázis.
Lehet, hogy a DCS katalógusbejegyzésben van a rossz kiszolgáló adatbázis megadva. Ha ez a helyzet, az alkalmazáshoz az SQLCODE -30061 visszatérési kód érkezik.
Ellenőrizze a DB2 csomópontot, az adatbázist és a DCS katalógusbejegyzéseket! A DCS katalógusbejegyzésben lévő céladatbázis-név mezőnek a környezettől függően meg kell egyeznie az adatbázis nevével. Például DB2 Universal Database for OS/390 adatbázis esetében a használandó név meg kell egyezzen a rendszerbetöltő adathalmaz (Boot Strap Data Set, BSDS) "LOCATION=locname" mezőjében lévővel, amely a DSNL004I üzenetben is (LOCATION=location) szerepel az elosztott adat szolgáltatás (Distributed Data Facility, DDF) indulásakor. Erről bővebben az alábbi helyeken olvashat: helyeken: Az adatbázis fogalma és Az adatbázis-hozzáférési katalógusok frissítése.
A DB2 Connect Repülőrajt kézikönyvben is vannak példák DB2 katalógusok frissítésére. Tekintse át a "DB2 katalógusok frissítése" című szakaszokat az SNA konfigurációt leíró fejezetekben, vagy tekintse át a "Gazda vagy AS/400 adatbázisok konfigurálása DB2 Connect esetén" és a "TCP/IP kapcsolat konfigurálása" című szakaszt!
A helyes parancsok APPC vagy APPN csomópont esetén:
db2 catalog appc node <csomópontnév> remote <jelképes_célnév> security program db2 catalog dcs database <helyi_név> as <valódi_adatbázisnév> db2 catalog database <helyi_név> as <fedőnév> at node <csomópontnév> authentication dcs
TCP/IP csomópont esetén a megfelelő parancsok:
db2 catalog tcpip node <csomópontnév> remote <gazdanév_vagy_cím> server <portszám_vagy_szolgáltatásnév> db2 catalog dcs database <helyi_név> as <valódi_adatbázisnév> db2 catalog database <helyi_név> as <fedőnév> at node <csomópontnév> authentication dcs
Ezután a következő parancs kiadásával kapcsolódhat az adatbázishoz:
db2 connect to <fedőnév> user <felhasználói_név> using <jelszó>
Az SQL30073 üzenet a 119C visszatérési kóddal jön létre. Ez akkor történik, ha a cél kiszolgáló adatbázis nem támogatja a (DB2 Connect terméken keresztül kapcsolódó) DB2 ügyfél által használt kódlapot. A kódlap a DB2 ügyfelet futtató működési környezet konfigurációjából származik.
További információt talál a következő helyen: Administration Guide.
Ezt a problémát általában úgy oldhatja meg, hogy egy javítást telepít a cél kiszolgáló adatbázis rendszerbe. Lépjen kapcsolatba a megfelelő szolgáltató szervezettel és szerezze be, illetve alkalmazza azokat a javításokat, amelyeket a tünetre javasolnak!
Ideiglenesen úgy kerülheti meg a problémát, ha felülbírálja az alapértelmezett kódlapot a DB2CODEPAGE környezeti változó beállításával. Ellenőrizze a területi beállításokat vagy állítsa be a változó értékét a következőképpen: DB2CODEPAGE=850.
UNIX környezetekben lehet, hogy a felhasználó át tud kapcsolni egy másik kódlapra, ha a LANG környezeti változót más értékre állítja.
A tünet a következő üzenet és egy SNA értelmezési kód:
db2 connect to <adatbázisnév> user <felhasználói_azonosító> Enter password for <felhasználói_azonosító>: SQL30081N A communication error has been detected. Communication protocol being used: "APPC". Communication API being used: "CPI-C". Location where the error was detected: "". Communication function detecting the error: "cmallc". Protocol specific error code(s): "1", "*", "0x10030021". SQLSTATE=08001
Ebben a mintában az érzékelési kód 10030021.
Az ezen hibaüzenettel társított leggyakoribb érzékelési kódok és ezen esetek megoldására tett javaslatok a következők:
SQL30081N 1 visszatérési kóddal és 0877002C SNA értelmezési kóddal
Rossz hálózatnév van megadva.
SQL30081N 1 visszatérési kóddal és ffff0003 SNA értelmezési kóddal
Rossz MAC cím van megadva, vagy az SNA csatolás nem aktív.
SQL30081N 1 visszatérési kóddal és 10030021 SNA értelmezési kóddal
LU típus nem egyezik.
SQL30081N 1 visszatérési kóddal és 084B6031 SNA értelmezési kóddal
DB2 for MVS vagy DB2 for OS/390 gazdagépen a DSNZPARM-ban lévő MAXDBAT értéke 0.
Más javaslatok:
Az SQL30081N üzenet 2 visszatérési kóddal és 08120022 SNA értelmezési kóddal érkezik.
Az NCP-n (a csatolás gazdagép végén) lévő NUMILU paraméter esetleg az alapértékre (0) van állítva. Ellenőrizze! A szükséges módosítás végrehajtása után próbálkozzon újra!
A tünet a következő üzenet (az SNA értelmezési kód nem kötelező ebben az esetben):
db2 connect to <adatbázis> user <felhasználói_azonosító> SQL30081N A communication error has been detected. Communication protocol being used: "APPC". Communication API being used: "CPI-C". Location where the error was detected: "". Communication function detecting the error: "cmsend". Protocol specific error code(s): "9", "*", "0x10086021". SQLSTATE=08001
A probléma az, hogy a tranzakcióprogram-név (TPNAME) nincs helyesen meghatározva a DB2 Connect rendszeren. Lehet például, hogy frissítette az SNA konfigurációt, de még nem ellenőrizte a DB2 Connect átjárónál. További részleteket talál a következő kézikönyvekben: DB2 Connect Enterprise Edition for OS/2 and Windows Quick Beginnings vagy DB2 Connect Personal Edition Repülőrajt.
A tünet a következő üzenet (az SNA értelmezési kód nem kötelező):
SQL30081N A communication error has been detected. Communication protocol being used: "APPC". Communication API being used: "CPI-C". Location where the error was detected: "". Communication function detecting the error: "cmrcv". Protocol specific error code(s): "10", "*", "*". SQLSTATE=08001
Ellenőrizze, hogy a DB2 helyesen van-e telepítve.
Ha DB2 Connect for OS/2 átjárót használ, a következőt fogja látni, ha a TP (tranzakcióprogram) -név nincsen megfelelően meghatározva:
Protocol specific error code(s): "10", "*", "0x084C0000". SQLSTATE=08001
Például CM/2-ben ebben az esetben így kell a TP nevet meghatározni:
Transaction program name = 'tpname' (a felhasználó adja meg) OS/2 program path and file name = notused
és (a következő CM/2 konfigurációs képernyőn)
Presentation type - background Operation type - Queued, operator preloaded
SQL30081N A communication error has been detected. Communication protocol being used: "APPC". Communication API being used: "CPI-C". Location where the error was detected: "". Communication function detecting the error: "xcstp". Protocol specific error code(s): "20", "*", "*". SQLSTATE=08001
Ellenőrizze, hogy elindult-e az SNA alrendszer a DB2 Connect rendszeren!
Az SQL30081N üzenet 27-es visszatérési kóddal és 800Axxxx SNA értelmezési kóddal érkezik.
A VTAM elérési útvonal tájékoztató egység (Path Information Unit, PIU) túl nagy.
SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "". Communication function detecting the error: "connect". Protocol specific error code(s): "79", "*", "*". SQLSTATE=08001
Ez a hiba akkor fordulhat elő, ha egy távoli ügyfél nem kapcsolódik DB2 Connect átjáróhoz. Akkor is előfordulhat, ha valaki a DB2 Connect átjáróról gazdagépre kapcsolódik.
db2 update dbm cfg using diaglevel 4A DB2 leállítása és újraindítása után nézze meg a db2diag.log fájlban, hogy a DB2 TCP/IP kommunikáció elindult-e. Az alábbihoz hasonló kimenetet kell találnia:
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 A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "9.21.85.159". Communication function detecting the error: "send". Protocol specific error code(s): "10032", "*", "*". SQLSTATE=08001
Ezt a hibaüzenetet akkor kaphatja, amikor olyan géptől próbál szétkapcsolódni, amelyen a TCP/IP kommunikáció már meghiúsult. Hárítsa el a problémát a TCP/IP alrendszerben.
A legtöbb gépen a TCP/IP protokoll egyszerű újraindítása megoldja a problémát. Néha az egész számítógép újraindítására is szükség lehet.