6.5.2 拡張データベースアクセストレース機能
(1) 機能概要
拡張データベースアクセストレースでは,従来のDABrokerのデータベースアクセストレースと比較して,次の機能が拡張されています。
-
データベースへの接続ごと(接続から切断まで)にトレースを取得できます。
-
データベース接続中でも,トレースファイルの参照やコピーができます。
-
マルチスレッドでアプリケーションが動作している場合,データベースアクセスを実行したスレッドを特定できます。
-
DABroker動作環境定義ファイルの設定によって,出力するイベントの種類を選択できます。
-
DABroker動作環境定義ファイルの設定によって,ファイルの最大容量を設定できます。トレース情報が最大容量を超える場合,最大2世代で取得ファイルを切り替えてトレースを取得できます。
(2) 適用範囲
拡張データベースアクセストレース機能は,次のような場合に有効です。
-
データベースのアクセス中に障害が発生した場合,迅速に障害を切り分ける必要がある場合
-
24時間稼働などのために,稼働中のアプリケーションを終了しないで障害を調査する必要がある場合
-
マルチスレッド環境でアプリケーションが動作していて,スレッドごとのデータベースアクセス履歴を取得したい場合
-
コネクションプーリングなどを使用していて,データベースへの接続ごとのデータベースアクセス履歴を取得する必要がある場合
-
障害の再現調査ができないため,常時トレースを取得する必要がある場合
(3) DABroker動作環境定義
拡張データベースアクセストレースを取得する設定は,DABroker動作環境定義ファイルで設定します。
DABroker動作環境定義ファイルでの設定方法については,「4.5 DABroker環境設定項目」を参照してください。
(4) 出力形式
拡張データベースアクセストレースのファイル出力形式を次に示します。
Oracle19cでOracle7接続の場合,Oracle12c以前とは出力するイベントが変わるなど,出力内容が異なります。
-
ヘッダ情報
*-------------------------------------------------------* *- 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(Oracle19c以外でOracle Call Interface 7を使用している場合,又はOracle19cでOracle Call Interface 8iを使用している場合)
- SQL Anywhere接続の場合
-
SQLAnywhere
- ODBC3.0接続の場合
-
ODBC30
- RDA Link for Gateway経由メインフレーム系データベース接続の場合
-
RDALink Driver
- 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-3に示します。
表6‒3 接続データベースごとのトレース出力内容 接続データベース
出力内容
説明
HiRDB
PDHOST:
HiRDB接続時のPDHOSTの設定内容です。未設定の場合は,"Not Indicator"が出力されます。
PDNAMEPORT:
HiRDB接続時のPDNAMEPORTの設定内容です。未設定の場合は,"Not Indicator"が出力されます。
Oracle
SQLNET:
Oracleリスナー名が出力されます。未設定の場合は,"Not Indicator"が出力されます。
SQL Anywhere
ODBC Data Source:
ODBC設定のデータソース名が出力されます。未設定の場合は,"Not Indicator"が出力されます。
ODBC Key Word:
ODBC設定の接続情報が出力されます。未設定の場合は,"Not Indicator"が出力されます。
ODBC3.0
ODBC Data Source:
ODBC設定のデータソース名が出力されます。未設定の場合は,"Not Indicator"が出力されます。
ODBC Key Word:
ODBC設定の接続情報が出力されます。未設定の場合は,"Not Indicator"が出力されます。
RDA Link
Access DataBase:
RDA Linkで接続しているホストDB名称が出力されます。
VOS3 XDM RD E2接続の場合:VOS3 XDM/RD E2
VOS1 RDB1 E2接続の場合:VOS1 RDB1 E2
VOSK SQL/K接続の場合:VOSK SQL/K
未設定の場合:Unknown DBMS
Node Name:
データベース識別子の情報が出力されます。未設定の場合は,"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
- SQL Anywhereの場合
-
SQLAnywher
- ODBC3.0の場合
-
ODBC30
- RDA Link for Gateway経由メインフレーム系データベースの場合
-
RDALink
- 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世代前までしか残しません。このため,既にバックアップファイルがあり,現在のトレースファイルが設定した行数を超えると, バックアップファイルを上書きします。バックアップファイルを保存する必要がある場合は,あらかじめ別のディレクトリに退避してください。
-
トレースファイルは実行しているコネクションの数だけ作成されます。
-
トレースファイルは自動的に削除されません。ユーザが不要になった時点で削除してください。
-
ハードディスクの空き容量が十分でない場合,トレースの出力が停止されることがあります。