ddcstrc-funktionen registrerer de data, der udveksles mellem DB2 Connect-arbejdsstationen (på vegne af databaseklienten) og databasesystemet på værts- eller AS/400-serveren.
Det kan være nyttigt for databaseadministratorer og applikationsudviklere at forstå, hvordan datastrømmen fungerer, fordi den viden kan være en hjælp til at finde årsagen til et bestemt problem. Eksempel: Du afsender kommandoen CONNECT TO til en værts- eller AS/400-databaseserver, men du modtager en returkode, der viser, at kommandoen ikke blev udført. Hvis du kan se, hvilke oplysninger der er sendt til værts- eller AS/400-databaseserveren, kan du muligvis finde årsagen til fejlen, selv om oplysningerne i returkoden er generelle. Årsagen er ofte simple brugerfejl.
I output fra ddcstrc ses den datastrøm, der er udvekslet mellem DB2 Connect-arbejdsstationen og databasesystemet på værts- eller AS/400-serveren. Data, der sendes til værts- eller AS/400-databaseserveren, får navnet SEND BUFFER, og data, der modtages fra værts- eller AS/400-databaseserveren, får navnet RECEIVE BUFFER.
Hvis en modtagebuffer indeholder SQLCA-oplysninger, efterfølges den af en formateret udgave af oplysningerne med navnet SQLCA. SQLCODE-feltet i SQLCA indeholder den ikke-omdefinerede værdi, som den returneres af værts- eller AS/400-databaseserveren. Der er flere oplysninger om omdefinition af SQLCODE-værdier i Konvertering af SQLCODE-værdier. I filen er sende- og modtagebufferne opstillet fra den ældste til den nyeste. Hver buffer indeholder:
De øvrige data i sende- og modtagebuffere er inddelt i fem kolonner, der består af:
Der er flere oplysninger om DDM i:
Kommandoen udføres fra en kommandolinie i styresystemet med følgende syntaks:
Fig. 9. Syntaks for ddcstrc-kommandoen
![]() |
Bemærk: | Der kan være små variationer i kommandosyntaksen, afhængigt af det styresystem, der benyttes. I styresystemet OS/2 kan / f.eks. blive anvendt i stedet for -. |
Standardparametrene er -r, -s og -c.
Bemærk: | Ved eksterne klienter kan proces-id'en ses i feltet Agent-id, der returneres af databaseovervågningen. |
I forbindelse med en ddcstrc-sporing skrives følgende oplysninger til sporingsfilen:
Bemærkninger:
De følgende sider indeholder eksempler på DRDA-datastrømmen mellem DB2 Connect-arbejdsstationer og en værts- eller AS/400-databaseserver. Brugeren har afsendt kommandoen CONNECT TO fra DB2-kommandolinien.
I Fig. 10 bruges DB2 Connect Enterprise Edition Version 7 og DB2 Universal Database til OS/390 Version 5.1 over en APPC-forbindelse.
I Fig. 11 bruges DB2 Connect Enterprise Edition Version 7 og DB2 Universal Database til OS/390 Version 5.1 over en TCP/IP-forbindelse.
Fig. 10. Eksempel på sporingsoplysninger (APPC-forbindelse)
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 |
Fig. 11. Eksempel på sporingsoplysninger (TCP/IP-forbindelse)
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 |
Følgende oplysninger er indeholdt i sporingen:
Den første buffer indeholder de EXCSAT- (Exchange Server Attributes) og ACCRDB-kommandoer (Access RDB), der er sendt til værts- eller AS/400-databaseserveren. De sendes som resultat af databasekommandoen CONNECT TO.
Den næste buffer indeholder det svar, som DB2 Connect har modtaget fra databasesystemet på værts- eller AS/400-serveren. Den indeholder EXCSATRD (Exchange Server Attributes Reply Data) og ACCRDBRM (Access RDB Reply Message).
EXCSAT-kommandoen indeholder navnet på klientarbejdsstationen som angivet af SRVNAM-objektet (Server Name), der i overensstemmelse med DDM-specifikationen er tegnværdi X'116D'. EXCSAT-kommandoen findes i den første buffer. I EXCSAT-kommandoen oversættes værdien X'116DA68581A28593' (i CCSID 500-format) til weasel, når X'116D' er fjernet.
EXCSAT-kommandoen indeholder også EXTNAM-objektet (External Name), som ofte placeres i fejloplysninger i databasesystemet på værts- eller AS/400-serveren. Det består af en applikations-id på 20 byte efterfulgt af en proces-id på 8 byte (eller en proces-id på 4 byte og en programdels-id (thread) på 4 byte). Det repræsenteres af tegnværdien X'115E', og i dette eksempel er dets værdi db2bp_32 med efterstillede blanktegn og efterfulgt af 0000BE5C. På en UNIX-baseret databaseklient kan denne værdi korreleres vha. ps-kommandoen, som returnerer statusoplysninger om aktive processer til standardoutput.
ACCRDB-kommandoen indeholder RDB_NAME i RDBNAM-objektet, som er tegnværdi X'2110'. ACCRDB-kommandoen står efter EXCSAT-kommandoen i den første buffer. I ACCRDB-kommandoen oversættes værdien X'2110E2C1D56DC6D9C1D5C3C9E2C3D6' til SAN_FRANCISCO, når X'2110' er fjernet. Det svarer til feltet Måldatabasenavn i DCS-kataloget.
Forbrugs-id'en har tegnværdien X'2104' (se Forbrugsregistrering på DB2 Universal Database til OS/390).
Tegntabellen for DB2 Connect-arbejdsstationen kan ses ved at finde CCSID-objektet CCSIDSBC (CCSID for Single-Byte Characters) med tegnværdi X'119C' i ACCRDB-kommandoen. I dette eksempel er CCSIDSBC X'0352', hvilket svarer til tegntabel 850.
Hvis objekterne CCSIDDBC (CCSID for Double-Byte Characters) og CCSIDMBC (CCSID for Mixed-Byte Characters), med henholdsvis tegnværdi X'119D' og X'119E', findes, er DB2 Connect-arbejdsstationen konfigureret til at understøtte DBCS-tegntabeller. Da eksemplet på en sporingsfil ikke indeholder de to ekstra tegnværdier, er arbejdsstationen ikke konfigureret til DBCS.
Bemærk: | TCP/IP-datastrømmen indeholder to nye kommandoer: ACCSEC og SECCCHK. ACCSEC bruges til at aktivere sikkerhedsfunktionen og udveksle understøttede sikkerhedsmekanismer. SECCHK indeholder de valideringsoplysninger, der benyttes til at validere brugeren af forbindelsen. ACCSEC og SECCHK vises kun for TCP/IP-forbindelser. De er placeret mellem EXCSAT og ACCRDB. |
Der returneres også CCSID-værdier fra værts- eller AS/400-databaseserveren i ACCRDBRM (Access RDB Reply Message) i den anden buffer. Bufferen indeholder EXCSATRD efterfulgt af ACCRDBRM. Eksemplet på en sporingsfil indeholder CCSID-værdien 500 for værts- eller AS/400-databaseserveren (X'01F4', SBCS CCSID).
Hvis DB2 Connect ikke accepterer den tegntabel, der sendes fra værts- eller AS/400-databaseserveren, returneres SQLCODE -332 til brugeren med oplysning om kilde- og måltegntabel. Hvis værts- eller AS/400-databaseserveren ikke accepterer den tegntabel, der sendes af DB2 Connect, returneres VALNSPRM (Parameter Value Not Supported) med DDM-tegnværdi X'1252'), som konverteres til SQLCODE -30073 for brugeren.
ACCRDBRM indeholder også PRDID (Product-specific Identifier) med tegnværdi X'112E'. Værdien er X'C4E2D5F0F5F0F1F0'. Denne hexadecimale streng svarer til DSN05010 i EBCDIC. Ifølge standarderne er DSN DB2 til MVS/ESA eller DB2 Universal Database til OS/390. Versionen, 5.1, angives også. ARI er DB2 til VSE og VM, SQL er DB2 Common Server, og QSQ er DB2 Universal Database til AS/400.
Du kan finde flere oplysninger i efterfølgende sende- og modtagebuffere. Den tredje buffer indeholder en commit. Commit-kommandoen er en instruktion til databasesystemet på værts- eller AS/400-serveren om at udføre commit af den aktuelle unit of work. Den fjerde buffer modtages fra databasesystemet på værts- eller AS/400-serveren som resultat af en commit eller rollback. Den indeholder ENDUOWRM (End Unit of Work Reply Message), som angiver, at den aktuelle unit of work er afsluttet. I dette eksempel indeholder den en tom SQLCA, hvilket angives af DDM-tegnværdi X'2408' efterfulgt af X'FF'. En tom SQLCA (X'2408FF') angiver, at kommandoen er udført uden fejl (SQLCODE 0). Når en modtagebuffer indeholder en SQLCA (herunder en tom SQLCA), vil ddcstrc efter modtagebuffer indsætte en formateret udgave af SQLCA-oplysningerne.
I Fig. 12 vises et eksempel på en modtagebuffer, der indeholder en SQLCA med fejl og den formaterede udgave af SQLCA. Denne SQLCA skyldes et forsøg på at slette rækker i en tabel, der ikke findes.
Fig. 12. Eksempel på modtagebuffer
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 |