ここでは,外部サーバエラー情報について説明します。
外部サーバエラー情報とは,外部サーバでエラーが発生したときのエラー情報です。UAPでは,外部サーバでエラーが発生したときエラーメッセージ情報は75バイトまでしか取得できません。したがって,それ以上の長さのメッセージが出力されたとき,エラーの原因調査で参考になります。
外部サーバエラー情報ファイルを取得するためには,外部サーバ情報定義でpd_hb_e_modeオペランドを省略するか,pd_hb_e_modeオペランドにALLを指定する必要があります。
pd_hb_e_modeオペランドを設定すると,%PDDIR%¥spool¥に次の二つのファイルが作成されます。これが外部サーバエラー情報ファイルです。
pdhe外部サーバ名1,pdhe外部サーバ名2
外部サーバエラー情報は,外部サーバに対するSQLがエラー(エラーのSQLコード)が返ってきた場合,外部サーバに対する処理要求時に出力されます。また,外部サーバ情報定義のpd_hb_e_codeオペランドを設定すると,指定したSQLコードのエラーメッセージの出力抑止を行うことができます。
外部サーバエラー情報は,一方のファイルに出力されます。最初の出力先は,pdhe外部サーバ名1です。そして,そのファイルの容量が満杯になると,出力先をもう一方のファイルに切り替えます。このとき,切り替え先のファイルに情報が格納されている場合,古いトレース情報から順に新しいトレース情報に書き換えられます。必要な情報はバックアップを取得しておいてください。
また,現在使用している外部サーバエラー情報ファイルを知りたい場合は,OSのls -lコマンドなどでファイルの更新日時を調べてください。更新日時が新しいファイルが現在使用している外部エラー情報ファイルです。
外部サーバエラー情報は,pdgeterコマンドの取得情報の対象になります。
外部サーバエラー情報の内容について例を使用して説明します。出力例を次の図に,図中の出力情報の説明を表5-4に示します。
図5-1 外部サーバエラー情報の出力例
外部サーバに対する処理要求ごとに項番3~15が繰り返し出力されます。
表5-4 外部サーバエラー情報の出力情報
項番 | 分類 | 項目 | 説明 |
---|---|---|---|
1 | 外部サーバ定義 | 外部サーバ名称 | データベースアクセス要求を行った外部サーバの名称です。「FOREIGN SERVER NAME:」のあとに出力されます。 |
2 | 外部サーバ種別 | データベースアクセス要求を行った外部サーバの種別を表示します。「KIND:」のあとに,次の情報のどれかが出力されます。 P: HiRDB R: XDM/RD O: ORACLE I:DB2 | |
3 | UAP 動作情報 | BESのプロセスID | データベースアクセス要求を行った外部サーバを登録しているBESのプロセスIDが出力されます。 |
4 | FES名称※1 | SQLオブジェクト実行を行ったSQLを受け付けたFESの名称が出力されます。 | |
5 | FESのプロセスID※2 | SQLオブジェクト実行を行ったSQLを受け付けたFESのプロセスIDが出力されます。 | |
6 | コネクト通番※2 | コネクト通番が出力されます。これは,FESがCONNECTを受け付けるごとに順次カウントされます。 | |
7 | スレッド番号 | データベースアクセス要求を行った外部サーバを登録しているBESのスレッド番号が出力されます。 | |
8 | SQL情報 | SQLカウンタ※2 | SQLを受け付けるごとに順次カウントされる値が,出力されます。1から999,999までの値が使用され, 999,999を超えると1に戻ります。 |
9 | セクション番号※2 | SQLトレースのセクション番号と対応する番号が出力されます。 | |
10 | サブセクション番号※2 | SQLの対応を確認するための番号が出力されます。 | |
11 | コールインタフェース情報 | 外部サーバに対するコールインタフェース名 | コールインタフェース名称(外部サーバがHiRDBのときはキーワードだけ)が出力されます。 |
12 | 結果 | SQLコード | SQLCODE値が出力されます。 |
13 | 外部サーバでのエラー発生日時 | エラーが発生した日時が,YYYY/MM/DD HH:MM:SS形式で表示されます。 | |
14 | 外部サーバに対するコールインタフェース情報 | コールインタフェースで指定したパラメタ情報が表示されます。 | |
15 | 外部サーバエラーメッセージ | 外部サーバから取得したメッセージが表示されます。メッセージの上限は512バイトです。 |