6.5.2 拡張データベースアクセストレース機能
(1) 機能概要
拡張データベースアクセストレースでは,従来のDABrokerのデータベースアクセストレースと比較して,次の機能が拡張されています。
- データベースへの接続ごと(接続から切断まで)にトレースを取得できます。
- データベース接続中でも,トレースファイルの参照やコピーができます。
- マルチスレッドでアプリケーションが動作している場合,データベースアクセスを実行したスレッドを特定できます。
- DABroker動作環境定義ファイルの設定によって,出力するイベントの種類を選択できます。
- DABroker動作環境定義ファイルの設定によって,ファイルの最大容量を設定できます。トレース情報が最大容量を超える場合,最大2世代で取得ファイルを切り替えてトレースを取得できます。
(2) 適用範囲
拡張データベースアクセストレース機能は,次のような場合に有効です。
- データベースのアクセス中に障害が発生した場合,迅速に障害を切り分ける必要がある場合
- 24時間稼働などのために,稼働中のアプリケーションを終了しないで障害を調査する必要がある場合
- マルチスレッド環境でアプリケーションが動作していて,スレッドごとのデータベースアクセス履歴を取得したい場合
- コネクションプーリングなどを使用していて,データベースへの接続ごとのデータベースアクセス履歴を取得する必要がある場合
- 障害の再現調査ができないため,常時トレースを取得する必要がある場合
(3) DABroker動作環境定義
拡張データベースアクセストレースを取得する設定は,DABroker動作環境定義ファイルで設定します。
DABroker動作環境定義ファイルでの設定方法については,「4.5 DABroker環境設定項目」を参照してください。
(4) 出力形式
拡張データベースアクセストレースのファイル出力形式を次に示します。
- ヘッダ情報
*-------------------------------------------------------*
*- DataBase Access Information (DRV) -*
*- Date YYYY/MM/DD hh:mm:ss.nnnnnn -*
*-------------------------------------------------------*
DABroker Connect ID : AAAAA(BBBBB)
Process ID : CCCCC
UserID : DDDDD
Client Name : EEEEE
(DB別出力情報)
Lang Mode : GGGGG
- 個々のトレース情報
THREAD-ID CID EVT START-TIME END-TIME RETCODE
BLOCKCNT HiRDB_CONNECTION_ID (SQL)SS…SS
- DRV
- DABrokerのデータベースアクセスドライバの種別に従い,次の識別子が出力されます。
- HiRDB接続の場合
- HiRDB Driver
- Oracle8i接続の場合
- ORACLE8i Driver※(Oracle Call Interface 8iを使用)
- Oracle7接続の場合
- ORACLE7 Driver(Oracle Call Interface 7を使用)
- ODBC3.0接続の場合
- ODBC30
- Database Connection Server経由メインフレーム系データベース接続の場合
- DBS
- 注※
- DABroker for JavaからOracle8iの機能を使用する場合だけ出力されます。
- Date
- ファイル作成日時(YYYY/MM/DD hh:mm:ss.nnnnnn)が出力されます。
- YYYY:西暦年,MM:月,DD:日
- hh:時,mm:分,ss:秒,nnnnnn:マイクロ秒
- DABroker Connect ID
- データベース接続識別子が出力されます。
- Process ID
- 実行プロセスIDが出力されます。
- UserID
- 接続ユーザIDが出力されます。
- DABroker for JavaでORACLEのOS認証機能を使用した場合は,「OS authority」となります。
- Client Name
- UAP名称が出力されます。名称が設定されていない場合は空白になります。
- (DB別出力情報)
- 接続データベースによって異なる情報が出力されます。出力内容について,表6-2に示します。
表6-2 接続データベースごとのトレース出力内容
接続データベース | 出力内容 | 説明 |
---|
HiRDB | PDHOST: | HiRDB接続時のPDHOSTの設定内容です。未設定の場合は,"Not Indicator"が出力されます。 |
PDNAMEPORT: | HiRDB接続時のPDNAMEPORTの設定内容です。未設定の場合は,"Not Indicator"が出力されます。 |
Oracle | SQLNET: | Oracleリスナー名が出力されます。未設定の場合は,"Not Indicator"が出力されます。 |
ODBC3.0 | ODBC Data Source: | ODBC設定のデータソース名が出力されます。未設定の場合は,"Not Indicator"が出力されます。 |
ODBC Key Word: | ODBC設定の接続情報が出力されます。未設定の場合は,"Not Indicator"が出力されます。 |
Databease Connction Server | Access DataBase: | 接続しているホストDB名称が出力されます。 VOS3 XDM RD E2接続の場合:VOS3 XDM/RD E2 VOS3 XDM SD E2接続の場合:VOS3 XDM/SD E2 VOS1 RDB1 E2接続の場合:VOS1 RDB1 E2 VOS1 PDMII E2接続の場合:VOS1 PDM2 E2 VOSK SQL/K接続の場合:VOSK SQL/K VOSKスプールファイル接続の場合:VOSK SPOOL 未設定の場合:Unknown DBMS |
Node Name: | データベース識別子の情報が出力されます。未設定の場合は,"Not Indicator"が出力されます。 |
-
- Lang Mode
- 実行言語モードが出力されます。
- THREAD-ID
- 実行スレッドIDが出力されます。
- CID
- カーソル番号が出力されます。
- EVT
- DABrokerがデータベースに要求した処理の内容です。
- 出力するイベントの種類は任意に選択できます。
- 選択できるイベントについては,「4.5.1(9) データベースアクセストレースの取得(DABSQL_TRCSIZE)」を参照してください。ただし,データベースアクセストレースを取得していない場合は,DABroker動作環境定義ファイルを直接編集します。また,拡張データベースアクセストレースで出力イベントの種類を変更すると,従来のデータベースアクセストレースの出力イベントの種類も変更されます。
- すべてのイベント出力をOFFにした場合はヘッダだけが出力されます。
- 次のイベントは,既存のデータベースアクセストレースにはありません。また,イベント出力を一つでもONにした場合,GET_DIAGイベントの出力を抑止できません。
- ATTACH:サーバとのアクセスパス作成要求を実行します。
- ATTRGET:ハンドル属性の取得要求を実行します。
- ATTRSET:ハンドル属性の設定要求を実行します。
- AUTOCOMOFF:AUTO COMMITモードの解除要求を実行します。
- AUTOCOMON:AUTO COMMITモードの設定要求を実行します。
- BIND:パラメタのバインド要求を実行します。
- CHARFORM:キャラクタセットフォームの取得要求を実行します。
- CHARID:キャラクタセットIDの取得要求を実行します。
- DEFINE:パラメタの定義要求を実行します。
- DESALLOC:記述子の領域確保を実行します。
- DESC_OUT:前処理したSQLの出力情報を返します。
- DESC_IN :前処理したSQLの入力情報を返します。
- DESCANY:オブジェクトの記述要求を実行します。
- DESFREE:記述子の領域解放を実行します。
- DETACH:データベースアクセスパス削除要求を実行します。
- ENVCREATE:環境作成要求を実行します。
- ERRGET:エラー情報取得要求を実行します。
- EXECDIRECT:SQLの前処理後の実行処理です。
- GET_DIAG:エラー詳細情報の取得処理を実行します。
- GETINFO:接続後の動作情報の取得要求を実行します。
- GETPIECE:ピース情報の取得要求を実行します。
- HDLALLOC:ハンドルの領域確保を実行します。
- HDLFREE:ハンドルの領域解放を実行します。
- LOBCLOSE:BFILEデータのクローズ要求を実行します。
- LOBLEN:LOBデータの長さ取得要求を実行します。
- LOBOPEN:BFILEデータのオープン要求を実行します。
- LOBREAD:LOBデータの読み込み要求を実行します。
- LOBWRITE:LOBデータの書き込み要求を実行します。
- PARAMGET:パラメタ情報の取得要求を実行します。
- SESBEGIN:セション開始要求を実行します。
- SESEND:セション終了要求を実行します。
- SETINFO:接続後の動作情報の設定要求を実行します。
- SETPIECE:ピース情報の設定要求を実行します。
- START-TIME
- アクセス開始日時(YYYY/MM/DD hh:mm:ss.nnnnnn)が出力されます。
- YYYY:西暦年,MM:月,DD:日
- hh:時,mm:分,ss:秒,nnnnnn:マイクロ秒
- END-TIME
- アクセス終了日時(YYYY/MM/DD hh:mm:ss.nnnnnn)が出力されます。
- YYYY:西暦年,MM:月,DD:日
- hh:時,mm:分,ss:秒,nnnnnn:マイクロ秒
- RETCODE
- データベースから返されるリターンコードが出力されます。
- BLOCKCNT
- FETCH時の行取得件数が出力されます。
- HiRDB_CONNECTION_ID
- コネクションID(aaaa:bbbb:cccc)が出力されます。
- aaaa:フロントエンドサーバ名(HiRDB/Parallel Server使用時),又はシングルサーバ(HiRDB/Single Server使用時)
- bbbb:aaaaで示すサーバの接続通番
- cccc:aaaaで示すサーバのプロセスID,及びコネクションID
プロセスIDとコネクションIDは,HiRDBクライアントのバージョンが07-01以降で,サーバがHiRDBの場合だけ出力されます。HiRDBクライアントのバージョンが07-01未満で,サーバがHiRDBの場合は,ヘッダ(HiRDB_CONNECTION_ID)だけが出力され,コネクションIDは出力されません。また,サーバがXDM/RDの場合は,ヘッダ(HiRDB_CONNECTION_ID),及びコネクションIDは出力されません。なお,この情報は,CONNECT,COMMIT,ROLLBACK,PREPARE,EXECUTE,又はDIRECTを実行したときに,最新の情報に更新されます。
- (SQL)
- クライアントから要求のあったSQLの内容が出力されます。この項目は,必要に応じて出力されます。
- (Windows QueryPerformance Counter)
- 高分解パフォーマンス情報が表示されます。
(5) ファイル名称
拡張データベースアクセストレースのファイルは,次のディレクトリに作成されます。
DABroker運用ディレクトリ¥spool¥db_access
拡張データベースアクセストレースのファイル名称は,次の規則に従います。
spdb_XXXXXXXX_YYYYYYYY_****ZZZZZ.IIIIII
- ****:接続データベース名称
- HiRDBの場合
- HiRDB
- Oracle8i接続の場合
- Oracle8i※
- Oracle7の場合
- Oracle7
- ODBC3.0の場合
- ODBC30
- Database Connection Server経由メインフレーム系データベースの場合
- DBS
- 注※
- DABroker for JavaからOracle8iの機能を使用する場合だけ出力されます。
- XXXXXXXX:実行プロセスID
- YYYYYYYY:データベース接続識別子
- ZZZZZ:識別順序番号
- 同じプロセスIDで,かつ同じデータベース接続識別子のファイルがある場合に,00000から32767までの番号を付加します。
- IIIIII:ファイル拡張子
- log:最新のトレースファイル
- logold:1世代前のトレースファイル
(6) ファイルの運用方法
- 拡張データベースアクセストレースは,DABroker動作環境定義ファイルで設定した行数を超える出力があった場合,現在のトレースファイルをバックアップファイルとして別名で保存します(バックアップファイルの名称については,「6.5.2(5) ファイル名称」参照)。トレース内容は,トレースファイルの先頭から再び出力します。
- バックアップファイルは1世代前までしか残しません。このため,既にバックアップファイルがあり,現在のトレースファイルが設定した行数を超えると, バックアップファイルを上書きします。バックアップファイルを保存する必要がある場合は,あらかじめ別のディレクトリに退避してください。
- トレースファイルは実行しているコネクションの数だけ作成されます。
- トレースファイルは自動的に削除されません。ユーザが不要になった時点で削除してください。
- ハードディスクの空き容量が十分でない場合,トレースの出力が停止されることがあります。