Funksjonen ddcstrc inneholder et register over dataene som ble utvekslet mellom DB2 Connect-arbeidsstasjonen (på vegne av databaseklienten) og styresystemet for verts- eller AS/400-databasetjeneren.
Som databaseansvarlig (eller applikasjonsutvikler) kan det være nyttig å forstå hvordan denne dataflyten fungerer, siden det kan hjelpe deg å finne ut årsaken til et bestemt problem. Tenk deg at du utsteder databasesetningen CONNECT TO for en verts- eller AS/400-databasetjener, men kommandoen mislykkes og du mottar en returkode som indikerer feil. Hvis du forstår nøyaktig hvilken informasjon som ble formidlet til styresystemet for verts- eller AS/400-databasetjeneren, kan du finne årsaken til feilen selv om returkodeinformasjonen er generell. Mange feil skyldes enkle brukerfeil.
Utdata fra ddcstrc viser datastrømmene som ble utvekslet mellom DB2 Connect-arbeidsstasjonen og styresystemet for verts- eller AS/400-databasetjeneren. Data som ble sent til verts- eller AS/400-databasetjeneren, blir kalt SEND BUFFER og data som blir mottatt fra verts- eller AS/400-databasetjeneren, blir kalt RECEIVE BUFFER.
Hvis en mottaksbuffer inneholder SQLCA-informasjon, blir den etterfulgt av en formatert tolkning av disse dataene og kalt SQLCA. SQLCODE-feltet for en SQLCA-verdi er den ukonverterte verdien som blir returnert av verts- eller AS/400-databasetjeneren. (Du finner flere opplysninger om konvertering i SQLCODE-konvertering.) Sende- og mottaksbufferne blir sortert fra den eldste til den nyeste i filen. Hver buffer har:
Resten av dataene i sende- og mottaksbuffere er delt inn i fem kolonner, som består av:
Du finner flere opplysninger om DDM i:
Denne kommandoen blir startet fra operativsystemklarmeldingen med denne syntaksen:
Figur 9. Syntaks for ddcstrc-kommandoen
![]() |
Merk: | Syntaksen til denne kommandoen kan variere avhengig av hvilket operativsystem du bruker. For OS/2 kan for eksempel / brukes i stedet for -. |
Standardverdien er -r, -s og -c.
Merk: | For en fjerntliggende klient kan du finne pid i feltet for agent-ID som databasesystemovervåkeren returnerer. |
ddcstrc-funksjonen skriver disse opplysningene til sporingsfilen:
Merknader:
Sidene som følger, viser utdataeksempler som illustrerer noen DRDA-datastrømmer som blir utvekslet mellom DB2 Connect-arbeidsstasjonene og en verts- eller AS/400-databasetjener. Fra brukerens synspunkt er det utført en CONNECT TO-databasekommando ved hjelp av kommandolinjebehandleren.
I Figur 10 ser du et eksempel på DB2 Connect Enterprise Edition versjon 7 og DB2 Universal Database for OS/390 versjon 5.1 over en APPC-tilkobling.
I Figur 11 ser du et eksempel på DB2 Connect Enterprise Edition versjon 7 og DB2 Universal Database for OS/390 versjon 5.1 over en TCP/IP-tilkobling.
Figur 10. Eksempel på sporingsutdata (APPC-tilkobling)
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 |
Figur 11. Eksempel på sporingsutdata (TCP/IP-tilkobling)
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 |
Disse opplysningene blir registrert i sporingene:
Den første bufferen inneholder kommandoene EXCSAT (Exchange Server Attributes) og ACCRDB (Access RDB), som ble sendt til styresystemet for verts- eller AS/400-databasetjeneren. De sendes som et resultat av en CONNECT TO-databasekommando.
Den neste bufferen inneholder svaret som DB2 Connect mottok fra styresystemet til verts- eller AS/400-databasetjeneren. Det inneholder kommandoen EXCSATRD (Exchange Server Attributes Reply Data) og ACCRDBRM (Access RDB Reply Message).
EXCSAT-kommandoen inneholder arbeidsstasjonsnavnet for klienten som ble oppgitt av objektet SRVNAM (Server Name), som i følge DDM-spesifikasjonen er kodeverdien X'116D'. EXCSAT-kommandoen ligger i den første bufferen. I EXCSAT-kommandoen blir X'116DA68581A28593'-verdiene (kodet i CCSID 500) konvertert til weasel når X'116D' blir fjernet.
EXCSAT-kommandoen inneholder også objektet EXTNAM (External Name), som ofte blir tatt med i feilsøkingsinformasjon i styresystemet for verts- eller AS/400-databasetjeneren. Det består av en applikasjons-ID på 20 byte etterfulgt av en prosess-ID på 8 byte (eller prosess-ID på 4 byte og tråd-ID på 4 byte). Den blir representert av kodeverdien X'115E', og i dette eksempelet er verdien db2bp_32 fylt ut med blanktegn og etterfulgt av 0000BE5C. På en UNIX-basert databaseklient kan denne verdien korreleres med ps-kommandoen, som returnerer prosesstatusinformasjon om aktive prosesser til standard utdata.
ACCRDB-kommandoen inneholder RDB_NAME i RDBNAM-objektet, som er kodeverdi X'2110'. ACCRDB-kommandoen etterfølger EXCSAT-kommandoen i den første bufferen. I ACCRDB-kommandoen blir X'2110E2C1D56DC6D9C1D5C3C9E2C3D6'-verdiene konvertert til SAN_FRANCISCO når X'2110' blir fjernet. Dette tilsvarer feltet for navn på måldatabase i DCS-katalogen.
Registreringsstrengen har kodeverdien X'2104' (les Implementere bruk av belastningskonto i DB2 Universal Database for OS/390).
Kodesettet som er konfigurert for DB2 Connect-arbeidsstasjonen, blir vist ved å finne CCSID-objektet CCSIDSBC (CCSID for enkeltbytetegn) med kodeverdien X'119C' i ACCRDB-kommandoen. I dette eksempelet er CCSIDSBC X'0352', som er 850.
Hvis CCSIDDBCen for tilleggsobjekter (CCSID for dobbeltbytetegn) og CCSIDMBC (CCSID for tegn med blandede byte), med henholdsvis kodeverdien X'119D' og X'119E', finnes, er DB2 Connect-arbeidsstasjonen konfigurert for DBCS-kodesettstøtte. Siden eksempelutdatafilen ikke inneholder de to tilleggskodeverdiene, er ikke arbeidsstasjonen konfigurert for dobbeltbytetegnsett (DBCS).
Merk: | TCP/IP-flyt inneholder to nye kommandoer: ACCSEC som blir brukt til å få tilgang til sikkerhetsstyreren og utveksle støttede sikkerhetsmetoder, og SECCHK, som inneholder autentiseringssymbolene som blir brukt til å autentisere sluttbrukeren for tilkoblingen. ACCSEC og SECCHK blir bare vist i TCP/IP-tilkoblinger, mellom EXCSAT og ACCRDB. |
CCSID-verdier blir også returnert fra verts- eller AS/400-databasetjeneren i ACCRDBRM (Access RDB Reply Message) i den andre bufferen. Denne bufferen inneholder EXCSATRD etterfulgt av ACCRDBRM. Eksempelutdatafilen inneholder CCSID-verdien 500 (X'01F4', SBCS CCSID) for verts- eller AS/400-databasetjeneren.
Hvis DB2 Connect ikke gjenkjenner kodesettet som blir returnert fra verts- eller AS/400-databasetjeneren, blir SQLCODE -332 returnert til brukeren med kilde- og målkodesettet. Hvis verts- eller AS/400-databasetjeneren ikke gjenkjenner kodesettet som ble sendt fra DB2 Connect, returnerer den VALNSPRM (parameterverdien er ikke støttet, med DDM-kodeverdien X'1252'), som blir konvertert til SQLCODE -30073 for brukeren.
ACCRDBRM inneholder også parameteren PRDID (produkt-ID, med kodeverdien X'112E'). Verdien er X'C4E2D5F0F5F0F1F0'. Denne heksadesimale strengen tilsvarer DSN05010 i EBCDIC. Standardene tilsier at DSN er DB2 for MVS/ESA eller DB2 Universal Database for OS/390. Versjonen, 5.1, er også angitt. ARI er DB2 for VSE & VM, SQL er DB2-standardtjener og QSQ er DB2 Universal Database for AS/400.
Du kan analysere tilleggsinformasjon i påfølgende sende- og mottaksbuffere. Den tredje bufferen inneholder en iverksetting. Kommandoen commit ber styresystemet til verts- eller AS/400-databasetjeneren om å iverksette den gjeldende arbeidsenheten (UOW). Den fjerde bufferen blir mottatt fra styresystemet til verts- eller AS/400-databasetjeneren som et resultat av en iverksetting eller tilbakestilling. Den inneholder ENDUOWRM (End Unit of Work Reply Message), som angir at den gjeldende arbeidsenheten ble avsluttet. I dette eksempelet inneholder den en SQLCA-nullverdi, som blir angitt av DDM-kodeverdien X'2408' etterfulgt av X'FF'. En SQLCA-nullverdi (X'2408FF') angir at fullføringen var vellykket (SQLCODE 0). Når en mottaksbuffer inneholder en SQLCA-verdi (for eksempel en SQLCA-nullverdi), blir denne mottaksbufferen etterfulgt av en formatert tolkning av SQLCA-informasjonen.
I Figur 12 ser du et eksempel på en mottaksbuffer som inneholder en SQLCA-feil, og den formaterte visningen av SQLCA-verdien. Denne SQLCA-verdien er resultatet av et forsøk på å slette rader fra en tabell som ikke finnes.
Figur 12. Eksempel på mottaksbuffer
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 |