COBOL プログラムを使用する方法
COBOL プログラムを使用して DB2® で Fault Analyzer を検証するには、データ・セット IDI.SIDISAM1 のサンプル・ジョブ IDIVPDBB を編集し、実行依頼します。このジョブは、COBOL プログラム・ソース・コードが入っている別のサンプル・メンバー IDISDB2B を入力として使用します。詳細については、サンプル・ジョブ内の説明を参照してください。
ジョブは COBOL プログラムをコンパイルし、実行します。このプログラムはシステム異常終了コード S0C9 で異常終了します。
この IVP を実行する前に、DB2® サンプル・データベース環境が正しくセットアップされていることを確認する必要があります。DSNTEJ2C DB2® IVP の実行については、『DB2® for z/OS® Installation and Migration Guide』の手順に従ってください。DSNTEJ2C を正しく実行できたら、Fault Analyzer IDIVPDBB サンプルにリストされている変更を DB2® DSNTEJ2C サンプルに加えるか、または Fault Analyzer IDIVPDBB サンプルを DB2® DSNTEJ2C サンプルと同じように変更してください。
IDISDB2B プログラムに対する DB2® RUN コマンドに指定された TER(TRACE) LE オプションの結果、Fault Analyzer が LE CEEEXTAN 出口 IDIXCEE から呼び出されます
Fault Analyzer に書き込まれた IDIREPRT レポートの概要セクションには、以下が含まれます。
Fault Analyzer の日本語フィーチャーでは、Language(JPN) オプションが有効である場合、 これは日本語になっているはずです。
A system abend 0C9 occurred in module IDISDB2B program IDISDB2B at offset
X'1EE2'.
A program-interruption code 0009 (Fixed-Point-Divide Exception) is associated
with this abend and indicates that:
The divisor was zero in a signed binary division.
The cause of the failure was program IDISDB2B in module IDISDB2B. The COBOL
source code that immediately preceded the failure was:
Source
Line #
------
001165 DIVIDE NOT-FOUND BY PERCENT-COUNTER
001166 GIVING ERROR-TEXT-LEN.
The COBOL source code for data fields involved in the failure:
Source
Line #
------
000137 77 NOT-FOUND PIC S9(9) COMP VALUE +100.
000146 77 ERROR-TEXT-LEN PIC S9(9) COMP VALUE +120.
000207 *
000208 77 PERCENT-COUNTER PIC S9(4) COMP.
Data field values at time of abend:
ERROR-TEXT-LEN = 120
NOT-FOUND = 1
PERCENT-COUNTER = 0 *** Cause of error ***分析には、以下と似た DB2® 情報セクションが組み込まれます。--------------------------------------------------------------------------------
<H3> DB2 Subsystem DB42
DB2 Version . . . . . . . . : V8R1M5
Plan Name . . . . . . . . . : DSN8BH81 (Bound 2006/08/25 14:30:52)
Plan Owner. . . . . . . . . : NWILKES
Database Request Module Name: DB2V810.DB42.DBRMLIB.DATA(IDISDB2B)
Consistency Token . . . . . : X'17E9C40018AE6A18'
Primary Authorization ID. . : NWILKES
Current SQL ID. . . . . . . : NWILKES
Source
Line #
------
Last Executed SQL Statement : 001149 ***** EXEC SQL FETCH TELE1 INTO :PPHONE END-EXEC.
Fault Analyzer Event #. . . : 4 (Program IDISDB2B)
Declare Cursor Stmt No. . . : 200
Declare Cursor Stmt . . . . : DECLARE TELE1 CURSOR FOR SELECT * FROM DSN8810 .
VPHONE
Open Cursor Stmt No . . . . : 346
Open Cursor Stmt. . . . . . : OPEN TELE1
Output Host Variables:
Name and Data Type. . . . : PPHONE.LASTNAME VARCHAR(15)
At Address. . . . . . . : 168A83D8
Data Value. . . . . . . : HAAS
Name and Data Type. . . . : PPHONE.FIRSTNAME VARCHAR(12)
At Address. . . . . . . : 168A83E9
Data Value. . . . . . . : CHRISTINE
Name and Data Type. . . . : PPHONE.MIDDLEINITIAL CHARACTER(1)
At Address. . . . . . . : 168A83F7
Data Value. . . . . . . : I
Name and Data Type. . . . : PPHONE.PHONENUMBER CHARACTER(4)
At Address. . . . . . . : 168A83F8
Data Value. . . . . . . : 3978
Name and Data Type. . . . : PPHONE.EMPLOYEENUMBER CHARACTER(6)
At Address. . . . . . . : 168A83FC
Data Value. . . . . . . : 000010
Name and Data Type. . . . : PPHONE.DEPTNUMBER CHARACTER(3)
At Address. . . . . . . : 168A8402
Data Value. . . . . . . : A00
Name and Data Type. . . . : PPHONE.DEPTNAME VARCHAR(36)
At Address. . . . . . . : 168A8405
Data Value. . . . . . . : SPIFFY COMPUTER SERVICE DIV.
--------------------------------------------------------------------------------
<H3> DB2 Control Blocks
SQL Communications Area (SQLCA) for subsystem DB42 not shown as it is identical
to the SQLCA in the detail section for event # 4 program IDISDB2B.