このドキュメントは、z/OS バッチモード、z/VSE バッチモード、IMS/TM、および TSO に適用されます。 Natural で IBM 言語環境(LE)サブプログラムをサポートする方法について説明します。
以下のトピックについて説明します。
IBM 言語環境(LE)サブプログラムをサポートするには、CALL
ステートメントで LE サブプログラムを呼び出せるように Natural を準備する必要があります。 LE サブプログラムは、スタティック(プロファイルパラメータ CSTATIC
および RCA
)でも、Natural のダイナミックサブプログラムでもかまいません。
Natural のダイナミックサブプログラム(LE および LE 以外)は、LE サービス(CEEFETCH
または CEELOAD
マクロ)を使用してロードされます。 Natural セッション中にロードされたすべてのダイナミックサブプログラムは、LE 環境の終了時、つまり Natural セッションの終了時に削除されます。 プロファイルパラメータ DELETE
はまったく影響しません。
Natural から LE サブプログラムを呼び出すには、以下が必要です。
Natural のインストール時に、対応するドライバが LE370=YES オプションで生成される必要があります。 CICS 環境の Natural での LE の有効化については、Natural の『TP モニタインターフェイス』ドキュメントの「CICS 環境での Natural」および「Natural CICS インターフェイスおよび IBM 言語環境(LE)」を参照してください。
リンケージエディタの手順中に、IBM LE ランタイムモジュールが IBM LE ライブラリから自動的に組み込まれる必要があります。 "CEE" で始まる未解決の外部条件があってはなりません。 リンケージエディタオプションの NCAL を z/OS に設定したり、NOAUTO
を z/VSE に設定したりしないでください。
z/OS バッチ、IMS/TM、および TSO 環境でも Natural は LE メインプログラムを呼び出すことができますが、ダイナミックサブプログラムとしてのみ呼び出すことができます。 LE メインプログラムをダイナミックに呼び出す場合は、CALL
ステートメントの前に SET CONTROL
'P=L'
を指定して、そのことを示す必要があります。 そうしないと、Natural によって作成された LE 環境が LE メインプログラムによって終了します。
以下の 2 つのオプションがあります。
JCL で PARM=
パラメータを使用して、LE ランタイムオプションを渡すことができます。 以下のルールが適用されます。
メインルーチンに渡されるランタイムオプションは、その後にスラッシュ(/)を使用して Natural パラメータと分離する必要があります。
Natural パラメータ内でスラッシュを使用する場合は、Natural パラメータをスラッシュで始める必要があります。
例:
PARM='/ID=/,...'
JCL で CEEOPTS
入力データセットを使用して、LE ランタイムオプションを渡すことができます。 CEEOPTS
を使用すると、LE ランタイムオプションをすべてのサブタスクで使用できます。 特に、バッチモードの Natural RPC サーバーでは CEEOPTS
を使用する必要があります。
例:
//CEEOPTS DD * POSIX(ON) /*
JCL で PARM=
パラメータを使用して、LE ランタイムオプションを渡すことができます。 以下のルールが適用されます。
メインルーチンに渡されるランタイムオプションは、その後にスラッシュ(/)を使用して Natural パラメータと分離する必要があります。
Natural パラメータ内でスラッシュを使用する場合は、Natural パラメータをスラッシュで始める必要があります。
例:
PARM='/ID=/,...'
STEPLIB
連結でリージョン固有のランタイムオプションロードモジュール CEEROPT
を使用して、LE ランタイムオプションを渡すことができます。 その他に、LE ライブラリルーチン保存期限初期化ルーチン CEELRRIN
が、リージョン JCL の PREINIT
リストに含まれている必要があります。
以下に、AMODE(24)
サブプログラムを実行できるようにする CEEROPT
ロードモジュールの定義例を示します。
CEEROPT CSECT CEEROPT AMODE ANY CEEROPT RMODE ANY CEEXOPT ALL31=((OFF),OVR), X STACK=((128K,128K,BELOW,KEEP,512K,128K),OVR) END CEEROPT
Natural では、LE 固有のユーザーエラー処理をサポートします。つまり、LE サブプログラムでユーザーエラーハンドラを定義している場合は、サブプログラムでアベンドやプログラムチェックなどの LE エラー状態が発生すると、そのハンドラが制御を取得します。
LE ユーザーエラーハンドラを定義していない場合は、Natural は DU
プロファイルパラメータの設定に従って対処します。
この場合は、特別なエラーメッセージ(DU=OFF
の場合は NAT0950、DU=ON
の場合は NAT9967)が発行され、LE エラー番号が示されます。 また、対応する LE エラーメッセージが CEEMSG
に発行され、LE ランタイムオプション TERMTHDACT
に応じて LE スナップダンプが CEEDUMP
に書き込まれます。
注意:DU=FORCE
の場合は、Natural のアベンド処理は無効になり、アベンド時に LE サブプログラムがアクティブでなくても LE エラー処理が実行されます。 このような場合は、LE ランタイムオプション TERMTHDACT(UAIMM)
を指定して、必要なすべての診断情報を取得することを強くお勧めします。