12 CICSランタイムでのCOBOLプログラムのデバッグおよびエラー処理

この章のトピックは、次のとおりです:

12.1 CICSランタイムでのCOBOLプログラムのデバッグ

ART for CICSでは、COBOLアプリケーション・プログラムを変更せずに、オンラインでデバッグできます。サポートされているCOBOLコンパイラはMicro Focus COBOLとCOBOL-IT COBOLです。アニメータ・ツールを使ってMicro Focus COBOLプログラムをデバッグしながら、ディート・ツールを使ってCOBOL-IT COBOLプログラムをデバッグすることができます。どちらのツールを使っていても、ツールは様々な箇所でアプリケーション・プログラムの実行をインターセプトしてから、プログラムに関する情報を表示します。アプリケーション・プログラムが送信した画面はツールによって表示され、本番システムの場合と同様にテスト時にアプリケーション・プログラムと対話できます。

ART for CICSは、Micro Focus COBOLとCOBOL-IT COBOLでのセッション間デバッグをサポートします。セッション間デバッグでは、デバッグ対象のプログラムが実行されている異なるターミナル・ウィンドウからアニメータ・ツールまたはディート・ツールを使用できます。

  • Micro Focus COBOLを使用したデバッグ
  • COBOL-IT COBOLを使用したデバッグ
  • 構成
  • デバッグ構成ファイルの動的ロード

    ノート:

    • ART for CICS 12.1.3ローリング・パッチ019以上が必要です
    • COBOl-IT COBOLバージョン3.7.43以上が必要です。

12.1.1 Micro Focus COBOLを使用したデバッグ

Micro Focus COBOLを使用してデバッグを行うには、次のステップに従います。

  • まず、config/resources/kix_cobol_dbg.cfg構成ファイルを作成します。詳細は、「構成」を参照してください。
  • 次に、prepro-cics.plユーティリティを使用してCOBOLプログラムの前処理をします。詳細は、「構成」を参照してください。
  • 次に、tmshutdown/tmbootを使用するか、 「デバッグ構成ファイルの動的ロード」の手順に従ってアプリケーションを再起動します。
  • 最後に、アニメータを1つのセッションで先に起動します。このアニメータは、別のセッションで起動されたMicro Focus COBOLプログラムにアタッチされるまで待機状態になります。

12.1.2 COBOL-IT COBOLを使用したデバッグ

COBOL-IT COBOLを使用してデバッグを行うには、次のステップに従います。DeetグラフィックUIの詳細は、COBOL-IT COBOLのドキュメントを参照してください。

  • まず、config/resources/kix_cobol_dbg.cfg構成ファイルを作成します。詳細は、「構成」を参照してください。
  • 次に、prepro-cics.plユーティリティを使用してCOBOLプログラムの前処理をします。詳細は、「構成」を参照してください。
  • 次に、tmshutdown/tmbootを使用するか、「デバッグ構成ファイルの動的ロード」の手順に従ってアプリケーションを再起動します。
  • 次に、トランザクションを開始します。COBOLプログラムが実行されるまでハングし、デバッグ・セッションの開始を待機します。
  • 次に、vncserverを使用してVNC環境を起動します。

    VNC xtermで、コマンドdeet -p myAnimSrvID1を使用してデバッグ・セッションを開始します。ディート・グラフィックUIが起動され、COBOLプログラムがアタッチされます。先にトランザクションを開始してから、ディート・ツールでデバッグ・セッションを開始する必要があることに注意してください。

  • 最後に、ディート・グラフィックUIで1ステップずつCOBOLプログラムをデバッグできます

    ノート:

    COBOL-IT COBOLディート・ツールでは、1つのトランザクション内のLINK(ローカル)はサポートされません。LINK (ローカル)をデバッグするには、「ユースケース4: 1人のユーザーが2つのプログラムをLINK (リモート)でデバッグします。」を参照してください。

12.1.3 構成

CICSランタイムでCOBOLプログラムをデバッグする前に次の構成を行います。

  • kix_cobol_dbg.cfg構成ファイルを構成します。

    詳細は、「デバッグ構成ファイル」を参照してください。

  • prepro-cics.plユーティリティを使用してCOBOLプログラムを事前処理します。

    prepro-cics.pl -type_output=orig < RSSBT000.cbl > RSSBT000.cob

    ノート:

    • CICS COBOLアプリケーション・プログラムが実行されると、ART for CICSアプリケーション・サーバーで前述の構成がチェックされ、デバッグを有効にするか判断されます。したがって、デバッグの前に前述の構成をすべて終えておく必要があります。
    • COBOLソース・コード・ディレクトリ下のすべての.gntファイルを削除することをお薦めします。
    • ART for CICSサーバーを起動するLinuxユーザー・アカウントは、anim (Micro Focus COBOLプログラムの場合) / deet (COBOL-IT COBOLプログラムの場合)コマンドラインを実行するLinuxユーザー・アカウントと同じである必要があります。anim / deetユーティリティで指定されているANIMSRVIDのみがデバッグされます。

