プログラムへのモジュールのバインド

バインドとは、1 つ以上のモジュールと任意のサービス・プログラムを結合し、その間で渡される記号を解決することによって実行可能な ILE プログラムを作成するプロセスです。 この結合および解決を行うシステム・コードは、iSeries システムではバインダーと呼ばれています。

この結合プロセスの一部として、プロシージャーは始動プロシージャー、すなわちプログラム入力プロシージャーとして識別される必要があります。 プログラムが呼び出されるとプログラム入力プロシージャー はコマンド行からパラメーターを受け取り、そのプログラムの初期制御権が与えられます。 プログラム入力プロシージャーに関連するユーザーのコードが、ユーザー入り口プロシージャーです。

ILE RPG モジュールにメイン・プロシージャーがあると、これには暗黙的にプログラム入力プロシージャーも 含まれています。 したがって、どの ILE RPG モジュールも NOMAIN モジュールでない限り、入り口モジュールとして指定することができます。

図 40 はプログラム・オブジェクトの内部構造についての考え方を示しています。ここでは 、2 つのモジュール TRANSRPT と TRANSSVC をバインドして作成された プログラム・オブジェクト TRPT が示されています。 TRANSRPT は入り口モジュールです。

図 40. プログラム TRPT の構造
プログラム TRPT の構造

バインドされたオブジェクト内では、プロシージャーは静的プロシージャー呼び出し を使用して相互に関係づけることができます。 これらのバインド呼び出しは外部呼び出しより高速です。 したがって、多くのバインド呼び出しのある単一のバインド済みプログラムから成る アプリケーションは、多くの外部呼び出しがある各プログラムから構成される 同様のアプリケーションより高速で実行されるはずです。

モジュールの相互のバインドに加え、これをサービス・プログラムにバインド することもできます (*SRVPGM と入力)。 サービス・プログラムによって、プログラム・モジュールから 独立してモジュールをコーディングおよび保守することができます。 共通のルーチンをサービス・プログラムとして作成しておいて、ルーチン が変更された場合には、サービス・プログラムを再度バインドするこ とによってこの変更を組み込むことができます。 これらの共通ルーチンを使用するプログラムは再作成する 必要がありません。 サービス・プログラムの作成に ついての情報は、サービス・プログラムの作成を参照してください。

バインド・プロセスおよびバインダーについての情報は、「ILE 概念」を 参照してください。