Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


16.5.2 SQLトレース機能

実行したUAPのSQLトレース情報をSQLトレースファイルに取得します。SDBデータベースを操作するAPIまたはDMLの実行時にエラーが発生した場合,SQLトレース情報を参照すると,エラーの原因となるHiRDBの情報を特定できます。

SQLトレースファイルは,取得した情報で満杯になると,最も古い情報から順次新しい情報に書き替えられます。SQLトレース機能の詳細については,マニュアル「HiRDB UAP開発ガイド」の「SQLトレース機能」を参照してください。

〈この項の構成〉

(1) SQLトレース情報の見方

SDBデータベースを操作するAPIまたはDMLの実行時に出力されるSQLトレース情報の出力例を次の図に示します。

図16‒2 SQLトレース情報の出力例(クライアント環境定義PDSQLTRCFMTに1を指定した場合)

[図データ]

[図データ]

図16‒3 SQLトレース情報の出力例(クライアント環境定義PDSQLTRCFMTに2を指定した場合)

[図データ]

[図データ]

[図データ]

図16‒4 SQLトレース情報の出力例(クライアント環境定義PDSDBPRMTRCにYESを指定した場合)

[図データ]

[図データ]

[図データ]

[説明]

SQLトレース情報に出力される各項目については,マニュアル「HiRDB UAP開発ガイド」の「SQLトレース情報の見方」を参照してください。

ただし,上記の出力例で,枠で囲まれた部分の項目については,以下で説明します。サブページ分割をしている場合は,ページをサブページに読み替えてください。

出力内容

説明

UAPEXERLOGDMLSZ

クライアント環境定義のPDUAPEXERLOGDMLSZオペランドの指定値

UAPEXERLOGDMLDATA

クライアント環境定義のPDUAPEXERLOGDMLDATAオペランドの指定値

SDBUAPFILE

クライアント環境定義のPDSDBUAPFILEオペランドの指定値

SDBUAPDIR

クライアント環境定義のPDSDBUAPDIRオペランドの指定値

SDBPRMTRC

クライアント環境定義のPDSDBPRMTRCオペランドの指定値

SDBTRCCNDSIZE

クライアント環境定義のPDSDBTRCCNDSIZEオペランドの指定値

SDBTRCELMSIZE

クライアント環境定義のPDSDBTRCELMSIZEオペランドの指定値

SDBTRCKEYSIZE

クライアント環境定義のPDSDBTRCKEYSIZEオペランドの指定値

SDBTRCDATASIZE

クライアント環境定義のPDSDBTRCDATASIZEオペランドの指定値

OPCODE

オペレーションコード

SDBデータベースを操作するAPIまたはDMLの場合,EXSDが表示されます。また,TP1/FSPおよびHiRDB/SDデータベースアクセスユティリティ(pdsdbexe)が内部的にSDBデータベース定義情報を取得する場合にもEXSDが表示されます。

EXSD以外のオペレーションコードについては,マニュアル「HiRDB UAP開発ガイド」の「SQLトレース情報の見方」を参照してください。

*DML*

ヘッダ情報

(*4V△)

(*SD△)

要求元の識別記号

括弧で囲まれた4バイトで表示されます(△は半角空白を示します)。X'00'が含まれる場合は,スペースに置換されます。

HNDLNO

ハンドル番号

FNCCD

機能コード

1バイトで表示されます。X'00'が含まれる場合は,スペースに置換されます。

REQCD

要求コード

4バイトで表示されます。X'00'が含まれる場合は,スペースに置換されます。

STRT:個別開始

FNSH:個別終了

FTCH:レコードの検索(FETCH),または位置指示子の位置づけ(FIND)

FTCA:複数レコードの検索(FETCHDB ALL)

STOR:レコードの格納(STORE)

MODF:レコードの更新(MODIFY)

ERAS:レコードの削除(ERASE)

CLAR:レコードの一括削除

LCAP:構成情報取得

DINF:SDBデータベース定義情報取得

DBNAME

SDBデータベース名

SDBデータベース名が,指定したサイズ分(最大30バイト)表示されます。

SDBデータベース名にX'00'が含まれる場合は,スペースに置換されます。

REQNUM

同時要求の個数

IV

システムが使用

AM

アクセスモード

1バイトで表示されます。指定がないときは表示されません。また,SDBデータベース種別がSD FMBの場合,DMLでエラーが発生したときにも表示されません。

R:参照モード

U:更新モード

EQ

排他オプション

