Java try-catch ブロックからの Fault Analyzer の起動
Java™ プログラムから現在の Java™ の状態を取り込むために、Fault Analyzer を起動して、関連する MVS™ SVC ダンプとともにヒストリー・ファイルの障害項目を作成します。
使用される Fault Analyzer ヒストリー・ファイルはデフォルトのヒストリー・ファイルです。別のヒストリー・ファイルを使用するには、オプションで説明されている _IDI_OPTS または _IDI_OPTSFILE 環境変数で指定します。作成される障害項目は、続いて Fault Analyzer ISPF インターフェースを使用して再分析され、Fault Analyzer が呼び出されたときに実行中の Java™ コードやネイティブ・コードを検討することができます。
- Fault Analyzer IDI_SDUMP_ACCESS XFACILIT プロファイルに対して ALTER アクセス権限を付与する必要があります。
名前 IDI_SDUMP_ACCESS の XFACILIT クラス・プロファイル (リカバリー障害記録 SDUMP アクセスに使用されるプロファイルと同じもの) をセットアップして、Java™ ダンプ取り込みが必要となるユーザー ID またはグループに対して ALTER アクセス権限を付与します。以下のように定義すれば、ユーザーの Java™ アプリケーションで例外が発生した場合に、Fault Analyzer は JDEV グループ内のすべてのユーザーに対して Java™ 取り込み SDUMP を作成できます。
RDEF XFACILIT IDI_SDUMP_ACCESS UACC(NONE) PERMIT IDI_SDUMP_ACCESS CLASS(XFACILIT) ID(JDEV) ACCESS(ALTER)
ALTER アクセス権は XFACILIT IDI_SDUMP_ACCESS プロファイルに対するものであり、実際の SDUMP データ・セットに対するものではありません。Fault Analyzer は、許可状態を使用して Java™ 取り込み SDUMP へのアクセスを許可します。IDI_SDUMP_ACCESS プロファイルはスイッチとして機能し、Fault Analyzer はそのスイッチを検査して、特定のユーザーに対して SDUMP が作成可能かどうかを確認できます。
- MVS™ ポスト・ダンプ出口 IDIXTSEL をインストールする必要があります。詳しくは、MVS ポスト・ダンプ出口のインストール IDIXTSELを参照してください。
- IDIS サブシステムを始動する必要があります。詳しくは、Fault Analyzer IDIS サブシステムの使用を参照してください。
Fault Analyzer の呼び出しは try-catch ブロックの中や、ユーザー・プログラムの任意の場所に置くことができ、com.ibm.faultanalyzer.Snap.dump メソッドを使用して実行されます。
Fault Analyzer 障害項目のユーザー・タイトル・フィールドを初期化するための、オプションの comment 文字ストリングを指定できます。
public class JavaTest {
public static void main() {
...
try {
...
}
catch() {
...
com.ibm.faultanalyzer.Snap.dump("Java error"); // Call Fault Analyzer
}
}
}
代替スナップ・ダンプ呼び出しメソッド
Fault Analyzer を起動するために使用できる 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. IDI.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 IBM 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 IBM Support.
*
* @return The ID of the created Fault Entry, in the form <history file dataset>(<fault id>).
* E.g. IDI.HIST(F00001)
*/
public static String dump(String dumpTitle, Throwable e, boolean debug)
アプリケーション・クラスパスへのスナップ・クラスの追加
com.ibm.faultanalyzer.Snap.dump メソッドの呼び出しを容易にするには、Fault Analyzer IDIXJAVA Java™ ライブラリーがアプリケーション・プログラム・ビルド・パスに存在しているか、または現行クラス・パス経由で使用可能になっていなければなりません。
IDIXJAVA Java™ ライブラリーは以下の手順で取得できます。
- 以下のいずれかを実行します。
- 次のような JCL を使用して、z/OS 上のアプリケーション・ディレクトリーに jar ファイルをコピーします。
//* --- Copy IDIXJAVA to an HFS directory: //CPYXJAVA EXEC PGM=BPXBATCH //STDPARM DD * SH cp "//'IDI.SIDIDOC1(IDIXJAVA)'" /u/hunter2/idixjava.jar /* //STDOUT DD SYSOUT=* //STDERR DD SYSOUT=*
- ご使用のプロジェクト開発ディレクトリーにファイル IDI.SIDIDOC1 として IDIXJAVA(IDIXJAVA) をバイナリー FTP 転送します。注: IDI.SIDIDOC1(IDIXJAVA) データ・セットおよびメンバーは、Fault Analyzer SMP/E インストールの一部として作成されているので、別の高位修飾子が付いている可能性があります。
- 次のような JCL を使用して、z/OS 上のアプリケーション・ディレクトリーに jar ファイルをコピーします。
- 以下のいずれかを実行します。
- プロジェクト・ビルド・パスを構成して、外部 JAR ライブラリー依存として IDIXJAVA を組み込みます。
- ディレクトリー名およびファイル名を現行の ClassPath に追加します。
Fault Analyzer Java SVC ダンプ・タイトル
- Java IDISNAP インターフェース SVC ダンプ・タイトル 。
history-file-name(fault-id)^^SVCDUMP(0x asid).JAVA IDISNAP^
注:^
は非印字文字X'00'
を表します。次は Java IDISNAP インターフェース SVC ダンプ・タイトルの例です。TESTFA1.TEMP.DA5E1SP.DAJAVAZZ.JC83201.HIST(F00027). .SVCDUMP(0x0138).JAVA IDISNAP.
- 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.