ODBC-Trace

Je nach verwendetem Betriebssystem gibt es verschiedene Verfahren, die Traceaufzeichnung für ODBC-Aktivitäten einzuleiten.

Windows platform Verwenden Sie unter Windows die Registerkarte Tracing der ODBC-Funktion:

  1. Klicken Sie auf Start > Einstellungen > Systemsteuerung > Verwaltung.
  2. Klicken Sie doppelt auf Datenquellen.
  3. Klicken Sie auf die Registerkarte Tracing.
  4. Klicken Sie auf Start Tracing Now.
  5. Klicken Sie auf OK.

Um die ODBC-Tracefunktion zu stoppen, klicken Sie in der Registerkarte Tracing auf Stop Tracing Now (Tracefunktion jetzt stoppen) und anschließend auf OK.

UNIX platform Bearbeiten Sie auf Linux- und UNIX-Plattformen die Datei ODBC.ini, um die Tracefunktion für ODBC-Vorgänge zu starten (wenn Sie die Standarddatei ODBC.ini verwenden, befindet diese sich im Verzeichnis /var/wmqi/odbc/.odbc.ini):
  1. Ändern Sie unter dem Zeilengruppeneintrag [ODBC] Trace=0 in Trace=1.
  2. Ändern Sie optional den Wert des Dateipfads TraceFile in einen von Ihnen gewünschten Wert. Alle Tracesätze werden in einer Datei gespeichert, was bei mehreren Nachrichtenflüssen oder Ausführungsgruppen verwirrend sein kann.

Trace-Informationen werden an die Speicherposition ausgegeben, die in der Datei .odbc.ini oder in der ODBC-Konfiguration unter Windows angegeben ist. Standardmäßig handelt es sich bei Maschinen, die nicht unter Windows ausgeführt werden, um die folgende Speicherposition: /var/wmqi/odbc/odbctrace.out.

z/OS platform Gehen Sie unter z/OS wie folgt vor, um einen Anwendungstrace für die ODBC-Aktivität zu starten: Beginn der Änderung
  1. Bearbeiten Sie die Datei BIPDSNAO im Komponentendatensatz und ändern Sie unter dem Zeilengruppeneintrag [COMMON] die Angabe APPLTRACE=0 in APPLTRACE=1.
  2. Entfernen Sie den Kommentar aus der Variablendeklaration COMPDIR und APPLTRACE DD in der JCL der von WebSphere Message Broker gestarteten Task.
  3. Stoppen und starten Sie den Broker erneut, wenn Sie alle Änderungen in der Datei BIPDSNAO und der JCL der gestarteten Task vorgenommen haben.

    Standardmäßig wird die Traceausgabedatei in eine Datei namens db2appltrace. im Verzeichnis <Komponenten-HFS>/output/ geschrieben. Für jeden Adressraum ist dem Ende von db2appltrace. eine eindeutige Zahl angehängt.

    Bei dieser der ODBC-Datei angehängten eindeutigen Zahl handelt es sich um die SE-Zahl im Jobprotokoll für den Adressraum der Ausführungsgruppe.

    Suchen Sie im Jobprotokoll, dessen ODBC-Trace angezeigt werden soll, nach dem SE-Wert und machen Sie die Datei db2appltrace.<SE-Zahl> ausfindig.

Ende der Änderung
Beginn der Änderung

DB2 unter WebSphere Message Broker for z/OS

Aus den folgenden Beispielen für ODBC-Tracedateien wird das Layout einer Tracedatei ersichtlich. Außerdem finden Sie hier einige Beispiele für Rückmeldungen bei erfolgreicher Ausführung und bei Auftreten eines Fehlers. Das allgemeine Layout der einzelnen Gruppen in einer ODBC-Datei sieht wie folgt aus:
  • Jeder Zeile ist eine Zeitmarke vorangestellt.
  • In der ersten Zeile wird angezeigt, welche Funktion der Aufruf hat.
  • In der zweiten Zeile wird die Rückgabe angezeigt.
  • In der dritten Zeile ist das Ergebnis aufgeführt.
Die erste Tracedatei zeigt einen Trace, bei dem ein Aufruf scheitert, da ein Objekt nicht über die entsprechende Berechtigung zur Ausführung einer Aktion verfügt:
[2008-09-24 15:49:20.544123] SQLAllocStmt( hDbc=2, phStmt=&1c7f9554 )
[2008-09-24 15:49:20.544156] SQLAllocStmt( phStmt=1 )
[2008-09-24 15:49:20.544163]     ---> SQL_SUCCESS

