バージョン 4.2.5
 —  オペレーション  —

LE サブプログラム

このドキュメントは、z/OS バッチモード、z/VSE バッチモード、IMS/TM、および TSO に適用されます。 Natural で IBM 言語環境(LE)サブプログラムをサポートする方法について説明します。

以下のトピックについて説明します。


IBM LE サブプログラムのサポート

IBM 言語環境(LE)サブプログラムをサポートするには、CALL ステートメントで LE サブプログラムを呼び出せるように Natural を準備する必要があります。 LE サブプログラムは、スタティック(プロファイルパラメータ CSTATIC および RCA)でも、Natural のダイナミックサブプログラムでもかまいません。

Natural のダイナミックサブプログラム(LE および LE 以外)は、LE サービス(CEEFETCH または CEELOAD マクロ)を使用してロードされます。 Natural セッション中にロードされたすべてのダイナミックサブプログラムは、LE 環境の終了時、つまり Natural セッションの終了時に削除されます。 プロファイルパラメータ DELETE はまったく影響しません。

Top of page

Natural による LE サブプログラムサポートの有効化

Natural から LE サブプログラムを呼び出すには、以下が必要です。

  1. Natural のインストール時に、対応するドライバが LE370=YES オプションで生成される必要があります。 CICS 環境の Natural での LE の有効化については、Natural の『TP モニタインターフェイス』ドキュメントの「CICS 環境での Natural」および「Natural CICS インターフェイスおよび IBM 言語環境(LE)」を参照してください。

  2. リンケージエディタの手順中に、IBM LE ランタイムモジュールが IBM LE ライブラリから自動的に組み込まれる必要があります。 "CEE" で始まる未解決の外部条件があってはなりません。 リンケージエディタオプションの NCAL を z/OS に設定したり、NOAUTO を z/VSE に設定したりしないでください。

  3. z/OS バッチ、IMS/TM、および TSO 環境でも Natural は LE メインプログラムを呼び出すことができますが、ダイナミックサブプログラムとしてのみ呼び出すことができます。 LE メインプログラムをダイナミックに呼び出す場合は、CALL ステートメントの前に SET CONTROL 'P=L' を指定して、そのことを示す必要があります。 そうしないと、Natural によって作成された LE 環境が LE メインプログラムによって終了します。

Top of page

LE ランタイムオプションの引き渡し

z/OS バッチおよび TSO 環境での LE ランタイムオプションの引き渡し

以下の 2 つのオプションがあります。

  1. JCL で PARM= パラメータを使用して、LE ランタイムオプションを渡すことができます。 以下のルールが適用されます。

    例:

    PARM='/ID=/,...'
  2. JCL で CEEOPTS 入力データセットを使用して、LE ランタイムオプションを渡すことができます。 CEEOPTS を使用すると、LE ランタイムオプションをすべてのサブタスクで使用できます。 特に、バッチモードの Natural RPC サーバーでは CEEOPTS を使用する必要があります。

    例:

    //CEEOPTS  DD   *
    POSIX(ON)
    /*

z/VSE バッチ環境での LE ランタイムオプションの引き渡し

JCL で PARM= パラメータを使用して、LE ランタイムオプションを渡すことができます。 以下のルールが適用されます。

例:

PARM='/ID=/,...'

IMS/TM 環境での LE ランタイムオプションの引き渡し

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 

Top of page

LE アベンド処理

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) を指定して、必要なすべての診断情報を取得することを強くお勧めします。

Top of page