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プログラムにアタッチされるまで待機状態になります。
親トピック: CICSランタイムでの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 (リモート)でデバッグします。」を参照してください。
親トピック: CICSランタイムでのCOBOLプログラムのデバッグ
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
のみがデバッグされます。
親トピック: CICSランタイムでのCOBOLプログラムのデバッグ
12.1.4 デバッグ構成ファイルの動的ロード
ART for CICSを再起動せずにデバッグ構成リソース・ファイルkix_cobol_dbg.cfg
を動的にロードできます。
この構成ファイルを動的にロードするには、次のステップを実行します。
artadmin
ユーティリティを起動します。詳細は、「artadmin (1)」を参照してください。
config_update
(cu
)と入力します。config_update
(cu
)で構成の変更を伝播し、アプリケーション・サーバーに対して構成の変更内容を受け入れるようリクエストします。perform
(p
)と入力します。perform
(p
)でサーバーに送信されたコマンドを実行し、コマンド・バッファをクリアします。バッファが空ではない場合、バッファ・コンテナが表示され、確認が必要になります。
送信が失敗すると、
「実行が取り消されました。」
が表示され、エラーがUSERLOG
に記録されます。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」を参照してください。
親トピック: CICSランタイムでのエラー処理
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」を参照してください。
親トピック: CICSランタイムでのエラー処理