16.5.2 SQLトレース機能
実行したUAPのSQLトレース情報をSQLトレースファイルに取得します。SDBデータベースを操作するAPIまたはDMLの実行時にエラーが発生した場合,SQLトレース情報を参照すると,エラーの原因となるHiRDBの情報を特定できます。
SQLトレースファイルは,取得した情報で満杯になると,最も古い情報から順次新しい情報に書き替えられます。SQLトレース機能の詳細については,マニュアル「HiRDB UAP開発ガイド」の「SQLトレース機能」を参照してください。
- 〈この項の構成〉
(1) SQLトレース情報の見方
SDBデータベースを操作するAPIまたはDMLの実行時に出力されるSQLトレース情報の出力例を次の図に示します。
- [説明]
-
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ポインタ
-
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:条件式の指定あり
CK
キーの条件の条件ブロックエリアの指定
1バイトで表示されます。指定がない場合は表示されません。
Y:キーの条件の条件ブロックエリアの指定あり
CD
キー以外の条件の条件ブロックエリアの指定
1バイトで表示されます。指定がない場合は表示されません。
Y:キー以外の条件の条件ブロックエリアの指定あり
KA
キー報告エリアの指定
1バイトで表示されます。指定がない場合は表示されません。
Y:キー報告エリアの指定あり
FU
FOR UPDATE
1バイトで表示されます。指定がない場合は表示されません。
Y:FOR UPDATEの指定あり
2U
二次インデクス使用フラグ
2バイトで表示されます。二次インデクスを使用していない場合は表示されません。
01:一連番号用の二次インデクスを使用した
02:ユーザキー用の二次インデクスを使用した
PI
レコードポインタ情報
2バイトで表示されます。下記に該当しない場合は表示されません。
c0:LASTポインタおよびFIRSTポインタの示すレコードを検索または格納した
80:LASTポインタの示すレコードを検索または格納した
40:FIRSTポインタの示すレコードを検索または格納した
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が表示されます。
-
- 注※1
-
個別開始/終了一括要求オプションと個別開始実行要求オプションを同時に指定した場合は,次のように並べて表示されます。
REQNUM:2 REQ+:STRT/FNSH REQ+:STRT(0)
- 注※2
-
ASCIIコードの範囲外の文字はドット( . )で出力されます。
同じデータが2行以上続く場合,"--- SAME x LINES ---"が出力されます(xは行数)。