01.リアルタイム分析の準備

Fault Analyzerの利用可否を確認

コンソールまたはSDSFからMVSコマンド「D△PROG,EXIT,EN=IEAVTABX_EXIT,DIAG」を実行して、モジュール名IDIXDCAPがMVS出口IEAVTABXとして登録されているかを確認します。下記のように表示されればFault Analyzerはアクティブになっています。

コマンドに対して「CSV463I NO MODULES ARE ASSOCIATED WITH EXIT IEAVTABX_EXIT」のメッセージが返された場合は、Fault Analyzerがインストールされていないか有効になっていない可能性があります。その場合は、システム管理者にFault Analyzerが利用できるシステムなのかを問い合わせて下さい。

デバッグするプログラムのサイドファイルの生成

エラーを起こした命令をソースコードで示すには、モジュール・アセンブル時にサイドファイルを作り、実行時にFault Analyzerが読み込めるようにしておく必要があります。

デバッグするプログラムのADATA(サイドファイル)データセットの割り振り

レコード形式は可変長、レコード長は8188バイト以上にします。ADATAデータセットは区分データセットが便利です。メンバー登録を繰り返しても圧縮不要なPDSEデータセットとして作成しておきます。

デバッグするプログラムのADATA(サイドファイル)メンバーの登録

ADATA(サイドファイル)データは、アセンブル時のオプションADATAによって生成されます。PARMパラメーターでオプションADATAとデータ・メンバーの格納先データセットを定義したSYSADATA DDステートメントを追加します。

プログラムの実行JCLにFault Analyzer関連DDステートメントを追加

Fault Analyzerを利用してリアルタイム分析を行うためのJCL例です。プログラムを実行するJCLにIDIで始まるDD名のDDステートメントをいくつか追加します。
IDIADATAは、HLASMがADATAオプションによって生成したサイドファイルを格納したライブラリーの定義です。エラーを起こした命令をソースコードで示すには、モジュール・アセンブル時にサイドファイルを作り、実行時にFault Analyzerが読み込めるようにしておく必要があります。モジュール名もしくはCSECT名に対応するメンバーが読み込まれます。サイドファイルはオプションなので、未定義でもリアルタイム分析は行われます。ただし、ダンプ解析に慣れていないアセンブラー・プログラマーが自ら解析する代わりにFault Analyzerを使うのであれば、サイドファイルを用意しておくことを奨めます。
IDIHIST DD DUMMYは、ヒストリー・ファイルを使わないことを示します。ヒストリー・ファイルは、区分データセットに格納される分析データ・メンバーです。ABEND時のリアルタイム分析の他に、後でISPF上のFault Analyzerによってパネルによる非リアルタイム分析を行う際に利用されます。デフォルトのヒストリー・ファイルは共用もしくは業務用に運用されますから、学習用プログラムのABENDデータを格納するのは適切ではありません。そこで、IDIHIST DD DUMMYを定義して、ヒストリー・ファイルに格納しないことを明示します。
IDIOPTSは追加または変更するFault Analyzerオプションをそれぞれ定義するものです。INCLUDE(CLASS(*))は、バッチジョブであれば全てのクラスをリアルタイム分析の対象にすることを示します。DETAIL(MEDIUM,EXTRASOURCE(5))は省略値でもあって、中程度の詳細レベルで分析を行い、エラー箇所に関連するソースコードを前後5行分出力することを示します。IDIOPTS定義が無くてもFault Analyzerのリアルタイム分析が行われれば、IDIOPTSの定義は不要です。リアルタイム分析が行われると、ジョブログには下記に示すようなメッセージが出力されてIDIREPRTに分析結果のレポートが出力されます。

Fault Analyzerによるリアルタイム分析を行うデバッグ用サンプルJCL

下記にアセンブル&サイドファイル生成~実行形式モジュールのバインド~プログラムの実行迄の一連を行うJCL例を示します。

学習用プログラムのABENDをFault Analyzerを利用してリアルタイム分析します。JCL内にソースコードを記述して、HLASM標準提供のASMACLGプロシージャーによってアセンブル~バインド~実行迄を行います。

Fault Analyzerの詳細は、マニュアル「IBM Fault Analyzer for z/OSユーザーズ・ガイドおよびリファレンス」(SC43-4314)を参照して下さい。