Het hulpprogramma ddcstrc geeft een overzicht van de gegevens die zijn uitgewisseld tussen het DB2 Connect-werkstation (namens de databaseclient) en het beheersysteem van de host- of AS/400-databaseserver.
Voor databasebeheerders (of toepassingsontwikkelaars) is het wellicht nuttig om te begrijpen hoe deze informatiestroom werkt. Deze kennis kan helpen bij het achterhalen van de oorzaak van een bepaald probleem. U geeft bijvoorbeeld de database-instructie CONNECT TO op voor een host- of AS/400-databaseserver, maar u ontvangt een retourcode die aangeeft dat de opdracht is mislukt. Als u precies begrijpt welke informatie naar de host- of de AS/400-databaseserver is verzonden, kunt u misschien de oorzaak van de fout bepalen, zelfs wanneer de informatie in de retourcode algemeen is. Veel problemen worden veroorzaakt door eenvoudige gebruikersfouten.
De uitvoer van ddcstrc geeft een overzicht van de gegevensstromen die worden uitgewisseld tussen het DB2 Connect-werkstation en het beheersysteem van de host- of AS/400-databaseserver. Gegevens die naar de host- of de AS/400-databaseserver zijn verzonden, hebben het label SEND BUFFER. Gegevens die van de host- of de AS/400-databaseserver zijn ontvangen, hebben het label RECEIVE BUFFER.
Als een ontvangstbuffer SQLCA-informatie bevat, wordt deze gevolgd door een ingedeelde interpretatie van de gegevens en voorzien van het label SQLCA. Het veld SQLCODE van een SQLCA is de niet-toegewezen waarde die teruggezonden wordt door de host- of de AS/400-databaseserver. Zie voor meer informatie over toewijzen SQLCODE-toewijzing.) De verzend- en ontvangstbuffers worden binnen het bestand gerangschikt van de oudste naar de nieuwste. Elke buffer bevat:
De resterende gegevens in de verzend- en ontvangstbuffers zijn verdeeld in vijf kolommen die bestaan uit:
Raadpleeg voor meer informatie over DDM:
Deze opdracht wordt vanaf de opdrachtaanwijzing van het besturingssysteem opgeroepen met de onderstaande syntaxis:
Figuur 10. Syntaxis van de opdracht ddcstrc
![]() |
Opmerking: | Het is mogelijk dat de syntaxis van deze opdracht enigszins afwijkt op het besturingssysteem dat u gebruikt. Misschien wordt / gebruikt in plaats van - voor het besturingssysteem OS/2. |
De standaardwaarden zijn -r, -s en -c.
Opmerking: | Voor een client op afstand staat het proces-ID in het veld Agent-ID dat wordt teruggezonden door de Systeemmonitor voor databases. |
Het hulpprogramma ddcstrc schrijft de volgende informatie naar het traceerbestand:
Opmerkingen:
Op de volgende pagina's vindt u uitvoervoorbeelden van DRDA-gegevensstromen tussen DB2 Connect-werkstations en een host- of AS/400-databaseserver. Vanuit het oogpunt van de gebruiker is de databaseopdracht CONNECT TO opgegeven via de opdrachtregelinterface.
In Figuur 11 worden DB2 Connect Enterprise Edition Versie 7 en DB2 Universal Database for OS/390 Versie 5.1 gebruikt via een APPC-verbinding.
In Figuur 12 worden DB2 Connect Enterprise Edition Versie 7 en DB2 Universal Database for OS/390 Versie 5.1 gebruikt via een TCP/IP-verbinding.
Figuur 11. Voorbeeld van uitvoer van traceergegevens (APPC-verbinding)
1 DB2 fnc_data gateway_drda_ar sqljcsend (1.35.10.80) pid 95212; tid 537115484; node 0; cpid 0; sec 0; nsec 0; tpoint 177 SEND BUFFER: EXCSAT RQSDSS (ASCII) (EBCDIC) 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF 0123456789ABCDEF 0000 006AD04100010064 10410020115E8482 .j.A...d.A. .^.. .|}..........;db 0010 F282974040404040 4040404040404040 ...@@@@@@@@@@@@@ 2bp 0020 4040F0F0F0F1F7F3 C5C3000C116DA685 @@...........m.. 000173EC..._we 0030 81A2859340400013 115AC4C2F240C396 ....@@...Z...@.. asel ...]DB2 Co 0040 95958583A340F54B F200141404140300 .....@.K........ nnect 5.2....... 0050 0414440003240700 05240F0003000D11 ..D..$...$...... ................ 0060 47D8C4C2F261F6F0 F0F00085D0010002 G....a.......... .QDB2/6000.e}... 0070 007F200100162110 E2C1D56DC6D9C1D5 .. ...!....m.... ."......SAN_FRAN 0080 C3C9E2C3D6404040 40400006210F2407 .....@@@@@..!.$. CISCO ...... 0090 000D002FD8E3C4E2 D8D3C1E2C3000C11 .../............ ....QTDSQLASC... 00A0 2EE2D8D3F0F5F0F2 F0003C210437E2D8 .......... 3 DB2 fnc_data gateway_drda_ar sqljcsend (1.35.10.80) pid 95212; tid 537115484; node 0; cpid 0; sec 0; nsec 0; tpoint 177 SEND BUFFER: RDBCMM RQSDSS (ASCII) (EBCDIC) 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF 0123456789ABCDEF 0000 000AD00100010004 200E ........ . ..}....... 4 DB2 fnc_data gateway_drda_ar sqljcrecv (1.35.10.81) pid 95212; tid 537115484; node 0; cpid 0; sec 0; nsec 0; tpoint 178 RECEIVE BUFFER: ENDUOWRM RPYDSS (ASCII) (EBCDIC) 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF 0123456789ABCDEF 0000 002BD05200010025 220C000611490004 .+.R...%"....I.. ..}............. 0010 00162110E2C1D56D C6D9C1D5C3C9E2C3 ..!....m........ ....SAN_FRANCISC 0020 D640404040400005 211501000BD00300 .@@@@@..!....... O .......}.. 0030 0100052408FF ...$.. ...... 5 DB2 fnc_data gateway_drda_ar sqljmsca (1.35.10.108) pid 95212; tid 537115484; node 0; cpid 0; sec 0; nsec 0; tpoint 179 SQLCA SQLCAID: SQLCA SQLCABC: 136 SQLCODE: 0 SQLERRML: 0 SQLERRMC: SQLERRP: DSN SQLERRD[0->5]: 00000000, 00000000, 00000000, 00000000, 00000000, 00000000 SQLWARN(0->A): , , , , , , , , , , SQLSTATE: 00000 |
Figuur 12. Voorbeeld van uitvoer van traceergegevens (TCP/IP-verbinding)
1 DB2 fnc_data gateway_drda_ar sqljcsend (1.35.10.80) pid 80286; tid 537125164; node 0; cpid 0; sec 0; nsec 0; tpoint 177 SEND BUFFER: EXCSAT RQSDSS (ASCII) (EBCDIC) 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF 0123456789ABCDEF 0000 006ED04100010068 10410020115E8482 .n.A...h.A. .^.. .>}..........;db 0010 F282974040404040 4040404040404040 ...@@@@@@@@@@@@@ 2bp 0020 4040F0F0F0F1F3F9 F9C5000C116DA685 @@...........m.. 0001399E..._we 0030 81A2859340400013 115AC4C2F240C396 ....@@...Z...@.. asel ...]DB2 Co 0040 95958583A340F54B F200181404140300 .....@.K........ nnect 5.2....... 0050 0514740005240700 05240F0003144000 ..t..$...$....@. .............. . 0060 05000D1147D8C4C2 F261F6F0F0F00010 ....G....a...... .....QDB2/6000.. 0070 D0410002000A106D 000611A20003003C .A.....m.......< }......_...s.... 0080 D04100030036106E 000611A200030016 .A...6.n........ }......>...s.... 0090 2110E2C1D56DC6D9 C1D5C3C9E2C3D640 !....m.........@ ..SAN_FRANCISCO 00A0 40404040000C11A1 9781A2A2A6969984 @@@@............ ....password 00B0 000A11A0A4A28599 8984009CD0010004 ................ ....userid..}... 00C0 0096200100162110 E2C1D56DC6D9C1D5 .. ...!....m.... .o......SAN_FRAN 00D0 C3C9E2C3D6404040 40400006210F2407 .....@@@@@..!.$. CISCO ...... 00E0 000D002FD8E3C4E2 D8D3C1E2C3000C11 .../............ ....QTDSQLASC... 00F0 2EE2D8D3F0F5F0F2 F0003C210437E2D8 .......... 3 DB2 fnc_data gateway_drda_ar sqljcsend (1.35.10.80) pid 80286; tid 537125164; node 0; cpid 0; sec 0; nsec 0; tpoint 177 SEND BUFFER: RDBCMM RQSDSS (ASCII) (EBCDIC) 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF 0123456789ABCDEF 0000 000AD00100010004 200E ........ . ..}....... 4 DB2 fnc_data gateway_drda_ar sqljcrecv (1.35.10.81) pid 80286; tid 537125164; node 0; cpid 0; sec 0; nsec 0; tpoint 178 RECEIVE BUFFER: ENDUOWRM RPYDSS (ASCII) (EBCDIC) 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF 0123456789ABCDEF 0000 002BD05200010025 220C000611490004 .+.R...%"....I.. ..}............. 0010 00162110E2C1D56D C6D9C1D5C3C9E2C3 ..!....m........ ....SAN_FRANCISC 0020 D640404040400005 211501000BD00300 .@@@@@..!....... O .......}.. 0030 0100052408FF ...$.. ...... 5 DB2 fnc_data gateway_drda_ar sqljmsca (1.35.10.108) pid 80286; tid 537125164; node 0; cpid 0; sec 0; nsec 0; tpoint 179 SQLCA SQLCAID: SQLCA SQLCABC: 136 SQLCODE: 0 SQLERRML: 0 SQLERRMC: SQLERRP: DSN SQLERRD[0->5]: 00000000, 00000000, 00000000, 00000000, 00000000, 00000000 SQLWARN(0->A): , , , , , , , , , , SQLSTATE: 00000 |
In de traceergegevens is de volgende informatie vastgelegd:
De eerste buffer bevat de opdrachten Exchange Server Attributes (EXCSAT) en Access RDB (ACCRDB) die naar het beheersysteem van de host- of AS/400-databaseserver zijn gezonden. Deze worden verzonden als resultaat van een databaseopdracht CONNECT TO.
De volgende buffer bevat het antwoord dat DB2 Connect van het beheersysteem van de host of AS/400-databaseserver heeft ontvangen. Het bevat de opdrachten Exchange Server Attributes Reply Data (EXCSATRD) en Access RDB Reply Message (ACCRDBRM).
De opdracht EXCSAT bevat de naam van het werkstation van de client die wordt opgegeven door het object Server Name (SRVNAM). Volgens de specificatie van DDM is dit codepunt X'116D'. De opdracht EXCSAT staat in de eerste buffer. Binnen de opdracht EXCSAT worden de waarden X'116DA68581A28593' (gecodeerd in CCSID 500) vertaald naar weasel als X'116D' wordt verwijderd.
De opdracht EXCSAT bevat ook het object EXTNAM (External Name) dat vaak in diagnostische informatie op het beheersysteem van de host- of AS/400-database wordt geplaatst. Dit bestaat uit een 20-byte toepassings-ID gevolgd door een 8-byte proces-ID (of een 4-byte proces-ID en een 4-byte thread-ID). Het wordt weergegeven door codepunt X'115E'. In dit voorbeeld is de waarde db2bp_32, opgevuld met spaties en gevolgd door 0000BE5C. Op een UNIX-databaseclient kan deze waarde worden gecorreleerd met de opdracht ps. Deze zendt statusgegevens over de verwerking van actieve processen terug naar standaarduitvoer.
De opdracht ACCRDB bevat de RDB_NAME in het object RDBNAM. Dit is codepunt X'2110'. De opdracht ACCRDB volgt op de opdracht EXCSAT in de eerste buffer. Binnen de opdracht ACCRDB worden de waarden X'2110E2C1D56DC6D9C1D5C3C9E2C3D6' vertaald naar SAN_FRANCISCO als X'2110' wordt verwijderd. Dit komt overeen met het veld van de doeldatabasenaam in de DCS-directory.
De accountreeks heeft codepunt X'2104' (zie Chargeback accounting implementeren in DB2 Universal Database for OS/390).
De codeset die voor het DB2 Connect-werkstation is geconfigureerd, wordt weergegeven door het CCSID-object CCSIDSBC (CCSID voor enkelbytetekens) met codepunt X'119C' in de opdracht ACCRDB. In dit voorbeeld is CCSIDSBC X'0352', wat overeenkomt met 850.
Als de waarden CCSIDDBC (CCSID voor dubbelbytetekens) en CCSIDMBC (CCSID voor gemengde bytetekens) voor aanvullende objecten aanwezig zijn met de respectievelijke codepunten X'119D' en X'119E', dan wordt het DB2 Connect-werkstation geconfigureerd voor ondersteuning van de DBCS-codetabel. Omdat het voorbeelduitvoerbestand de twee aanvullende codepunten niet bevat, wordt het werkstation niet voor DBCS geconfigureerd.
Opmerking: | De TCP/IP-informatiestroom bevat twee nieuwe opdrachten: ACCSEC voor toegang tot beveiligingsbeheer en uitwisseling van ondersteunde beveiligingsmechanismen, en SECCHK met de verificatietokens die worden gebruikt om de eindgebruiker van de verbinding te verifiëren. ACCSEC en SECCHK komen alleen voor bij TCP/IP-verbindingen en wel tussen EXCSAT en ACCRDB. |
CCSID-waarden worden ook vanaf de host of de AS/400-databaseserver teruggezonden in de opdracht ACCRDBRM (Access RDB Reply Message) binnen de tweede buffer. Deze buffer bevat achtereenvolgens de opdrachten EXCSATRD en ACCRDBRM. Het voorbeelduitvoerbestand bevat voor de host of het AS/400-databaseserversysteem CCSID-waarden van 500 (X'01F4', SBCS CCSID).
Als DB2 Connect de codetabel die wordt teruggestuurd vanaf de host- of AS/400-databaseserver niet herkent, wordt SQLCODE -332 samen met de bron- en de doelcodetabellen teruggezonden naar de gebruiker. Als de host of de AS/400-databaseserver de codeset die vanaf DB2 Connect wordt verzonden niet herkent, wordt VALNSPRM (Parameter Value Not Supported met codepunt DDM X'1252') teruggezonden en vertaald naar SQLCODE -30073 voor de gebruiker.
De opdracht ACCRDBRM bevat ook de parameter PRDID (Product-specific Identifier met codepunt X'112E'). De waarde is X'C4E2D5F0F5F0F1F0'. Deze hexadecimale reeks komt overeen met DSN05010 in EBCDIC. Standaard is DSN DB2 for MVS/ESA of DB2 Universal Database for OS/390. De versie, 5.1, wordt ook aangegeven. ARI is DB2 for VSE & VM, SQL is DB2 Common Server en QSQ is DB2 Universal Database for AS/400.
U kunt de opeenvolgende verzend- en ontvangstbuffers analyseren om aanvullende informatie te verkrijgen. De derde buffer bevat een COMMIT-opdracht. Met commit wordt het beheersysteem van de host- of AS/400-databaseserver opgedragen om de wijzigingen van de huidige werkeenheid vast te leggen. De vierde buffer wordt ontvangen van het databasebeheersysteem van de host of AS/400-databaseserver als resultaat van het uitvoeren van een COMMIT- of een ROLLBACK-opdracht. Deze bevat een ENDUOWRM (End Unit of Work Reply Message) die aangeeft dat de huidige werkeenheid is beëindigd. In dit voorbeeld bevat het een null-SQLCA die wordt aangegeven door het DDM-codepunt X'2408' gevolgd door X'FF'. Een null-SQLCA (X'2408FF') geeft een succesvolle beëindiging aan (SQLCODE 0). Wanneer een ontvangstbuffer een SQLCA bevat (mogelijkerwijs een null-SQLCA), wordt deze ontvangstbuffer gevolgd door ddcstrc met een ingedeelde interpretatie van de SQLCA-informatie.
Figuur 13 toont een voorbeeld van een ontvangstbuffer met de SQLCA van een fout en de ingedeelde weergave van de SQLCA. Deze SQLCA is het resultaat van een poging om rijen te verwijderen uit een niet-bestaande tabel.
Figuur 13. Voorbeeld ontvangstbuffer
1 DB2 fnc_data gateway_drda_ar sqljcrecv (1.35.10.81) pid 48732; tid 1; node 0; cpid 0; sec 0; nsec 0; tpoint 178 RECEIVE BUFFER: SQLCARD OBJDSS (ASCII) (EBCDIC) 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF 0123456789ABCDEF 0000 0065D0030001005F 240800FFFFFF34F4 .e....._$.....4. ..}....^.......4 0010 F2F7F0F4C4E2D5E7 D6E3D34000E2C1D5 ...........@.... 2704DSNXOTL .SAN 0020 6DC6D9C1D5C3C9E2 C3D64040404040FF m.........@@@@@. _FRANCISCO . 0030 FFFE0C0000000000 000000FFFFFFFF00 ................ ................ 0040 0000000000000040 4040404040404040 .......@@@@@@@@@ ....... 0050 40400000000FC4C4 C3E2E4E2F14BD4E8 @@...........K.. ....DDCSUS1.MY 0060 E3C1C2D3C5 ..... TABLE 2 DB2 fnc_data gateway_drda_ar sqljmsca (1.35.10.108) pid 48732; tid 1; node 0; cpid 0; sec 0; nsec 0; tpoint 179 SQLCA SQLCAID: SQLCA SQLCABC: 136 SQLCODE: -204 SQLERRML: 15 SQLERRMC: DDCSUS1.MYTABLE SQLERRP: DSNXOTL SQLERRD[0->5]: FFFFFE0C, 00000000, 00000000, FFFFFFFF, 00000000, 00000000 SQLWARN(0->A): , , , , , , , , , , SQLSTATE: 42704 |