第5章 エラー時の対処
5.2 トレース出力機能
5.2.3 トレース情報の内容
5.2.3.3 トレースへの文字列の出力
注意
セッションの変更サブルーチンのトレース出力について
セッションの変更サブルーチン(COB_PRDB_CHG)を実行しても、トレース出力されません。トレースに、変更したセッションIDの情報 を出力したい場合には、トレースへの文字列出力サブルーチンを使用してください。詳細は、「5.2.3.3 トレースへの文字列の出力」を 参照してください。
XMROLOGサブルーチン(シングルセッション)か、COB_PRDB_LOGサブルーチン(マルチセッション)を実行してトレースファイルに、
任意の文字列を出力します。
注意
トレースへの文字列の出力サブルーチンのサポートについて
XMROLOGサブルーチン(シングルセッション)と、COB_PRDB_LOGサブルーチン(マルチセッション)は、64ビット動作のみサポート しています。32ビット動作ではサポートしていないため、注意してください。
5.2.3.3.1 トレースへの文字列出力サブルーチンのインターフェース(シングルセッション)
トレースへの文字列出力サブルーチンのインターフェースは、以下のとおりです。
・ 機能
トレースファイルに任意文字列を出力します。
・ 呼出し形式
CALL "XMROLOG" USING 出力情報 エラー情報 RETURNING 復帰値.
・ パラメーターのデータ定義 01 出力情報.
02 文字列長 PIC S9(9) COMP-5.
02 出力文字列 PIC X(260).
01 エラー情報.
02 終了情報 PIC S9(9) COMP-5.
02 詳細情報 PIC S9(9) COMP-5.
02 FILLER PIC S9(9) VALUE 0.
01 復帰値 PIC S9(9) COMP-5 VALUE 0.
※上記は、必ずレベル番号01で記載してください。
※FILLERは、0を設定してください。
・ パラメーターの意味
- 文字列長
トレースファイルに出力する文字列長を、256バイト以内で指定します。
- 出力文字列
トレースファイルに出力する文字列を英数字で指定します。
文字列長に指定した長さよりも長い文字列を指定した場合、文字列長に指定した長さ分だけが出力されます。
- 終了情報/詳細情報
終了情報および詳細情報を、以下に示します。
表5.15 トレースへの文字列出力サブルーチン(シングルセッション)のエラーコード
error code意味 対処
終了情報 10進数
詳細情報 10進数
0 0 ・ 正常終了 ・ なし
error code
意味 対処
終了情報 10進数
詳細情報 10進数
91 0
・ 文字列長の指定に誤 りがあります。
・ 文字列長が256バイト 以内か確認してくださ い。
・ コード変換でエラー が発生しました。
・ シフトJISにコード変換 できない文字があるか 確認してください。
・ 復帰値
復帰値は、以下のとおりです。
表5.16 XMROLOGサブルーチンの復帰値
復帰値 意味 イベントログ出力の有無
0 正常 なし
-1 エラー あり
・ 使用例
使用例を示します。
DATA DIVISION.
WORKING-STORAGE SECTION.
01 出力情報.
02 文字列長 PIC S9(9) COMP-5.
02 出力文字列 PIC X(260).
01 エラー情報.
02 終了情報 PIC S9(9) COMP-5.
02 詳細情報 PIC S9(9) COMP-5.
02 FILLER PIC S9(9) VALUE 0.
01 復帰値 PIC S9(9) COMP-5 VALUE 0.
PROCEDURE DIVISION.
OPEN I-O INFILE.
* 任意ログを出力する。
MOVE "COBOL-SESSION=USER01" TO 出力文字列.
MOVE 20 TO 文字列長
CALL "XMROLOG" USING 出力情報 エラー情報 RETURNING 復帰値.
…
CLOSE INFILE.
図5.2 出力結果例
5.2.3.3.2 トレースへの文字列出力サブルーチンのインターフェース(マルチセッション)
トレースへの文字列出力サブルーチンのインターフェースは、以下のとおりです。
・ 機能
トレースファイルに任意文字列を出力します。
・ 呼出し形式
CALL "COB_PRDB_LOG" USING BY REFERENCE セッションID BY REFERENCE 出力文字情報 BY REFERENCE エラー情報 RETURNING 復帰値.
・ パラメーターのデータ定義
01 セッションID PIC X(30).
01 出力文字情報.
02 文字列長 PIC S9(9) COMP-5 02 出力文字列 PIC X(260).
01 エラー情報.
02 終了情報 PIC S9(9) COMP-5.
02 詳細情報 PIC S9(9) COMP-5.
02 FILLER PIC S9(9) VALUE 0.
01 復帰値 PIC S9(9) COMP-5 VALUE 0.
※上記は、必ずレベル番号01で記載してください。
※FILLERは、0を設定してください。
・ パラメーターの意味
- セッションID(必須)
英数字項目で30バイト指定します。
セッション開設サブルーチンで指定したセッションIDを指定してください。
文字の種類の制約はありません。なお、本パラメーターは必ず指定してください。
- 文字列長
トレースファイルに出力する文字列長を、256バイト以内で指定します。
- 出力文字列
トレースファイルに出力する文字列を英数字で指定します。
文字列長に指定した長さよりも長い文字列を指定した場合、文字列長に指定した長さ分だけが出力されます。
- 終了情報/詳細情報
終了情報および詳細情報を、以下に示します。
表5.17 トレースへの文字列出力サブルーチン(マルチセッション)のエラーコード
error code意味 対処
終了情報 10進数
詳細情報 10進数
0 0 ・ 正常終了 ・ なし
91 0
・ 文字列長の指定に誤 りがあります。
・ 文字列長が256バイト 以内か確認してくださ い。
・ コード変換でエラー が発生しました。
・ シフトJISにコード変換 できない文字があるか 確認してください。
・ 復帰値
復帰値は、以下のとおりです。
表5.18 COB_PRDB_LOGサブルーチンの復帰値
復帰値 意味 イベントログ出力の有無
0 正常 なし
-1 エラー あり
-201 セッションIDの指定が正しくあ
りません。 なし
・ 使用例
マルチセッションを使用した場合、トレースファイルよりCOBOLアプリケーションのセッションIDとプログラムのスレッドIDを関連 付けすることができます。
DATA DIVISION.
WORKING-STORAGE SECTION.
01 SESSION-ID PIC X(30).
01 RET-VALUE PIC S9(9) COMP-5.
01 セッション情報.
02 文字列長 PIC 9(9) COMP-5.
02 出力文字列 PIC X(260).
01 エラー情報.
02 終了情報 PIC S9(9) COMP-5.
02 詳細情報 PIC S9(9) COMP-5.
02 FILLER PIC S9(9) VALUE 0.
01 復帰値 PIC S9(9) COMP-5 VALUE 0.
*
PROCEDURE DIVISION.
* セッション開始
MOVE "SESSION-01" TO SESSION-ID.
CALL "COB_PRDB_START" USING BY REFERENCE SESSION-ID RETURNING RET-VALUE.
OPEN I-O INFILE.
* セッションIDを出力する。
MOVE "COBOL-SESSION=SESSION-01" TO 出力文字列.
MOVE 24 TO 文字列長.
CALL "COB_PRDB_LOG" USING BY REFERENCE SESSION-ID BY REFERENCE セッション情報
BY REFERENCE エラー情報 RETURNING 復帰値.
…
CLOSE INFILE.
* セッション終了
CALL "COB_PRDB_END" USING BY REFERENCE SESSION-ID RETURNING RET-VALUE.
* セッション開始
MOVE "SESSION-02" TO SESSION-ID.
CALL "COB_PRDB_START" USING BY REFERENCE SESSION-ID RETURNING RET-VALUE.
OPEN I-O INFILE.
* セッションIDを出力する。
MOVE "COBOL-SESSION=SESSION-02" TO 出力文字列.
MOVE 24 TO 文字列長.
CALL "COB_PRDB_LOG" USING BY REFERENCE SESSION-ID BY REFERENCE セッション情報
BY REFERENCE エラー情報 RETURNING 復帰値.
…
CLOSE INFILE.
* セッション終了
CALL "COB_PRDB_END" USING BY REFERENCE SESSION-ID RETURNING RET-VALUE.
図5.3 出力結果例
5.2.3.3.3 トレースへの文字列出力サブルーチンの注意事項
トレースへの文字列出力サブルーチンの注意事項を、以下に示します。
・ 本サブルーチンは、PowerRDBconnector動作環境ファイルのTraceLevelプロパティの値によらず、TraceModeプロパティがONのと きだけ、動作します。
TraceModeプロパティがOFFの場合、本サブルーチンは正常終了しますが、動作しません。
・ トレースファイルのコード系は、シフトJISです。このため、COBOLアプリケーションが、unicodeで動作していた場合でも、本サブルー チンで出力される文字列はシフトJISに変換されて出力されます。シフトJISにない文字を出力しようとした場合、本サブルーチンは エラーとならず、?のように文字化けして出力します。
・ 本サブルーチンによりトレースファイルに文字列を出力時、トレースファイルの書込みでエラーが発生しても、本サブルーチンはエ ラー終了されず、トレース情報の採取のみ停止します。
・ 本サブルーチンは、以下の区間でのみ動作します。
表
5.19トレースへの文字列出力サブルーチンの有効区間について
プログラミングスタイル サブルーチン名 有効区間
シングルセッション XMROLOG プロセス初回OPEN後~プロセス終了 マルチセッション COB_PRDB_LOG スレッド初回OPEN後~セッション閉設 上記区間外では、本サブルーチンは正常終了しますが、動作しません。
・ 本サブルーチンで大量の文字列を出力すると、トレースファイルの負荷が増加するため、性能劣化します。調査に必要なときの み、本サブルーチンを実行するようにしてください。
付録 A 他製品のファイル資源
本章では、他製品(ファイルシステム、データベース系)のファイル資源および代替方法について説明します。
業務システムの機能・構成設計時に、CSP/FXやASPのデータベース資産としてよく使用される、論理ファイルの使用について、開発 者が確認する場合にお読みください。