ISPF 制御プログラムおよび処理プログラムのタスク異常終了は、STAE と STAI の出口ルーチンおよび ISPSTART TEST パラメーターを使用
する ISPF 実行モードによって制御されます。
通常の条件下 (すなわち、処理プログラムおよび制御プログラムのダンプ
が、ISPSTART TEST コマンドを指定することによって要求されていない場合) では、次のようになります。
- 処理プログラムのタスクが異常終了した場合
- ダンプは取られない。
- 制御プログラムが、処理プログラムのメイン・ドライブを再付加する (ISPPMD)。
- 基本オプション・メニューが、論理画面用に再表示される。
- 制御プログラムのタスクが異常終了した場合
- ISPF は *** ISPF メインタスクが異常終了 *** のメッセージを
出して終了する。
- 制御が TSO に戻される。
- Enter キーを押すと、ダンプ・データ・セットが割り振られている場合には、ダンプが取られる。
制御プログラムおよび処理プログラムのタスクは異常終了システム・サービス
を出し、特定の状況下でダンプが取られるようにします。 異常終了を出す ISPF モジュールおよびそれに関連したコードと理由は、以下に示すとおりです。
- 異常終了コード 0C1 (各種共通 ISPF サブルーチン)
- いくつかの ISPF モジュールでは、予期しない状況が起こった時点で、無効な命令コード (X'00') を実行して、異常終了を強制的に行います。 このような状況が ISPF モジュール内で起こった場合には、IBM® サポートにお問い合わせください。
- 異常終了コード 0C4 (ISPDVCGT、ISPDVCPT、または ISPDVCFD)
- 上記の異常終了は、ユーザー・プログラム内
での VDEFINE および VDELETE サービスの不一致が原因で、よく起こります。 VDEFINE サービスは、ユーザー記憶域へのアドレス可能度を ISPF に与えます。 この記憶域は、VDEFINE サービスが設定した変数が参照されるたびに、変数サービスによって使用されます。 この記憶域が解放され、システムに戻されると、その記憶域がまだアクセス可能かどうかに応じて、0C4 異常終了が発生します。 以下に示すのは、これらの異常終了において頻繁に見られる 2 つの一般的シナリオです。
- プログラムは VDEFINE サービスを使用して、呼び出されたサブルーチン内に
変数を設定し、それ以降は、別のルーチンでこの変数を参照する ISPF サービスを
使用します。 呼び出されたサブルーチンが動的にロードされ、その
記憶域を解放した場合は、サブルーチンで VDEFINE された変数を参照するときに
0C4 異常終了が発生する可能性があります。
- プログラムは VDEFINE サービスを使用して呼び出されたサブルーチン内に
変数を設定し、次に、SELECT サービスを使用せずに別のプログラムを呼び出し
ます。 呼び出されるプログラムは、同じ名前で変数を VDEFINE しますが、終了時にこれを VDELETE しません。 呼び出し先プログラムが制御を呼び出し側プログラムに戻した後に、呼び出し側プログラムがその変数を参照すると、0C4 異常終了が発生することがあります。 VDELETE が行われていないため、ISPF サービスは依然、呼び出されるプログラム
が VDEFINE した変数を参照します。
プログラムの意図が、メインルーチンおよび呼び出されたルーチンで同じ変数を使用することにある場合には、
変数はメインルーチンでのみ VDEFINE します。 プログラムの意図が、変数を分離して、それが VDEFINE されるルーチン内でのみ
使用されるようにすることにある場合には、プログラムは終了前に、変数を VDELETE する必要もあります。 ユーザーのアプリケーションがこの問題を抱えているかどうかを診断するには、VDEFINE、VDELETE および SELECT サービス (オプション 7.7.1) の機能トレース
が大変役立ちます。
- 異常終了コード 111 または 222
- 上記の異常終了を起こすには、ユーザーは TEST モードで、以下のコマンドのうちの 1 つを ISPF コマンド行に入力することによって、処理プログラムのダンプを要求しなければなりません。 ユーザー完了コードを除いて、以下の 2 つのコマンドは同様に機能します。
- 異常終了
- ユーザー完了コード 111 を出して、ISPF を終了。
- CRASH
- ユーザー完了コード 222 を出して、ISPF を終了。
- 異常終了コード 908
- ZISPFRC 値が無効です。
- 異常終了コード 920
- ISPSTART コマンド構文が無効です。
- 異常終了コード 950
- z/OS® クライアントに代わって実行中の ISPF セッションは異常終了しなければなりませんでした。ユーザーの異常終了と共に、以下のオペレーター宛メッセージ (WTO) の 1 つが出されます。
- ISPWB000
- クライアントが ISPF セッションの初期設定を要求しました。
Userid: aaaaaaa ASIDX: bbbb
Message Queue: cccccccccc CCSID: ddddd
このメッセージは問題を示してはいませんが、ISPF セッションを開始するための要求をクライアントから受信したときに発行されます。この通知メッセージは、アドレス・スペースを実行するユーザー ID、TSO アドレス・スペースの ID、TSO/ISPF とクライアントの間のメッセージ交換で使用される z/OS UNIX メッセージ・キューの ID、および EBCDIC と Unicode の間でメッセージを変換する際に使用される CCSID を示します。
- ISPWB001
- クライアントから強制終了の要求を受信しました。ISPF セッションは異常終了します。
Userid: aaaaaaa ASIDX: bbbb
このオペレーター・メッセージは、ユーザーの ISPF セッションの終了を強制するための要求をクライアントから ISPF が受信したときに発行されます。このメッセージは、ユーザーの TSO ID および TSO アドレス・スペースの ID を示します。
- ISPWB002
- キューにメッセージを送信するための BPX1QSN の呼び出しに失敗しました。戻りコード: 'aaaa'X 理由コード: 'bbbb'X
ISPF セッションは異常終了します。
このオペレーター・メッセージは、z/OS UNIX メッセージ・キューを介してクライアントにパネル JSON を送信する z/OS UNIX サービス BPX1QSN の呼び出しが失敗したときに発行されます。このメッセージは、BPX1QSN からの戻りコードと理由コードを示します。
- ISPWB003
- キューからメッセージを読み取るための BPX1QRC の呼び出しに失敗しました。戻りコード: 'aaaa'X 理由コード: 'bbbb'X
ISPF セッションは異常終了します。
このオペレーター・メッセージは、z/OS UNIX メッセージ・キューを介してクライアントから応答 JSON を受信する z/OS UNIX サービス BPX1QRC の呼び出しが失敗したときに発行されます。このメッセージは、BPX1QRC からの戻りコードと理由コードを示します。
- ISPWB004
- BPX1QRC の呼び出しが、長さゼロのメッセージを戻しました戻りコード: 'aaaa'X 理由コード: 'bbbb'X
ISPF セッションは異常終了します。
このオペレーター・メッセージは、クライアントからの応答 JSON を受信する z/OS UNIX サービス BPX1QRC の呼び出しが、長さゼロのメッセージを戻したときに発行されます。このメッセージは、BPX1QRC からの戻りコードと理由コードを示します。
- 異常終了コード 985
- バッチ・モードで GUI を開始しようとしたが、ワークステーションの接続がなされていません。
- 異常終了コード 987
- GUISCRW または GUISCRD で GUI を開始しようとしたが、GUI 初期設定が失敗しました。
- 異常終了コード 988
- 無効な TSO 環境。 適切な TSO バージョンについては、「z/OS V2R2 ISPF 計画とカスタマイズ」を参照してください。
- 異常終了コード 989
- ISPF が GUI モードで実行されている間に ISPF C/S 構成要素ウィンドウが
クローズしました。
- 異常終了コード 990
- バッチ・モードでの実行中にエラーが発生しました。 ZISPFRC が
前もって設定されていない場合で、ISPF にプロダクトを終了させるような重大
エラーが発生した場合には、990 が設定されます。
- 異常終了コード 995
- 構成テーブルは、現行 ISPF リリースと互換性がありません。 構成テーブルはリリース 4.8 以降である必要があります。
- 異常終了コード 996 (または X'3E5')
- ISPF は初期化中に端末変換テーブルをロードできませんでした。 構成テーブルで定義されたロード・モジュールが、ISPLLIB または MVS™ ロード・ライブラリー検索連結で使用可能であることを確認してください。 値はユーザーのプロファイル・データ・セットに格納されるため、正確な値をロードするためには、リセットする必要があります。
- 異常終了コード 997 (または X'3E5')
- TPUT が、0 または 8 以外の戻りコードを返しました。
メッセージが表示され、全画面を再表示するための試みがなされます。 再表示が 2 度失敗すると、この異常終了が出されます。
- 異常終了コード 998 (または X'3E6')
- CONTROL ERRORS RETURN モードでない間に、ISPF が完全に初期設定される前に、ISPF の重大エラーが発生。 ISPF は、基本オプション・メニューで押された Enter キーが重大エラーを引き起こさずに処理された時点で、初期設定が完了したとみなされます。
- 異常終了コード 999 (または X'3E7')
- この異常終了は、以下の理由により出されます。
- コマンド・プロセッサーに対して、機能プールが設定されていない。
例えば、ISPF サービスを使用するコマンド・プロセッサーが
オプション 6 または SELECT CMD を使用して呼び出されましたが、コマンド・プロセッサーに機能プールがありません。 ユーザーは、X'40' のフラグ設定がオンの、ISPTCM の
コマンド・プロセッサーの項目を持つ必要があります。 X'40' のフラグは、コマンドに機能プールが必要であることを示します。 ISPTCM のカスタマイズに関する詳細は、「z/OS V2R2 ISPF 計画とカスタマイズ」を参照してください。
- エラーがすでに処理されている間に、別のエラーが発生。
ISPF はこの場合、異常終了コード 999 を出して、無限ループが起こらないように
します。
- ISPF の初期設定の間に、エラーが発生。
例えば、次のとおりです。
- ISPF ライブラリー割り振りによる入出力エラー。
例えば、矛盾した、あるいは間違った DCB 属性を含む ISPSLIB、
ISPPLIB、
ISPMLIB など。
- ISPF ライブラリー割り振りで、必要な ISPF ライブラリーがその連結に含まれて
いない。 例えば、ISPMLIB にユーザーのプロダクト・ライブラリーは含まれているが、ISPF ライブラリーが含まれていない。