1バイトで表示されます。指定がないときは表示されません。また,SDBデータベース種別がSD FMBの場合,DMLでエラーが発生したときにも表示されません。

S:共用モード

E:排他モード

O:占有モード

N:無排他モード

AD

排他自動解除オプション

1バイトで表示されます。指定がないときは表示されません。また,SDBデータベース種別がSD FMBの場合,DMLでエラーが発生したときにも表示されません。

Y:排他自動解除機能を使用する

RA

RDエリア指定種別

1バイトで表示されます。指定がないときは表示されません。また,SDBデータベース種別がSD FMBの場合,DMLでエラーが発生したときにも表示されません。

Y:検索対象とするRDエリアを指定する

RV

RDエリア指定有効オプション

1バイトで表示されます。指定がない場合は表示されません。

Y:基点条件指定がある場合でも,RDエリア指定を有効とする

LD

システムが使用

RE

レコード格納用RDエリアの排他制御モード

2バイトで表示されます。指定がないときは表示されません。また,SDBデータベース種別がSD FMBの場合,DMLでエラーが発生したときにも表示されません。

SR:意図共用モード

PR:共用モード

SU:意図排他モード

PU:共用意図排他モード

EX:排他モード

RECNAME

レコード型名

レコード型名が,指定したサイズ分(最大30バイト)表示されます。

レコード型名にX'00'が含まれる場合は,スペースに置換されます。なお,HiRDBサーバで実行された要求分だけ出力されます。

CS

位置指示子種別

1バイトで表示されます。指定がない場合は表示されません。

R:レコード位置指示子

P:親子集合位置指示子

AC

指示コード

1バイトで表示されます。指定がない場合は表示されません。

  • FETCHまたはFINDの場合

    F:FIRSTポインタを使用する検索

    L:LASTポインタを使用する検索

    U:USERポインタを使用する検索

    N:NEXTポインタを使用する検索

    P:PRIORポインタを使用する検索

    R:ROWID指定検索

    W:親子集合型の位置指示子の親レコード検索

  • ERASEの場合

    O:最下位レベルのレコード型について全レコード削除

    S:削除目的のレコードとその下位レベルのレコード削除

  • FETCHDB ALLの場合

    F:検索範囲の最小キーのルートレコードから検索を開始

    N:前回検索したレコードの次のレコードから検索を開始

    S:前回の検索したファミリの検索状態に関係なく,次のルートレコードから検索を開始

SC

検索コード

1バイトで表示されます。指定がない場合は表示されません。

N:USERポインタからNEXT方向への検索

P:USERポインタからPRIOR方向への検索

PO

ポインタオプション

1バイトで表示されます。指定がない場合は表示されません。

U:USERポインタにする

C:USERポインタを解除する

N:USERポインタにしない

DS

データ格納形式オプション

1バイトで表示されます。指定がない場合は表示されません。

D:ユーザキー以外のキーの構成要素を除いて,データ格納エリアに格納する

E:構成要素指定エリアで指定した構成要素だけをデータ格納する

K:キーの構成要素を除かないでデータ格納エリアに格納する

N:データ格納エリアへの格納をしない

DI

システムが使用

RC

システムが使用

TO

レコードの終端を検知したかどうかの判定

1バイトで表示されます。指定がない場合は表示されません。

Y:レコードの終端を検知したかどうかの判定を行う

PS

ページ切り替えオプション

1バイトで表示されます。指定がない場合は表示されません。

C:レコード格納時にページを切り替え,未使用ページを確保する

O:レコード格納時にページを切り替え,未使用ページを確保する(確保したページは格納したレコードで占有する)

PF

PCTFREE有効化オプション

1バイトで表示されます。指定がない場合は表示されません。

Y:レコード格納時に,SDB格納データベース定義で指定したPCTFREEのページ内未使用領域比率を有効にする

N:レコード格納時に,SDB格納データベース定義で指定したPCTFREEのページ内未使用領域比率を有効にしない

2S

二次インデクスの使用可否

1バイトで表示されます。指定がない場合は表示されません。

Y:二次インデクスが使用できる場合でもポインタ検索を行う

CF

条件式形式オプション

4バイトで表示されます。指定がない場合は表示されません。

*FDN:条件式の指定あり

*EFN:条件式の指定あり

CK

キーの条件の条件ブロックエリアの指定

1バイトで表示されます。指定がない場合は表示されません。

Y:キーの条件の条件ブロックエリアの指定あり

CD

キー以外の条件の条件ブロックエリアの指定

1バイトで表示されます。指定がない場合は表示されません。

Y:キー以外の条件の条件ブロックエリアの指定あり