12.1.4 デバッグ構成ファイルの動的ロード

ART for CICSを再起動せずにデバッグ構成リソース・ファイルkix_cobol_dbg.cfgを動的にロードできます。

この構成ファイルを動的にロードするには、次のステップを実行します。

  1. artadminユーティリティを起動します。

    詳細は、「artadmin (1)」を参照してください。

  2. config_update (cu)と入力します。

    config_update (cu)で構成の変更を伝播し、アプリケーション・サーバーに対して構成の変更内容を受け入れるようリクエストします。

  3. perform (p)と入力します。

    perform (p)でサーバーに送信されたコマンドを実行し、コマンド・バッファをクリアします。

    バッファが空ではない場合、バッファ・コンテナが表示され、確認が必要になります。

    送信が失敗すると、「実行が取り消されました。」が表示され、エラーがUSERLOGに記録されます。

  4. quit (q)と入力します。

    quit (q)と入力し、このセッションを終了します。

12.2 CICSランタイムでのエラー処理

CICSランタイムでは、CICS動詞の例外を検出し、関連するエラー・メッセージおよびABENDコードを出力します。それ以外に、ART for CICSでエラー・プロシージャがインストールされ、COBOL LE(言語環境)エラーが発生すると実行されます。このエラー・プロシージャでは、ART for CICSが詳細なエラー行およびCOBOLプログラムが異常終了した理由をレポートし、CICSランタイムがCICS ABENDコードASRAでCOBOLプログラムを中断してCICSランタイム・サーバーが停止しないようにします。

例外によりCICSランタイムが不安定になる状況を回避するために、1つのサーバーが許容できる最大例外数を制御するKIX_MAX_FATAL_NUMが導入されています。例外数がKIX_MAX_FATAL_NUMを超えると、CICSランタイム・サーバーはSIGTERMを送信して、それ自体を終了します。CICSランタイム・サーバーは、自動的に再起動するようRESTART=Yとして構成できます。詳細は、「KIX_MAX_FATAL_NUM」を参照してください。

12.2.1 前提条件

どのCOBOLコンパイラ(Micro Focus COBOLまたはCOBOL-IT)を使用しても、CICSランタイムでエラー・プロシージャがデフォルトでインストールされます。

ART for CICSでは、COBOL LE (言語環境)エラー・プロシージャを有効または無効にする環境変数KIX_CBL_TRAP_ERRORが提供されます。デフォルト値はYで、エラー・プロシージャが有効であることを意味します。KIX_CBL_TRAP_ERROR=Nを指定した場合、COBOL LE (言語環境)エラー・プロシージャは無効になり、例外が検出されると、CICSランタイム・サーバーが停止しないように、CICSランタイムが制御を引き継ぎます。CICSランタイムは、環境変数KIX_DUMP_TYPEが制御する、検出された例外に関する関連情報も生成します。

特に、CICSランタイムがCOBOL-ITで実行されている場合、-debugコンパイラ・フラグを使用してCOBOLプログラムをコンパイルし、エラー・プロシージャの機能を有効にする必要もあります。

詳細は、「KIX_CBL_TRAP_ERROR」および「KIX_DUMP_TYPE」を参照してください。

12.2.2 メモリー・ダンプ

CICSランタイムがCOBOL-ITで実行される場合、COBOL LEエラーが発生するとART for CICSはエラー・プロシージャ機能だけでなく、プログラムの最終的なメモリー情報も提供します。

環境変数KIX_DUMP_FILEを有効なローカル・ファイル名で指定すると、このメモリー・ダンプ機能を有効にできます。COBOL LEエラーが発生すると、ART for CICSはまずエラー・プロシージャをアクティブにし、プログラムの最終的なメモリー情報をKIX_DUMP_FILEで指定したダンプ・ファイルに出力します。

メモリー・ダンプ機能は、CICS動詞エラーが発生した場合も機能します。

詳細は、「KIX_SO_SUBSYS_WRAPPER」を参照してください。