Hitachi

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


16.5.4 拡張SQLエラー情報出力機能

クライアントエラーログ機能の情報に,SQL文,およびパラメタ情報を加えてSQLエラーレポートファイルに取得します。

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

SQLエラーレポートファイルは,取得した情報で満杯になると,もう一方のファイルに出力先を切り替えます。切り替わったファイルでも,これを繰り返しながら2つのファイルを交互に使用します(切り替え先の古い内容は削除されます)。

詳細については,マニュアル「HiRDB UAP開発ガイド」の「拡張SQLエラー情報出力機能」を参照してください。

〈この項の構成〉

(1) SQLエラー情報の見方

SDBデータベースを操作するAPIまたはDMLの実行時に出力されるSQLエラー情報の出力例を図16-5図16-6に示します。

図16‒5 SQLエラー情報の出力例(4V FMBのSDBデータベースの場合)

[図データ]

[図データ]

[図データ]

図16‒6 SQLエラー情報の出力例(SD FMBのSDBデータベースの場合)

[図データ]

[図データ]

[図データ]

[説明]

SQLエラー情報に出力される各項目については,マニュアル「HiRDB UAP開発ガイド」の「SQLエラー情報の見方」を参照してください。このとき,「SQL文」は,「SDBデータベースを操作するAPI」または「DML」に読み替えてください。

ただし,図16-5図16-6で,枠で囲まれた部分の項目については,以下で説明します。

出力内容

説明

UAP

UAP情報

SVR

サーバ情報

  • サーバプロセスが動作しているホスト名(出力文字数は最大30バイト)

  • サーバプロセスの通信ポート番号(出力文字数は最大5バイト)

  • フロントエンドサーバのサーバ名(出力文字数は最大8バイト)

  • クライアントライブラリが対応しているプラットフォーム(出力文字数は最大6バイト)

SQLINF

SQL情報

  • SQL最適化オプションの値(10進数形式)(出力文字数は最大10バイト)

  • SQL拡張最適化オプションの値(10進数形式)(出力文字数は最大10バイト)

  • データ保証レベルの値(出力文字数は最大10バイト)

SQL

SDBデータベースを操作するAPIまたはDMLの実行時にはアスタリスク(*)が表示されます。

DMLINF

各エリアの情報

各エリアのサイズが表示されます。エリアサイズが0以下の場合は,エリア名とエリアサイズだけが表示されます。

各エリアの内容がダンプ形式で表示されます(1行に16バイト分が並びます)。同様のデータが2行以上続く場合は,「--- SAME n LINES ---"(nは行数)」が表示されます。ASCII文字はアスタリスク(*)で囲まれて表示されます。

*NO

SQLカウンタ

コネクト要求を1とし,SQL文,SDBデータベースを操作するAPI,またはDMLの実行1回ごとに1カウントアップした値が出力されます。

START TIME

DML要求開始時刻

HiRDBクライアントからフロントエンドサーバに,SDBデータベースを操作するAPIまたはDMLの実行要求を送信した時刻が,YYYY/MM/DD hh:mm:ssの形式で出力されます。

YYYY:年

MM:月

DD:日

hh:時

mm:分

ss:秒

END TIME

DML要求終了時刻

フロントエンドサーバからHiRDBクライアントに,SDBデータベースを操作するAPIまたはDMLの実行結果を返却した時刻が,YYYY/MM/DD hh:mm:ssの形式で出力されます。

YYYY:年

MM:月

DD:日

hh:時

mm:分

ss:秒

HNDCOM

共通エリアの内容

4VCNTROL

4V固有エリア(管理部)の内容

SDCNTROL

SD固有エリア(管理部)の内容

4VREQUEST

4V固有エリア(要求部)の内容

SDREQUEST

SD固有エリア(要求部)の内容

KEYCONDITION

キーの条件の条件ブロックエリアの内容

DATACONDITION

キー以外の条件の条件ブロックエリアの内容

KEYVALUE

キーの条件の値ブロックエリアの内容

DATAVALUE

キー以外の条件の値ブロックエリアの内容

この項目で出力されるエリアダンプは,最大64バイトで打ち切られます。エリアサイズには,元々の値が出力されます。

INPUTDATA

データ指定エリアの内容

STORDATA

データ格納エリアの内容

この項目は,クライアント環境定義のPDUAPEXERLOGDMLDATAオペランドにYESを指定した場合に出力されます。

この項目で出力されるエリアダンプは,最大64バイトで打ち切られます。エリアサイズには,元々の値が出力されます。

ELMAREA

構成要素指定エリアの内容

KEYREPORT

キー報告エリアの内容

RESULTSAVE

処理結果退避エリアの内容

RDAREANAME

RDエリア名称格納エリアの内容

SDREQUEST2

SD固有エリア(要求部2)の内容

注※

一度の要求で複数のレコードに対してアクセスする要求の場合は,すべてのアクセス分が表示されます。複数のレコードに対してアクセスする要求については,マニュアル「TP1/Financial Service Platform プログラム作成の手引」の「SDBハンドラ制御(ee_sdh_〜)(C 言語)」の「ee_sdh_accs」を参照してください。

なお,SD FMBのSDBデータベースの場合,複数のレコードに対してアクセスする要求はできません。

DMLINF以降の出力内容については,エラー発生時の要求およびクライアント環境定義のPDUAPEXERLOGDMLSZオペランドの指定値によって,次の情報に対応する内容が出力されます。DML履歴用バッファについては,「(2) DML履歴用バッファ」を参照してください。

留意事項

クライアント環境定義のPDUAPERLOGオペランドに0以外の値を指定した場合,拡張SQLエラー情報の出力が途中で中断されて「--- DATA OMITTED ---」と出力されることがあります。この場合,「(2+PDUAPEXERLOGDMLSZオペランドの指定値)×5120」以上の値をPDUAPERLOGオペランドに指定してください。その結果,拡張SQLエラー情報が中断されないで出力されるようになります。

(2) DML履歴用バッファ

DML履歴用バッファとは,CONNECT文を要求してからDISCONNECT文が要求されるまでの間に入力された情報をクライアントライブラリ内に記録するバッファのことです。

SDBデータベースを操作するAPIまたはDMLが正常終了してフロントエンドサーバから実行結果が返却された際に,実行結果を反映した情報をバッファ内に記録します。このとき,バッファの空きがない場合は,古い情報から上書きして記録されます。

DML履歴用バッファの記録イメージを次の図に示します。

図16‒7 DML履歴用バッファの記録イメージ

[図データ]

DML履歴用バッファに格納された情報は,SQL文,SDBデータベースを操作するAPI,またはDMLの実行時の拡張SQLエラー情報出力時にエリアダンプとして出力されます。「図16-5 SQLエラー情報の出力例(4V FMBのSDBデータベースの場合)」または「図16-6 SQLエラー情報の出力例(SD FMBのSDBデータベースの場合)」の出力例の[2]が該当します。

留意事項

エリアダンプの出力量が多くなるほど,拡張SQLエラー情報の出力に掛かる時間が増加します。SQL文,SDBデータベースを操作するAPI,またはDMLでエラーが発生した際の処理時間が,要求元のタイマ監視などで問題となる場合は,次の指定値を見直してください。

  • クライアント環境定義のPDUAPEXERLOGDMLSZ

    DML履歴用バッファのサイズを小さくすると,エリアダンプの出力量が少なくなります。

  • クライアント環境定義のPDUAPERLOG

    0以外の値を指定すると,エリアダンプの出力量が指定したサイズに制限されます。