KA

キー報告エリアの指定

1バイトで表示されます。指定がない場合は表示されません。

Y:キー報告エリアの指定あり

FU

FOR UPDATE

1バイトで表示されます。指定がない場合は表示されません。

Y:FOR UPDATEの指定あり

2U

二次インデクス使用フラグ

2バイトで表示されます。二次インデクスを使用していない場合は表示されません。

01:一連番号用の二次インデクスを使用した

02:ユーザキー用の二次インデクスを使用した

二次インデクス使用フラグは,4V FMBまたは4V AFMのSDBデータベースの使用時に利用できる情報です。

PI

レコードポインタ情報

2バイトで表示されます。下記に該当しない場合は表示されません。

c0:LASTポインタおよびFIRSTポインタの示すレコードを検索または格納した

80:LASTポインタの示すレコードを検索または格納した

40:FIRSTポインタの示すレコードを検索または格納した

なお,ここでいう検索には,SD FMBのSDBデータベースの子レコードのレコード型内の検索を含みません。

TM

終端検知情報

1バイトで表示されます。下記に該当しない場合は表示されません。

Y:終端を検知した

FI

複数レコードの検索時の検索状態

2バイトで表示されます。

01:ファミリのすべてのレコードを検索した

02:ファミリに検索していないレコードがある

NO

検索または格納したレコードの一連番号

10バイトで表示されます。

PP

事前割り当てページ数

レコードの格納で指定した事前割り当てページ数,またはルートレコードの検索時に検索したルートレコードが属するファミリの事前割り当てページ数が10バイトで表示されます。

UN

USERポインタのレコードの一連番号

USERポインタが定義されたレコードの最初の検索時またはUSERポインタの操作時に,USERポインタのレコードの一連番号が10バイトで表示されます。

ROWID

検索,格納,または更新したレコードのROWID

26バイトで表示されます。

CONK

キーの条件の条件ブロックと値ブロックの内容(ダンプ形式)※2

COND

キー以外の条件の条件ブロックと値ブロックの内容(ダンプ形式)※2

ELM

構成要素指定エリアの内容(ダンプ形式)※2

KEY

キー報告エリア(キー部)の内容(ダンプ形式)※2

DATA

データ格納エリアの内容(ダンプ形式)※2

REQ+:STRT/FNSH※1

個別開始/終了一括要求オプション指定時に表示されます。

REQ+:STRT(0)※1

個別開始実行要求オプション指定時に表示されます。

次に示す下線部分には,SDBデータベースを操作するAPIを実行する際に入力されたハンドル番号が表示されます。

(例)

REQ+:STRT(0)

REQ+:STRT(1)

また,SD FMBに対する要求で,システムが個別開始を自動的に実行した場合も,ハンドル番号0が表示されます。

PREPROCESS FILE

プリプロセスしたUAPソースファイル名

オペレーションコードがEXSDの場合,UAPをプリプロセスしたときのHiRDB/SDのバージョンによって出力内容が異なります。

10-03-Bより前の場合

アスタリスク(*)

10-03-B以降の場合

プリプロセスファイル名

pdsdbcblコマンドに指定したUAPソースファイルのパス名から,ディレクトリ名を除いたファイル名です(拡張子を含みます)。ファイル名が30バイトを超えるときは,ファイル名の先頭から30バイトが表示されます。

オペレーションコードがEXSD以外の場合は,マニュアル「HiRDB UAP開発ガイド」の「SQLトレース情報の見方」を参照してください。

PREPROCESS TIME

プリプロセス時間

ポストソースファイルを特定するために,システムで使用する情報が表示されます。オペレーションコードがEXSDの場合,UAPをプリプロセスしたときのHiRDB/SDのバージョンによって出力内容が異なります。

10-03-Bより前の場合

アスタリスク(*)

10-03-B以降の場合

システムで使用する情報

オペレーションコードがEXSD以外の場合は,マニュアル「HiRDB UAP開発ガイド」の「SQLトレース情報の見方」を参照してください。

注※1

個別開始/終了一括要求オプションと個別開始実行要求オプションを同時に指定した場合は,次のように並べて表示されます。

REQNUM:2   REQ+:STRT/FNSH
           REQ+:STRT(0)
注※2

ASCIIコードの範囲外の文字はドット( . )で出力されます。

同じデータが2行以上続く場合,"--- SAME x LINES ---"が出力されます(xは行数)。

(2) パラメタトレース

SDBデータベースを操作するAPIまたはDMLの実行時に,パラメタトレースは出力されません。