Java try-catch ブロックからの Z Abend Investigator の起動
Java™ プログラムから現在の Java™ の状態を取り込むために、Z Abend Investigator を起動して、関連する MVS™ SVC ダンプとともにヒストリー・ファイルの障害項目を作成します。
使用される Z Abend Investigator ヒストリー・ファイルはデフォルトのヒストリー・ファイルです。別のヒストリー・ファイルを使用するには、オプションで説明されている _HFZ_OPTS または _HFZ_OPTSFILE 環境変数で指定します。作成される障害項目は、続いて Z Abend Investigator ISPF インターフェースを使用して再分析され、Z Abend Investigator が呼び出されたときに実行中の Java™ コードやネイティブ・コードを検討することができます。
- Z Abend Investigator HFZ_SDUMP_ACCESS XFACILIT プロファイルに対して ALTER アクセス権限を付与する必要があります。
名前 HFZ_SDUMP_ACCESS の XFACILIT クラス・プロファイル (リカバリー障害記録 SDUMP アクセスに使用されるプロファイルと同じもの) をセットアップして、Java™ ダンプ取り込みが必要となるユーザー ID またはグループに対して ALTER アクセス権限を付与します。以下のように定義すれば、ユーザーの Java™ アプリケーションで例外が発生した場合に、Z Abend Investigator は JDEV グループ内のすべてのユーザーに対して Java™ 取り込み SDUMP を作成できます。
RDEF XFACILIT HFZ_SDUMP_ACCESS UACC(NONE) PERMIT HFZ_SDUMP_ACCESS CLASS(XFACILIT) ID(JDEV) ACCESS(ALTER)ALTER アクセス権は XFACILIT HFZ_SDUMP_ACCESS プロファイルに対するものであり、実際の SDUMP データ・セットに対するものではありません。Z Abend Investigator は、許可状態を使用して Java™ 取り込み SDUMP へのアクセスを許可します。HFZ_SDUMP_ACCESS プロファイルはスイッチとして機能し、Z Abend Investigator はそのスイッチを検査して、特定のユーザーに対して SDUMP が作成可能かどうかを確認できます。
- MVS™ ポスト・ダンプ出口 HFZXTSEL をインストールする必要があります。詳しくは、MVS ポスト・ダンプ出口のインストール HFZXTSEL を参照してください。
- HFZS サブシステムを始動する必要があります。詳しくは、Z Abend Investigator HFZS サブシステムの使用 を参照してください。
Z Abend Investigator の呼び出しは try-catch ブロックの中や、ユーザー・プログラムの任意の場所に置くことができ、com.hcl.zai.Snap.dump メソッドを使用して実行されます。
Z Abend Investigator 障害項目のユーザー・タイトル・フィールドを初期化するための、オプションの comment 文字ストリングを指定できます。
public class JavaTest {
public static void main() {
...
try {
...
}
catch() {
...
com.hcl.zai.Snap.dump("Java error"); // Call Z Abend Investigator
}
}
}代替スナップ・ダンプ呼び出しメソッド
Z Abend Investigator を起動するために使用できる Java™「Snap.dump」メソッドには、多重定義されたバージョンがいくつかあります。
/**
* Create a Fault Entry
*
* @param dumpTitle The user title to use for the Fault Entry. (non-null & non-empty).
*/
public static void dump(String dumpTitle)
/**
* Create a Fault Entry
*
* @param dumpTitle The user title to use for the Fault Entry. (non-null & non-empty).
*
* @return The ID of the created Fault Entry, in the form <history file dataset>(<fault id>).
* E.g. HFZ.HIST(F00001)
*
*/
public static String dump(String dumpTitle, Throwable t)
/**
* Create a Fault Entry.
* (This should only be used when gathering diagnostic information requested by HCL Support.)
*
* @param dumpTitle The user title to use for the Fault Entry. (non-null & non-empty).
* @param debug Specifying 'true' will enable verbose debug information.
* Provide the output to HCL Support.
*
* @return The ID of the created Fault Entry, in the form <history file dataset>(<fault id>).
* E.g. HFZ.HIST(F00001)
*/
public static String dump(String dumpTitle, Throwable e, boolean debug)
アプリケーション・クラスパスへのスナップ・クラスの追加
- バージョン 11 より前の Java を使用している場合は、HFZXJAVA。
- Java バージョン 11 以降を使用している場合は、HFZXJA11。
com.hcl.zai.Snap.dump メソッドの呼び出しを容易にするには、Z Abend Investigator HFZXJAxx Java™ ライブラリーがアプリケーション・プログラム・ビルド・パスに存在しているか、または現行クラス・パス経由で使用可能になっていなければなりません。
- バージョン 11 より前の Java JVM を使用している場合:
-
- 以下のいずれかを実行します。
- 次のような JCL を使用して、z/OS 上のアプリケーション・ディレクトリーに jar ファイルをコピーします。
//* --- Copy HFZXJAVA to an HFS directory: //CPYXJAVA EXEC PGM=BPXBATCH //STDPARM DD * SH cp "//'HFZ.SHFZDOC1(HFZXJAVA)'" /u/hunter2/hfzxjava.jar /* //STDOUT DD SYSOUT=* //STDERR DD SYSOUT=* - ご使用のプロジェクト開発ディレクトリーにファイル HFZ.SHFZDOC1 として HFZXJAVA(HFZXJAVA) をバイナリー FTP 転送します。注:HFZ.SHFZDOC1(HFZXJAVA) データ・セットおよびメンバーは、Z Abend Investigator SMP/E インストールの一部として作成されているので、別の高位修飾子が付いている可能性があります。
- 次のような JCL を使用して、z/OS 上のアプリケーション・ディレクトリーに jar ファイルをコピーします。
- 以下のいずれかを実行します。
- プロジェクト・ビルド・パスを構成して、外部 JAR ライブラリー依存として HFZXJAVA を組み込みます。
- ディレクトリー名およびファイル名を現行の ClassPath に追加します。
- 以下のいずれかを実行します。
- Java JVM バージョン 11 以降を使用している場合:
-
- 以下のいずれかを実行します。
- 次のような JCL を使用して、z/OS 上のアプリケーション・ディレクトリーに jar ファイルをコピーします。
//* --- Copy HFZXJA11 to an HFS directory: //CPYXJAVA EXEC PGM=BPXBATCH //STDPARM DD * SH cp "//'HFZ.SHFZDOC1(HFZXJA11)'" /u/hunter2/hfzxja11.jar /* //STDOUT DD SYSOUT=* //STDERR DD SYSOUT=* - ご使用のプロジェクト開発ディレクトリーにファイル HFZ.SHFZDOC1 として HFZXJA11(HFZXJA11) をバイナリー FTP 転送します。注:HFZ.SHFZDOC1(HFZXJA11) データ・セットおよびメンバーは、Z Abend Investigator SMP/E インストールの一部として作成されているので、別の高位修飾子が付いている可能性があります。
- 次のような JCL を使用して、z/OS 上のアプリケーション・ディレクトリーに jar ファイルをコピーします。
- 以下のいずれかを実行します。
- プロジェクト・ビルド・パスを構成して、外部 JAR ライブラリー依存として HFZXJA11 を組み込みます。
- ディレクトリー名およびファイル名を現行の ClassPath に追加します。
- 以下のいずれかを実行します。
Z Abend Investigator Java SVC ダンプ・タイトル
- Java HFZSNAP インターフェース SVC ダンプ・タイトル 。
history-file-name(fault-id)^^SVCDUMP(0x asid).JAVA HFZSNAP^注:^は非印字文字X'00'を表します。次は Java HFZSNAP インターフェース SVC ダンプ・タイトルの例です。TESTFA1.TEMP.DA5E1SP.DAJAVAZZ.JC83201.HIST(F00027). .SVCDUMP(0x0138).JAVA HFZSNAP. - Java BPXBATCH インターフェース SVC ダンプ・タイトル 。
history-file-name(fault-id)^^SVCDUMP(0x asid).JAVA IDI0162I^注:^は非印字文字X'00'を表します。次は Java BPXBATCH インターフェース SVC ダンプ・タイトルの例です。TESTFA1.TEMP.DA4E1SP.DAJAVAZZ.JZJ2CO2K.HIST(F00700). .SVCDUMP(0x00DB).JAVA IDI0162I.