[2008-09-24 15:49:20.544179] SQLFreeStmt( hStmt=1, fOption=SQL_CLOSE )
[2008-09-24 15:49:20.544189] SQLFreeStmt( )
[2008-09-24 15:49:20.544194]     ---> SQL_SUCCESS

[2008-09-24 15:49:20.544205] SQLPrepare( hStmt=1 )
[2008-09-24 15:49:20.544212] ( pszSqlStr="SELECT TESTTABLE.ID FROM 
WMQI77.TESTTABLE TESTTABLE", cbSqlStr=-3 )
[2008-09-24 15:49:20.587083] SQLPrepare( )
[2008-09-24 15:49:20.587101]     ---> SQL_ERROR

[2008-09-24 15:49:20.587157] SQLError( hEnv=0, hDbc=0, hStmt=1, 
pszSqlState=&3902af28, pfNativeError=&3902af24, pszErrorMsg=&1b88b0b0, 
cbErrorMsgMax=1024, pcbErrorMsg=&3902aefc )
[2008-09-24 15:49:20.587190] SQLError( pszSqlState="42501", pfNativeError=-551, 
pszErrorMsg="{DB2 FOR OS/390}{ODBC DRIVER}{DSN09015}
 DSNT408I SQLCODE = -551, ERROR:  WMQI83 DOES NOT HAVE THE PRIVILEGE TO PERFORM
          OPERATION SELECT ON OBJECT WMQI77.TESTTABLE
 DSNT418I SQLSTATE   = 42501 SQLSTATE RETURN CODE
 DSNT415I SQLERRP    = DSNXOSC SQL PROCEDURE DETECTING ERROR
 DSNT416I SQLERRD    = -100  0  0  -1  0  0 SQL DIAGNOSTIC INFORMATION
 DSNT416I SQLERRD    = X'FFFFFF9C'  X'00000000'  X'00000000'  X'FFFFFFFF'
          X'00000000'  X'00000000' SQL DIAGNOSTIC INFORMATION
  ERRLOC=1:13:2", pcbErrorMsg=623 )
[2008-09-24 15:49:20.587666]     ---> SQL_SUCCESS

[2008-09-24 15:49:20.587725] SQLError( hEnv=0, hDbc=0, hStmt=1, 
pszSqlState=&3902af28, pfNativeError=&3902af24, pszErrorMsg=&1b88b0b0, 
cbErrorMsgMax=1024, pcbErrorMsg=&3902aefc )
[2008-09-24 15:49:20.587752] SQLError( )
[2008-09-24 15:49:20.587757]     ---> SQL_NO_DATA_FOUND

[2008-09-24 15:49:20.588049] SQLFreeStmt( hStmt=1, fOption=SQL_DROP )
[2008-09-24 15:49:20.588075] SQLFreeStmt( )
[2008-09-24 15:49:20.588080]     ---> SQL_SUCCESS

[2008-09-24 15:49:20.593800] SQLTransact( hEnv=1, hDbc=0, fType=SQL_COMMIT )
[2008-09-24 15:49:20.593887] SQLTransact( )
[2008-09-24 15:49:20.593893]     ---> SQL_SUCCESS
Die zweite Tracedatei zeigt denselben Trace im Falle eines funktionierenden Betriebs:
[2008-09-24 16:00:25.287052] SQLAllocStmt( hDbc=1, phStmt=&1c7f8e54 )
[2008-09-24 16:00:25.287068] SQLAllocStmt( phStmt=1 )
[2008-09-24 16:00:25.287075]     ---> SQL_SUCCESS

[2008-09-24 16:00:25.287088] SQLFreeStmt( hStmt=1, fOption=SQL_CLOSE )
[2008-09-24 16:00:25.287098] SQLFreeStmt( )
[2008-09-24 16:00:25.287104]     ---> SQL_SUCCESS

[2008-09-24 16:00:25.287114] SQLPrepare( hStmt=1 )
[2008-09-24 16:00:25.287121] ( pszSqlStr="SELECT TESTTABLE.ID FROM 
WMQI77.TESTTABLE TESTTABLE", cbSqlStr=-3 )
[2008-09-24 16:00:25.302484] SQLPrepare( )
[2008-09-24 16:00:25.302510]     ---> SQL_SUCCESS

[2008-09-24 16:00:25.302539] SQLFreeStmt( hStmt=1, 
fOption=SQL_CLOSE )
[2008-09-24 16:00:25.302555] SQLFreeStmt( )
[2008-09-24 16:00:25.302560]     ---> SQL_SUCCESS

[2008-09-24 16:00:25.302573] SQLExecute( hStmt=1 )
[2008-09-24 16:00:25.302622] SQLExecute( )
[2008-09-24 16:00:25.302628]     ---> SQL_SUCCESS

[2008-09-24 16:00:25.302660] SQLNumResultCols( hStmt=1, 
pcCol=&3902c7fa )
[2008-09-24 16:00:25.302672] SQLNumResultCols( pcCol=1 )
[2008-09-24 16:00:25.302679]     ---> SQL_SUCCESS

[2008-09-24 16:00:25.302697] SQLDescribeCol( hStmt=1, iCol=1, 
pszColName=&3902cb10, cbColNameMax=200, pcbColName=&3902c804, 
pfSQLType=&3902c802, pcbColDef=&3902c858, pibScale=&3902c800, 
pfNullable=&3902c7fe )
[2008-09-24 16:00:25.302733] SQLDescribeCol( pszColName="ID", 
pcbColName=2, pfSQLType=SQL_CHAR, pcbColDef=10, pibScale=0, 
pfNullable=SQL_NULLABLE )
[2008-09-24 16:00:25.302819]     ---> SQL_SUCCESS

[2008-09-24 16:00:25.302826] SQLColAttribute( hStmt=1, iCol=1, 
fDescType=SQL_DESC_OCTET_LENGTH, rgbDesc=NULL, cbDescMax=0, 
pcbDesc=NULL, pfDesc=&3902c864 )
[2008-09-24 16:00:25.302850] SQLColAttribute( pfDesc=10 )
[2008-09-24 16:00:25.302857]     ---> SQL_SUCCESS

[2008-09-24 16:00:25.302866] SQLBindCol( hStmt=1, iCol=1, 
fCType=SQL_C_CHAR, rgbValue=&1b48829c, cbValueMax=12, 
pcbValue=&1b488298 )
[2008-09-24 16:00:25.302888] SQLBindCol( )
[2008-09-24 16:00:25.302894]     ---> SQL_SUCCESS

[2008-09-24 16:00:25.302901] SQLSetStmtAttr( hStmt=1, 
fAttribute=SQL_ATTR_ROW_BIND_TYPE, pvParam=&10, iStrLen=0 )
[2008-09-24 16:00:25.302917] SQLSetStmtAttr( )
[2008-09-24 16:00:25.302922]     ---> SQL_SUCCESS

[2008-09-24 16:00:25.302928] SQLSetStmtAttr( hStmt=1, 
fAttribute=Unknown value 9, pvParam=&20, iStrLen=0 )
[2008-09-24 16:00:25.302943] SQLSetStmtAttr( )
[2008-09-24 16:00:25.302949]     ---> SQL_SUCCESS

[2008-09-24 16:00:25.302956] SQLExtendedFetch( hStmt=1, 
fFetchType=SQL_FETCH_NEXT,iRow=0, pcRow=&1c7f6894, 
rgfRowStatus=&1bca17d0 )
[2008-09-24 16:00:25.317947] ( Row=1, iCol=1, fCType=SQL_C_CHAR, 
rgbValue="TABLG     ", pcbValue=10 )
[2008-09-24 16:00:25.317980] ( Row=2, iCol=1, fCType=SQL_C_CHAR, 
rgbValue="TABLF     ", pcbValue=10 )
[2008-09-24 16:00:25.318001] ( Row=3, iCol=1, fCType=SQL_C_CHAR, r
gbValue="TABLE     ", pcbValue=10 )
[2008-09-24 16:00:25.318022] ( Row=4, iCol=1, fCType=SQL_C_CHAR, 
rgbValue="TABLD     ", pcbValue=10 )
[2008-09-24 16:00:25.318044] ( Row=5, iCol=1, fCType=SQL_C_CHAR, 
rgbValue="TABLC     ", pcbValue=10 )
[2008-09-24 16:00:25.318065] ( Row=6, iCol=1, fCType=SQL_C_CHAR, 
rgbValue="TABLB     ", pcbValue=10 )
[2008-09-24 16:00:25.318087] ( Row=7, iCol=1, fCType=SQL_C_CHAR, 
rgbValue="TABLA     ", pcbValue=10 )
[2008-09-24 16:00:25.318109] SQLExtendedFetch( pcRow=7 )
Ende der Änderung
Zugehörige Tasks
Fehlerbehebung und Unterstützung
Die Tracefunktion verwenden
Zugehörige Verweise
Unterstützte Datenbanken
Datenbankfunktionen
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:30:05

au14215_