Felhasználói kézikönyv


Nyomkövetési segédprogram (ddcstrc)

A ddcstrc segédprogram rögzíti a DB2 Connect munkaállomás (az adatbázisügyfél megbízásából) valamint a gazdagép vagy AS/400 adatbázis-kiszolgáló kezelő rendszer közötti adatcserefolyamokat.

Adatbázis adminisztrátorként (vagy alkalmazásfejlesztőként) bizonyára fontosnak tartja, hogy megértse, hogyan működik az adatáramlás, mivel ez a tudás segítségére lehet valamely probléma okának kiderítésében. Képzelje el, hogy kiadott egy CONNECT TO adatbázis utasítást a gazdagép vagy AS/400 adatbázis-kiszolgálónak, de sikertelen visszatérési kódot kapott, mert a parancs végrehajtása meghiúsult. Ha tudja, milyen információ jut el a gazdagép vagy AS/400 adatbázis-kiszolgáló kezelő rendszerhez, még akkor is sikeresen meg tudja határozni a hiba okát, ha egyébként a visszatérési kód csupán általános információval szolgált. Sok hiba oka egyszerű felhasználói tévedés.

A ddcstrc parancs kimenete felsorolja a DB2 Connect munkaállomás valamint a gazdagép vagy AS/400 adatbázis-kiszolgáló kezelő rendszer között kicserélt adatfolyamokat. A gazdagép vagy AS/400 adatbázis-kiszolgálóhoz küldött adatok SEND BUFFER (küldési puffer), míg a gazdagép vagy AS/400 adatbázis-kiszolgálótól jövő adatok RECEIVE BUFFER (vételi puffer) néven találhatók meg a nyomkövetésben.

Ha a vételi puffer SQLCA információt tartalmaz, az információt SQLCA néven az adat formázott értelmezése fogja követni. Az SQLCA SQLCODE mezője a gazdagép vagy AS/400 adatbázis-kiszolgáló által visszaadott, nem leképezett értéket tartalmaz. (A leképezéssel kapcsolatban további információt a SQLCODE leképezés alatt olvashat.) A küldési és vételi pufferek felsorolása a legrégebbiektől a legújabbak felé halad a fájlban. Mindegyik puffer tartalmazza a következőket:

A küldési és vételi pufferben található egyéb adatok öt oszlopot alkotnak, melyek a következők:

A DDM-ről további tájékoztatásért lásd:

A nyomkövetés szintaxisa

A nyomkövetési parancsot a következő szintaxis betartása mellett hívhatja meg az operációs rendszer parancssorából.

ábra 9. A ddcstrc parancs szintaxisa


Figure 00003491 not displayed.

Megjegyzés:Előfordulhat, hogy ettől eltérő szintaxist kell alkalmaznia más operációs rendszereken. Például az OS/2 operációs rendszeren - helyett használhatja a / jelet is.

Nyomkövetési paraméterek

on
Bekapcsolja a gazdagép vagy AS/400 adatbázis-kiszolgálóval folytatott DRDA folyamok nyomkövetését a DB2 Connect-ben.

off
Kikapcsolja a gazdagép vagy AS/400 adatbázis-kiszolgálóval folytatott DRDA folyamok nyomkövetését a DB2 Connect-ben.

-i
A nyomkövetési információ időbélyegeket is tartalmazni fog.

-r
A DRDA kiszolgáló rendszertől kapott gazdagép vagy AS/400 kiszolgáló adatfolyamokat követi nyomon.

-s
A gazdagép vagy AS/400 adatbázis-kiszolgálóhoz küldött DRDA adatfolyamokat követi nyomon.

-c
A gazdagép vagy AS/400 adatbázis-kiszolgálótól kapott SQLCA-t követi nyomon.

Alapértelmezett paraméterek: -r, -s és -c.

-l=hossz
Meghatározza a nyomkövetési információ tárolására használt puffer méretét. Az alapértelmezett érték 1M, a legkisebb érték 64K lehet.

-t=nyomkövetési fájl
Meghatározza a nyomkövetés célját. A nyomkövetési fájl elnevezés utalhat egy fájlra vagy egy szabványos eszközre. Ha elérési útvonal nélkül ad meg fájlnevet, a hiányzó részek helyébe a jelenlegi útvonal kerül. Az alapértelmezett fájlnév ddcstrc.dmp.

-p=pid
Csak ennél az egy folyamatnál követi nyomon az eseményeket. Ha nem adja meg a -p paramétert, a felhasználói példány valamennyi folyamata bekerül a kimeneti fájlba.
Megjegyzés:A távoli ügyfél esetében a pid az adatbázisrendszer-megfigyelő által visszaadott Ügynökazonosító mezőben található.
További információért lásd: Adatbázis rendszerfigyelő.

