COBOL プログラムを使用する方法

COBOL プログラムを使用して DB2®Fault Analyzer を検証するには、データ・セット IDI.SIDISAM1 のサンプル・ジョブ IDIVPDBB を編集し、実行依頼します。このジョブは、COBOL プログラム・ソース・コードが入っている別のサンプル・メンバー IDISDB2B を入力として使用します。詳細については、サンプル・ジョブ内の説明を参照してください。

ジョブは COBOL プログラムをコンパイルし、実行します。このプログラムはシステム異常終了コード S0C9 で異常終了します。

注: この IVP は、DB2® COBOL IVP に基づいています。これは通常、メンバー DSNTEJ2C (JCL) および DSN8BC3 (C ソース・コード) として DB2® の DSN.SDSNSAMP データ・セット内にあります。この IVP は、DB2® データベース・アクセスを実行した後、故意に異常終了するように変更されています。これにより、Fault Analyzer が呼び出され、DB2® 情報のレポート・セクションが組み込まれます。

この 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.