System REXX サービスを使用すると、インストール情報を収集して問題点を探すための REXX チェックを作成できます。このチェックでは、データ・セットを読み取り、AXRCMD 関数を使用してシステム・コマンドを発行し、その出力を調べてチェック結果をメッセージに出力するのが一般的です。 また、IBM Health Checker for z/OS はチェック例外メッセージを WTO として作成することもできます。
REXX チェックは、System REXX で定義されている APF 許可の環境での System REXX アドレス・スペース内で実行します。
TSO 環境および非 TSO 環境用 REXX チェックを作成できます。 TSO 環境用のチェックを作成すると、動的な TSO 作業環境が得られます。 また、これによってチェック・ルーチン自体が確実に単一アドレス・スペースで実行されるようになるため、非常にセキュアです。 SYS1.SAMPLIB のサンプルの HZSSXCHK に、TSO 環境用および非 TSO 環境用両方のチェックのコードを示しています。
z/OS® での REXX exec の作成および実行について詳しくは、「z/OS MVS Programming: Authorized Assembler Services Guide」の『System REXX』を参照してください。
REXX チェックは System REXX が稼働中である場合のみ実行: これらのチェックは System REXX アドレス・スペースで実行されているため、System REXX が使用可能でない場合、REXX チェックは実行されません。 REXX チェックを追加するには、IBM Health Checker for z/OS に対する REXX チェックの定義を参照してください。
REXX チェックの環境の定義: REXX チェックは System REXX で定義され制御されている環境の System REXX アドレス・スペースで実行されます。 IBM Health Checker for z/OS は、AXREXX サービスを使用して REXX チェックを実行します。 REXX チェックは、IBM Health Checker for z/OS のプロシージャー hzsproc に割り当てられているセキュリティーのもとで実行されます。 詳細については、「z/OS MVS Programming: Authorized Assembler Services Guide」の『System REXX』を参照してください。
システムは、REXX チェックのメッセージ・テーブルを IBM Health Checker for z/OS アドレス・スペースにロードします。
REXX チェックに戻りコードを設定してはならない: IBM Health Checker for z/OS は、REXX チェックで設定されるいかなる戻りコードも無視します。 HZSLFMSG 関数を使用する場合、システムは RESULT 変数および HZSLFMSG_RSN 変数に情報を返します。
例えば、データ・セットの割り振りなど REXX チェックで追加のリソースを取得する場合、REXX チェックは完了する前にこれらのリソースを解放する必要があります。 REXX チェックは、ローカル・チェックと異なり、クリーンアップまたは削除のために呼び出されることはありません。したがって、REXX チェックを再度実行する場合、そのアドレス・スペースまたは同一のタスクで実行される保証はありません。 また、REXX チェックはタイムアウトまたは取り消しなどの例外以外の状態が発生したときにもリソースを解放する必要があります。
| フィールド名 | 意味 |
|---|---|
| HZS_PQE_FUNCTION_CODE | REXX チェックの機能コードを含みます。 REXX チェックは、RUN または INITRUN のいずれかの機能コードに応じて制御を受け取ります。 システムは REXX チェックに入るときに、このフィールドを設定します。 |
| HZS_PQE_ENTRY_CODE | チェック定義内で REXX チェックに割り当てられている ID (入り口コード) が含まれています。 入り口コードは、REXX exec に複数のチェックが含まれている場合に使用されます。 システムは REXX チェックに入るときに、このフィールドを設定します。 |
| HZS_HANDLE | REXX チェックと IBM Health Checker for z/OS の間で処理を同期するために、リモート REXX チェックを識別します。 REXX チェックはリモート・チェックで、System REXX アドレス・スペース内で実行されるため、これは重要です。REXX チェックは、HZSLSTRT、 HZSLFMSG、および HZSLSTOP 関数への入力としてこのハンドルを使用します。 システムは REXX チェックに入るときに、このフィールドを設定します。 |
| HZS_PQE_LOOKATPARMS | パラメーターが変更されたことを示すビット。 このビットが ON の場合は、REXX チェックは HZS_PQE_PAREMAREA および HZS_PQE_PARMLEN 変数を読み取る必要があります。 |
| HZS_PQE_VERBOSE | REXX チェックが冗長モードかどうかを示すバイト。 |
| HZS_PQE_DEBUG | REXX チェックがデバッグ・モードであるかどうかを示すバイト。 |
| HZS_PQE_PARMAREA | ユーザー・パラメーターを含む領域。 オペレーター・コマンドまたは HZSPRMxx ステートメントで PARMS 値を囲む引用符は含まれません。 |
| HZS_PQE_CHKWORK | 必要に応じて REXX チェックによって使用されマップされる 2K チェック作業域。 システムは、機能コード RUN を使用して REXX チェックを呼び出す前に、2K チェック作業域をゼロにリセットします。 REXX チェックは、このフィールドへの書き込み、およびこのフィールドからの読み取りの両方を行うことができ、システムは、以後のチェックの呼び出しのために、その情報を保存しておきます。 その他の任意の変数に対する変更は、関数呼び出しを越えては保存されません。 |
| HZS_PQE_DOM_CHECK | チェックが IBM Health Checker for z/OS に追加されたときに DOM(SYSTEM | CHECK) パラメーターがどのように設定されていたかを示します。 値が 1 の場合、チェックには DOM(CHECK) が指定されていました。 値が 0 の場合、チェックには DOM(SYSTEM) が指定されていました。 DOM=CHECK および HZSFMSG REQUEST=DOM/ HZSLFMSG_REQUEST=DOM がどのように動作するかについて詳しくは、チェックの例外メッセージ WTO およびその自動化が及ぼす影響の制御を参照してください。 |
すべての REXX 関数は戻りコード (RESULT 変数) および理由コード (HZSLnnnn_RSN 変数) を返します。 また、これらの関数は他の多くの役立つ入力変数および出力変数を含みます。 これらの関数に関する詳細説明については、IBM Health Checker for z/OS の System REXX 関数を参照してください。
グループ化された REXX チェックに対する個々の入り口コードの提供: 複数の REXX チェックが単一の REXX exec を使用することができます。これを実行する場合でも、個々の REXX チェックは独自の HZSPQE 領域を取得します。そのため、個々のチェックに対する固有の入り口コードを定義する必要があります。 これにより、各 REXX チェックの REXXIN および REXXOUT データ・セットが固有になります。つまり、システムがデータ・セット名の接尾辞で入り口コードを使用します。 REXX チェックが HZSLSTART 関数の HZS_PQE_ENTRY_CODE 変数に入れて渡される入り口コードを見つけて、そこに示されている REXX チェックの処理に制御を渡すように、コーディングしてください。 HZSADDCK 呼び出しまたは HZSPRMxx parmlib メンバーにおけるチェック定義の ENTRYCODE パラメーターを使用して各 REXX チェックの入り口コードを定義します。IBM Health Checker for z/OS は、ユーザーが REXX チェックに対して定義する入り口コードの固有性を検査しないということに注意してください。
/*********************************************************************/
/* Check the entry code to determine which check to process */
/*********************************************************************/
IF HZS_PQE_ENTRY_CODE = 1 THEN
DO
Call Process_HZS_SAMPLE_REXXIN_CHECK
END
IF HZS_PQE_ENTRY_CODE = 2 THEN
DO
Call Process_HZS_SAMPLE_REXXTSO_CHECK
END
EXIT
HZSADDCHECK 出口ルーチンを使用してシステムに REXX チェックを追加する場合も、1 つの出口ルーチンを使用して、関係する複数のチェックをシステムに追加するようにしてください。 IBM Health Checker for z/OS に対する REXX チェックの定義を参照してください。個々の REXX チェック間で通信を行おうとしないでください。 すべての REXX チェックを同じ exec に入れた場合でも、それらのチェック間の通信に依存することがないようにしてください。 各 REXX チェックは独立して機能することを目的としており、固有の重大度、理由、パラメーター、HZSPQE データ域および入り口コードを持っています。