A nyomkövetés kimenete

A ddcstrc parancs a következő információkat írja be a nyomkövetési fájlba:

Megjegyzések:

  1. Ha a kilépési kód értéke nulla, a parancs sikeresen befejeződött. Ha ez az érték nem nulla, a parancs sikertelen volt.

  2. A visszaadott mezők változhatnak a használt API-tól függően. Az SNA API csak 2PC SPM kapcsolatoknál használatos.

  3. A visszaadott mezők ugyanazon API esetében is változhatnak attól függően, milyen környezetben fut a DB2 Connect.

  4. Ha a ddcstrc a kimenetet már létező fájlba küldi, törli a régi fájlt, amennyiben nincsen megtiltva a fájl törlése.

A nyomkövetési kimeneti fájl elemzése

A következő oldalakon példa kimeneti fájlokat talál, amelyek DB2 Connect munkaállomás vagy a gazdagép vagy AS/400 kiszolgáló között kicserélt adatfolyamokat követnek nyomon. A képzeletbeli felhasználó CONNECT TO adatbázis parancsot adott ki a parancsfeldolgozó használatával.

Az ábra 10 alatti példában APPC kapcsolat feletti DB2 Connect Enterprise Edition 7-es verzió és DB2 Universal Database for OS/390 5.1-es verzió szerepel.

Az ábra 11 alatti példában TCP/IP kapcsolat feletti DB2 Connect Enterprise Edition 7-es verzió és DB2 Universal Database for OS/390 5.1-es verzió szerepel.

ábra 10. Példa a nyomkövetési kimeneti fájlra (APPC kapcsolat)

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

ábra 11. Példa a nyomkövetési kimeneti fájlra (TCP/IP kapcsolat)

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

A nyomkövetési fájlból a következő információk olvashatók ki:

Az első puffer tartalmazza a gazdagép vagy AS/400 adatbázis-kiszolgáló kezelő rendszernek elküldött Exchange Server Attributes (Kiszolgálótulajdonságok cseréje, EXCSAT) és az Access RDB (Hozzáférés RDB-hez, ACCRDB) parancsokat. A rendszer a fenti információkat a CONNECT TO parancs hatására küldi el.

A következő puffer tartalmazza azt a választ, amit a DB2 Connect kapott a gazdagép vagy AS/400 adatbázis-kiszolgáló kezelő rendszertől. A válasz a következőkből áll: Exchange Server Attributes Reply Data (Kiszolgáló tulajdonságok cseréje válaszadat, EXCSATRD) és Access RDB Reply Message (Hozzáférés RDB-hez válaszüzenet, ACCRDBRM).

Az EXCSAT és az ACCRDB elemzése

Az EXCSAT parancs tartalmazza a Server Name (Kiszolgáló név, SRVNAM) objektum által meghatározott ügyfél munkaállomás nevet, ami a DDM specifikáció szerint az X'116D' kódpontnak felel meg. Az EXCSAT parancs az első pufferben található. Az EXCSAT parancsban az X'116DA68581A28593' (CCSID 500-ban kódolt) érték fordítása az X'116D' eltávolítása után: weasel.

Az EXCSAT parancs tartalmazza az EXTNAM (External Name, Külső név) objektumot is, amely gyakran belekerül a gazdagép vagy AS/400 adatbáziskezelő rendszer diagnosztikai információjába. Ez 20 bájtos alkalmazásazonosítóból és 8 bájtos folyamatazonosítóból (vagy 4 bájtos folyamatazonosítóból és 4 bájtos szálazonosítóból) áll. A X'115E' kódpont jelöli ezt az információt. A fenti példában értéke db2bp_32, amelyet üres karakterek vesznek körül és 0000BE5C követ. UNIX alapú adatbázisügyfélen ez az érték megfeleltethető a ps parancsnak, amely az aktív folyamatokról folyamatállapot információt ír a szabványos kimenetre.

Az ACCRDB parancs tartalmazza az RDB_NAME értékét az RDBNAM objektumban, amit a X'2110' kódpont képvisel. Az ACCRDB parancs az EXCSAT parancsot követi az első pufferben. Az ACCRDB parancsban található X'2110E2C1D56DC6D9C1D5C3C9E2C3D6' érték fordítása SAN_FRANCISCO lesz a X'2110' eltávolítása után. Ez megfelel a DCS katalógusban található céladatbázis neve mezőnek.

A számlázási karakterláncot a X'2104' kódpont képviseli (lásd A költségátterheléses számlázás megvalósítása).

A DB2 Connect munkaállomáshoz beállított kódkészletet megtekintheti, ha megkeresi az ACCRDB parancsban a CCSID objektum CCSIDSBC-t (CCSID egybájtos karakterek esetében) a X'119C' kódpont mellett. Ebben a példában a CCSIDSBC X'0352', ami 850-nek felel meg.

