Deze paragraaf geeft een overzicht van de meestvoorkomende verbindingsproblemen bij het gebruik van DB2 Connect. Voor elk probleem wordt de volgende informatie verstrekt:
Opmerkingen:
In enkele gevallen kunnen SNA-aftastcodes worden bekeken door de systeemlogboeken te raadplegen. Of dit het geval is, hangt af van het SNA-subsysteem dat wordt gebruikt. In sommige gevallen moet u de fout opnieuw laten optreden terwijl de SNA-tracering actief is om de informatie over de aftastcode te verkrijgen.
De berichten SQL0965 en SQL0969 kunnen met een aantal verschillende retourcodes worden verzonden vanaf DB2 Universal Database for AS/400, DB2 Universal Database for OS/390, DB2 for MVS/ESA en DB2 for VM &VSE.
Wanneer u met een van beide berichten wordt geconfronteerd, moet u de oorspronkelijke SQL-code opzoeken in de documentatie van de databaseserver die het bericht verzendt.
De SQL-code die van de hostdatabase is ontvangen, kan niet worden vertaald. Corrigeer het probleem op basis van de foutcode en geef de opdracht opnieuw op.
De symbolische bestemming is niet of onjuist gedefinieerd.
Dit kan voorkomen wanneer er een APPC-knooppunt wordt gebruikt en de symbolische bestemming die is opgegeven in de DB2-knooppuntdirectory niet overeenkomt met een CPI-C-item in de lokale configuratie van het APPC-communicatiesubsysteem.
Een andere mogelijke oorzaak is dat er meer dan een stack op uw computer is geïnstalleerd. Wellicht moet u PATH en LIBPATH controleren om er zeker van te zijn dat eerst wordt verwezen naar de stack die u wilt gebruiken.
SQL1403N De gebruikersnaam en/of het wachtwoord is onjuist.
Zo ja, dan moet u controleren of het juiste wachtwoord is opgegeven in de instructie CONNECT.
Zo nee, dan is de systeemdatabasedirectory onjuist in de catalogus opgenomen met gebruik van AUTHENTICATION SERVER (dit is de standaardwaarde wanneer AUTHENTICATION onjuist is opgegeven). In dat geval kunt u dit item opnieuw in de catalogus opnemen door gebruik te maken van AUTHENTICATION DCS of CLIENT.
Ondersteuning van een of meer communicatieprotocollen is niet op de juiste manier gestart. De kernfuncties van Database Manager zijn echter wel correct gestart.
Wellicht is het protocol TCP/IP niet gestart op de gateway van DB2 Connect. Het is mogelijk dat een eerdere clientverbinding correct is gestart.
Als diaglevel = 4, kan db2diag.log een vergelijkbaar item bevatten, zoals:
1997-05-30-14.09.55.321092 Instance:svtdbm5 Node:000 PID:10296(db2tcpcm) Appid:none common_communication sqlcctcpconnmgr_child Probe:46 DIA3205E Het ingestelde socketadres "30090" in het bestand met TCP/IP-functies is vereist voor TCP/IP-serverondersteuning maar is in gebruik door een ander proces.
Deze waarschuwing geeft aan dat DB2 Connect, als gateway voor clients op afstand, moeite heeft met een of meer communicatieprotocollen van clients. Het kan hierbij gaan om TCP/IP, APPC of andere protocollen; het bericht geeft doorgaans aan dat een van de communicatieprotocollen voor DB2 Connect onjuist is geconfigureerd.
De oorzaak is vaak dat de profielvariabele niet of onjuist is gedefinieerd. In het algemeen wordt het probleem veroorzaakt doordat de variabele DB2COMM en de namen die in de configuratie van Database Manager zijn gedefinieerd niet overeenkomen (bijvoorbeeld svcename, nname of tpname).
In een mogelijk scenario is er een eerder succesvolle verbinding, waarbij vervolgens het foutbericht SQL5043 optreedt terwijl de configuratie niet is gewijzigd. Dit kan optreden bij gebruik van het protocol TCP/IP als het systeem op afstand de verbinding om een of andere reden abnormaal beëindigt. Wanneer dit gebeurt, lijkt het soms alsof er nog een verbinding op de client bestaat en kan de verbinding misschien zonder verdere tussenkomst worden hersteld door de onderstaande opdrachten op te geven.
Waarschijnlijk heeft een van de clientverbindingen met de gateway nog steeds een handle op de TCP/IP-poort. Geef op elke client die is verbonden met de gateway een van de volgende opdrachten op:
SQL30020N Een instructie kon niet worden uitgevoerd als gevolg van een fout in een distributieprotocol. Deze fout is van invloed op het correct uitvoeren van opeenvolgende opdrachten en SQL-instructies.
Bij deze fout moet u contact opnemen met een servicemedewerker.
Controleer de directory db2dump op een ffdc-dump (pid.000). Deel dit dumpbestand vervolgens in met db2fdump en zoek in het resulterende bestand op "ERROR". Hier vindt u mogelijk een MVS ABEND. Raadpleeg in dat geval de MVS-console voor aanvullende informatie en zoek de code voor abnormaal einde op in de handleiding DB2 for MVS Messages and codes.
SQL30060N "<machtigings-ID>" is niet gemachtigd om bewerking "<bewerking>" uit te voeren.
Bij het maken van een verbinding met DB2 for MVS of DB2 for OS/390, zijn de CDB-tabellen (Communications Database) onjuist bijgewerkt. Raadpleeg:
Er wordt een verbinding tot stand gebracht met een onjuiste locatie voor de host- of AS/400-databaseserver - er is geen doeldatabase gevonden.
Mogelijk is een onjuiste naam opgegeven voor de databaseserver in de DCS-directory. Wanneer dit gebeurt, wordt SQLCODE -30061 naar de toepassing teruggezonden.
Controleer het DB2-knooppunt, de database en de items van de DCS-directory. Het veld met de doeldatabasenaam in het DCS-directorygegeven moet overeenkomen met de naam van de database op het platform. Voor een DB2 Universal Database for OS/390 database moet bijvoorbeeld de naam worden gebruikt die ook is opgegeven in het BSDS-veld (Boot Strap Data Set) "LOCATION=locnaam" dat ook wordt vermeld in het bericht DSNL004I (LOCATION=locatie) wanneer de Distributed Data Facility (DDF) wordt gestart. Zie ook Het concept database en Databasedirectory's bijwerken.
In de handleiding Aan de slag met DB2 Connect vindt u ook voorbeelden om de DB2-catalogi bij te werken. Zie de paragraaf "De DB2-directory's bijwerken" in elk hoofdstuk waarin de SNA-configuratie wordt beschreven of het hoofdstuk "Host- en AS/400-databases configureren voor DB2 Connect" en de paragraaf "De TCP/IP-verbinding configureren".
De juiste opdrachten voor een APPC- of APPN-knooppunt zijn:
db2 catalog appc node <knooppuntnaam> remote <sym_best_naam> security program db2 catalog dcs database <lokale_naam> as <werkelijke_dbnaam> db2 catalog database <lokale_naam> as <alias> at node <knooppuntnaam> authentication dcs
De juiste opdrachten voor een TCP/IP-knooppunt zijn:
db2 catalog tcpip node <knooppuntnaam> remote <hostnaam_of_adres> server <poortnr_of_servicenaam> db2 catalog dcs database <lokale_naam> as <werkelijke_dbnaam> db2 catalog database <lokale_naam> as <alias> at node <knooppuntnaam> authentication dcs
Voor een verbinding met de database geeft u het volgende op:
b2 connect to <alias> user <gebruikersnaam> using <wachtwoord>
Bericht SQL30073 wordt verzonden met retourcode 119C. Dit gebeurt wanneer de doelserverdatabase de codetabel niet ondersteunt die wordt gebruikt door de DB2-client (via DB2 Connect). De codetabel wordt afgeleid van de configuratie van de verwerkingsomgeving waarin de DB2-client werkt.
Zie de Administration Guide voor meer informatie.
Dit probleem kan veelal worden opgelost door het installeren van een fix op het systeem van de doelserverdatabase. Vraag de desbetreffende serviceorganisatie naar een fix die dit probleem kan verhelpen.
Als tijdelijke oplossing kan de gebruiker de standaardcodetabel omzeilen door het instellen van de omgevingsvariabele DB2CODEPAGE. Controleer de locale of stel DB2CODEPAGE=850 in.
Op UNIX-platforms is de gebruiker mogelijk in staat om naar een andere codetabel over te schakelen door de omgevingsvariabele LANG op een andere waarde in te stellen.
Bij dit probleem wordt het volgende bericht verzonden met een SNA-aftastcode:
db2 connect to <databasenaam> user <gebruikers-id> Geef wachtwoord op voor <gebruikers-id>: SQL30081N Er is een communicatiefout gevonden. Communicatieprotocol dat wordt gebruikt: "APPC". Communicatie-API die wordt gebruikt: "CPI-C". Locatie waar de fout is opgetreden: "". Communicatiefunctie die de fout heeft vastgesteld: "cmallc". Protocolspecifieke foutcode(s): "1", "*", "0x10030021". SQLSTATE=08001
In dit voorbeeld is de aftastcode 10030021.
De meest voorkomende aftastcodes bij dit foutbericht en de aanbevolen oplossingen in deze gevallen zijn:
SQL30081N met retourcode 1 en SNA-aftastcode 0877002C
Er is een onjuiste netwerknaam opgegeven.
SQL30081N met retourcode 1 en SNA-aftastcode ffff0003
Er is een onjuist MAC-adres opgegeven of de SNA-koppeling is niet actief.
SQL30081N met retourcode 1 en SNA-aftastcode 10030021
Het LU-type komt niet overeen.
SQL30081N met retourcode 1 en SNA-aftastcode 084B6031
MAXDBAT in DSNZPARM (op een DB2 for MVS- of DB2 for OS/390-host) is ingesteld op 0.
Andere suggesties zijn:
Bericht SQL30081N wordt ontvangen met retourcode 2 en SNA-aftastcode 08120022.
De parameter NUMILU op de NCP (hostzijde van de koppeling) kan zijn ingesteld op de standaardwaarde (0). Controleer dit. Wijzig voordat u het opnieuw probeert zonodig de NCP-definitie nadat u de wijziging hebt geactiveerd.
Het volgende bericht wordt verzonden (de SNA-aftastcode is in dit geval niet vereist.):
db2 connect to <database> user <gebruikers-id> SQL30081N Er is een communicatiefout gevonden. Communicatieprotocol dat wordt gebruikt: "APPC". Communicatie-API die wordt gebruikt: "CPI-C". Locatie waar de fout is opgetreden: "". Communicatiefunctie die de fout heeft vastgesteld: "cmsend". Protocolspecifieke foutcode(s): "9", "*", "0x10086021". SQLSTATE=08001
De naam van het transactieprogramma (TPNAME) is onjuist gedefinieerd op het DB2 Connect-systeem. U hebt bijvoorbeeld wel uw SNA-configuratie bijgewerkt, maar deze nog niet op de DB2 Connect-gateway geverifieerd. Raadpleeg DB2 Connect Enterprise Edition for OS/2 and Windows NT Quick Beginnings of Aan de slag met DB2 Connect Personal Edition voor meer details.
Het volgende bericht wordt verzonden (de SNA-aftastcode is niet vereist):
SQL30081N Er is een communicatiefout gevonden. Communicatieprotocol dat wordt gebruikt: "APPC". Communicatie-API die wordt gebruikt: "CPI-C". Locatie waar de fout is opgetreden: "". Communicatiefunctie die de fout heeft vastgesteld: "cmrcv". Protocolspecifieke foutcode(s): "10", "*", "*". SQLSTATE=08001
Controleer of DB2 op de juiste manier is geïnstalleerd.
Als u gebruikmaakt van een DB2 Connect voor OS/2-gateway, kunt u het volgende bericht zien als de TP-naam niet juist is gedefinieerd:
Protocolspecifieke foutcode(s): "10", "*", "0x084C0000". SQLSTATE=08001
In CM/2 moet u deze naam bijvoorbeeld als volgt definiëren:
Transaction program name = 'tpname' (user defined) OS/2 program path and file name = notused
en (in het volgende configuratiescherm van CM/2)
Presentation type - background Operation type - Queued, operator preloaded
SQL30081N Er is een communicatiefout gevonden. Communicatieprotocol dat wordt gebruikt: "APPC". Communicatie-API die wordt gebruikt: "CPI-C". Locatie waar de fout is opgetreden: "". Communicatiefunctie die de fout heeft vastgesteld: "xcstp". Protocolspecifieke foutcode(s): "20", "*", "*". SQLSTATE=08001
Controleer of het SNA-subsysteem is gestart op het DB2 Connect-systeem.
Bericht SQL30081N is ontvangen met retourcode 27 en SNA-aftastcode 800Axxxx.
De VTAM-padinformatie (PIU) is te groot.
SQL30081N Er is een communicatiefout gevonden. Communicatieprotocol dat wordt gebruikt: "TCP/IP". Communicatie-API die wordt gebruikt: "SOCKETS". Locatie waar de fout is opgetreden: "". Communicatiefunctie die de fout heeft vastgesteld: "connect". Protocolspecifieke foutcode(s): "79", "*", "*". SQLSTATE=08001
Deze fout kan optreden wanneer een client op afstand er niet in slaagt een verbinding te maken met een DB2 Connect-gateway. Het probleem kan zich ook voordoen wanneer er een verbinding tot stand wordt gebracht van een DB2 Connect-gateway met een host.
db2 update dbm cfg using diaglevel 4Bekijk na het beëindigen en opnieuw opstarten het bestand db2diag.log om te controleren of de DB2 TCP/IP-communicatie is gestart. De uitvoer moet er ongeveer als volgt uitzien:
1998-02-03-12.41.04.861119 Instance:svtdbm2 Node:00 PID:86496(db2sysc) Appid:none common_communication sqlcctcp_start_listen Probe:80 DIA3000I Protocolondersteuning van "TCPIP" is gestart.
SQL30081N Er is een communicatiefout gevonden. Communicatieprotocol dat wordt gebruikt: "TCP/IP". Communicatie-API die wordt gebruikt: "SOCKETS". Locatie waar de fout is opgetreden: "9.21.85.159". Communicatiefunctie die de fout heeft vastgesteld: "send". Protocolspecifieke foutcode(s): "10032", "*", "*". SQLSTATE=08001
Dit foutbericht kan worden ontvangen wanneer wordt geprobeerd de verbinding te verbreken met een computer waarop TCP/IP-communicatie al is mislukt. Corrigeer het probleem met het TCP/IP-subsysteem.
Op de meeste computers kan het probleem worden opgelost door het TCP/IP-protocol opnieuw te starten. Soms is het nodig om de communicatie opnieuw te configureren.