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

Natural 3GL CALLNAT インターフェイス - 目的、前提条件、制限

このドキュメントでは、3GL CALLNAT インターフェイスの目的、前提条件、および制限について説明します。

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


3GL CALLNAT インターフェイスの目的

Natural は 3GL CALLNAT インターフェイスを使用することにより、3GL プログラムで Natural サブプログラムを呼び出して実行できるようになります。

3GL には、標準のリンケージコールインターフェイスをサポートする任意のプログラミング言語を使用できます。 ほとんどの場合、3GL は COBOL プログラムですが、機能は PL/1、FORTRAN、C、アセンブラプログラムなどでも使用できます。

CMS 環境の Natural では、CALLNAT 機能を使用して Rexx プログラムの Natural サブプログラムを実行します。 詳細については、「VM/CMS 環境の Natural」を参照してください。

可用性

このインターフェイスは、以下のオペレーティングシステム上でバッチモードで使用できます。

また、以下の TP モニタ環境にも使用できます。

Top of page

前提条件

このセクションでは、内部 CALLNAT ステートメントを使用して 3GL プログラムから Natural サブプログラムを実行するための前提条件について説明します。目的の機能を得るには、3GL プログラムから CALLNAT インターフェイスを実行する前に、Natural の環境を設定する必要があります。

スペース要件

Natural プログラムのパラメータアドレッシングのメカニズムでは、渡されるパラメータが Natural によって割り当てられたエリア、つまりそのサイズのいずれかに常駐している必要があります。 しかし、3GL プログラムは、変数用のストレージをタスクのアドレススペース内のどこかに割り当てます。 そこで、アドレシングが有効に機能するように、まだ Natural エリアに存在していない変数に対して "値渡し" というメカニズムが使用されます。 これは、Natural サブプログラムを呼び出す前に、渡されるパラメータが DATSIZE バッファという Natural エリアに転送されるということです。

変数の内容に使用されるストレージに加えて、パラメータ数に応じて追加のストレージが必要です。 サブプログラム呼び出しプログラムが Natural でコーディングされている場合は、必要な合計スペース量は DATSIZE バッファで必要なスペースとほぼ同じです。

リンク

Natural サブプログラムを呼び出すには、3GL プログラムで CALLNAT インターフェイスを呼び出す必要があります。 3GL プログラミング言語のコールインターフェイスの性能と機能に基づいて、CALLNAT インターフェイスは、ダイナミックロード用のアクセス可能なロードライブラリに配置されるか、3GL プログラムにリンクされます。 ほとんどの場合は、3GL プログラムをインターフェイスモジュール(NATXCAL など。下記参照)にリンクする必要があります。

サンプルの XNATGC2XNATGCP2 ではそれぞれ、ダイナミックロードと、COBOL または PL/I からの CALLNAT インターフェイス呼び出しの手法を説明しています。

注意:
環境に最適な方法については、担当のシステムプログラマに確認してください。

環境の依存関係

外部 3GL モジュールは、CSTATIC モジュールとして Natural にリンクした後でブランチとリンク命令を使用して呼び出すことも、ダイナミックにロードして TP 依存リンクメソッドを使用して呼び出すこともできます。

後者の場合は、3GL モジュールは TP 固有の方法で作成されるので、それに応じて CALLNAT インターフェイスを調整する必要があります。 この目的のために、複数の TP 固有インターフェイスモジュールが用意されています。

NATXCAL 3GL モジュールを Natural にリンクするか、ダイナミックにロードしてから、ブランチおよびリンク命令を使用して呼び出す場合に使用します(バッチ、CMS、Com-plete、IMS/TM、TIAM、TSO、UTM)。
NATXCAL4 3GL モジュールを CALL ステートメントの INTERFACE4 オプションを使用して呼び出す場合に使用します。 INTERFACE4 Natural Callnat インターフェイスと INTERFACE4 コールバック機能を提供します。 INTERFACE4 の機能の詳細については、CALL ステートメントのドキュメントを参照してください。
NCIXCALL CICS 環境で、3GL モジュールが EXEC CICS LINK を使用して呼び出し済みの場合に使用します。NCIXCALL は CICS マクロでコンパイルされるソースコードで提供されます。 Natural の『インストール』ドキュメントの「Natural CICS インターフェイスのインストール」も参照してください。
NCIXCPRM CICS 環境で、後続の EXEC CICS LINK コマンドの COMMAREA として使用されるパラメータアドレスリストを作成するために使用します。

Top of page

制限

Natural サブプログラムの終了

呼び出された Natural サブプログラムは、呼び出し元プログラムに戻して終了する必要があります。

使用できない Natural ステートメント

以下のステートメントは使用できません。

呼び出された Natural サブプログラムでこれらのステートメントが使用されていると、該当する Natural ランタイムエラー(NAT0967)が発生します。

3GL プログラムから渡されるパラメータ値

3GL プログラムから渡されるパラメータ値は、書き込み禁止ストレージエリアに配置することはできません。

ダイナミック配列

ダイナミック範囲の配列は使用できません。

TP モニタ固有の制限

Top of page