Ha egyéb objektumok CCSIDDBC-je (CCSID kétbájtos karakterek esetén) és CCSIDMBC-je (CCSID vegyes bájtú karakterek esetén) is jelen van X'119D' és X'119E' kódpontok mellett, ez arra utal, hogy a DB2 Connect munkaállomáson be van állítva a DBCS kódlaptámogatás. Mivel a példa kimeneti fájl nem tartalmazza a két további kódpontot, a munkaállomás nincs DBCS-re konfigurálva.
Megjegyzés:A TCP/IP folyamok két új parancsot tartalmaznak: az ACCSEC parancsot, amely hozzáférést biztosít a biztonsági kezelőhöz, és elvégzi a támogatott biztonsági mechanizmusok cseréjét, valamint a SECCHK parancsot, amely a kapcsolat végfelhasználójának hitelesítésére szolgáló hitelesítési jelsorokat tartalmazza. Az ACCSEC és SECCHK parancsok csak TCP/IP kapcsolatok esetén jelennek meg, mégpedig az EXCSAT és ACCRDB parancsok között.

Az EXCSATRD és az ACCRDBRM elemzése

A gazdagép vagy AS/400 adatbázis-kiszolgálóról CCSID értékek is visszatérnek a második puffer Access RDB Reply Message (ACCRDBRM) válaszüzenetében. Ebben a pufferben az EXCSATRD-ot az ACCRDBRM követi. A példa kimeneti fájl a gazdagép vagy AS/400 adatbázis-kiszolgáló rendszer 500-as CCSID értékeit (X'01F4', SBCS CCSID) tartalmazza.

Ha a DB2 Connect nem ismeri fel a gazdagép vagy AS/400 adatbázis-kiszolgálótól visszatérő kódlapot, a felhasználó SQLCODE -332 üzenetet kap, amelyet a forrás és célkódlapok kísérnek. Ha a gazdagép vagy AS/400 kiszolgáló nem ismeri fel a DB2 Connect által küldött kódlapot, VALNSPRM (Parameter Value Not Supported, Nem támogatott paraméter érték, X'1252'-es DDM kódponttal) üzenetet küld vissza, amelynek lefordítása után a felhasználó az SQLCODE -30073-et kapja.

Az ACCRDBRM tartalmazza a PRDID paramétert is (Product-specific Identifier, Termékre jellemző azonosító, X'112E' kódpont). Ennek értéke X'C4E2D5F0F5F0F1F0'. Ez a hexadecimális formátumú karakterlánc EBCDIC-ben DSN05010-nek felel meg. Szabvány szerint a DSN vagy DB2 for MVS/ESA vagy DB2 Universal Database for OS/390. Megjelenik az 5.1-es verziószám is. Az ARI a DB2 for VSE & VM terméknek, az SQL a DB2 Common Server terméknek, és a QSQ a DB2 Universal Database for AS/400 terméknek felel meg.

További pufferek elemzése

A fenti puffereket követő küldési és vételi pufferek elemzésével további információkhoz juthat. A harmadik puffer tartalmaz egy commit parancsot. A commit parancs arra utasítja a gazdagép vagy AS/400 adatbázis-kiszolgáló kezelő rendszert, hogy véglegesítse a jelenlegi munkaegységet. A negyedik puffer a gazdagép vagy AS/400 adatbázis-kiszolgáló kezelő rendszertől származik, amelyet a véglegesítés vagy visszagörgetés eredményeképpen küld vissza. Ez a puffer End Unit of Work Reply Message (Munkaegység befejezése válaszüzenet, ENDUOWRM) válaszüzenetet tartalmaz, amely azt mutatja, hogy a jelenlegi munkaegység lezárult. Ebben a példában a puffer egy null SQLCA-t tartalmaz, amelyet a X'2408' DDM kódpont vezet be, és X'FF' követ. A null SQLCA (X'2408FF') valaminek sikeres voltára utal (SQLCODE 0). Ha egy vételi puffer SQLCA-t tartalmaz (ez valószínűleg egy null SQLCA), a vételi puffert ddcstrc karakterlánc fogja követni az SQLCA információ formázott értelmezésével.

Az ábra 12 egy hiba SQLCA-t, valamint az SQLCA formázott megjelenítését tartalmazó vételi puffert mutat be. Ez az SQLCA annak az eredménye, hogy a képzeletbeli felhasználó megpróbált nem létező táblából sorokat törölni.

ábra 12. Példa vételi puffer

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


[ Oldal eleje | Előző oldal | Következő oldal | Tartalom | Tárgymutató ]