Gebruikershandleiding


De traceerfunctie (ddcstrc)

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:

De syntaxis van tracering

Deze opdracht wordt vanaf de opdrachtaanwijzing van het besturingssysteem opgeroepen met de onderstaande syntaxis:

Figuur 10. Syntaxis van de opdracht ddcstrc


Figure 00003491 not displayed.

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.

Parameters voor tracering

on
Schakelt de traceerfunctie van DB2 Connect in voor DRDA-informatiestromen van de host- of de AS/400-databaseserver.

off
Schakelt de traceerfunctie van DB2 Connect uit voor DRDA-informatiestromen van de host- of de AS/400-databaseserver.

-i
Tijdaanduidingen worden in de traceergegevens opgenomen.

-r
Traceert DRDA-gegevensstromen die zijn ontvangen van de host- of AS/400-server.

-s
Traceert DRDA-gegevensstromen die zijn verzonden naar de host- of de AS/400-databaseserver.

-c
Traceert de SQLCA die is ontvangen van de host- of AS/400-databaseserver.

De standaardwaarden zijn -r, -s en -c.

-l=lengte
Geeft de grootte op van de buffer die wordt gebruikt om de traceerinformatie op te slaan. De standaardgrootte is 1 MB en het minimum is 64 kB.

-t=traceerbestand
Geeft de bestemming op van de tracering; traceerbestand kan de naam zijn van een bestand of een standaardapparaat. Als een bestandsnaam zonder volledig pad wordt opgegeven, wordt het huidige pad gebruikt voor de ontbrekende delen. De standaardbestandsnaam is ddcstrc.dmp.

-p=proces-ID
Traceert alleen events voor dit proces. Als -p niet wordt opgegeven, worden alle processen voor het subsysteem van de gebruiker naar het uitvoerbestand geschreven.
Opmerking:Voor een client op afstand staat het proces-ID in het veld Agent-ID dat wordt teruggezonden door de Systeemmonitor voor databases.
Zie Systeemmonitor voor databases voor meer informatie.

Uitvoer van tracering

Het hulpprogramma ddcstrc schrijft de volgende informatie naar het traceerbestand:

Opmerkingen:

  1. Een nul geeft aan dat de opdracht met succes is beëindigd. Een waarde die niet-nul is, geeft aan dat dit niet het geval is.

  2. De teruggezonden velden verschillen afhankelijk van de gebruikte API. De SNA API wordt alleen gebruikt voor 2PC SPM-verbindingen.

  3. De teruggezonden velden verschillen afhankelijk van het platform waarop DB2 Connect wordt uitgevoerd, zelfs voor dezelfde API.

  4. Als ddcstrc de uitvoer naar een bestaand bestand stuurt, wordt het oude bestand gewist tenzij het bestand machtigingen bevat die dit niet toestaan.

Analyse van het uitvoerbestand van de traceerfunctie

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).

Analyse van EXCSAT en ACCRDB

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.

Analyse van EXCSATRD en ACCRDBRM

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.

Analyse van opeenvolgende buffers

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


[ Begin van pagina | Vorige pagina | Volgende pagina | Inhoud | Trefwoordenregister ]