COBOL プログラムのエントリ ポイント マッピング

Entry Point Mapping 機能を使用すると、COBOL プログラム内のエントリポイントを指定できます。これにより、アプリケーションは実行時にこのエントリポイントを検索できます。エントリポイントが呼び出される前に、まだロードされていないプログラム内のエントリポイントを指定する必要があります。

Entry Point Mapping の機能を使いこなすには、エントリポイントの呼び出しが通常どのようにランタイム システムによって解決されるのかを理解する必要があります。

プログラムの静的リンクで解決されていないエントリポイントをプログラムで呼び出すと、ランタイム システムは、動的に解決するためにそのエントリポイントを検索します。

プログラムがロードされると、プログラムの名前とプログラム内のすべてのエントリポイントがテーブルに記録されます。エントリ ポイントへの呼び出しが行われると、ランタイム システムはテーブルからエントリ ポイント名を検索します。エントリ ポイント名が検索されない場合、ランタイム システムはディスクから同じ名前の実行可能ファイルを探します。見つからない場合には、エラーが返されます。

結果として、プログラムが実行可能ファイルの名前と異なるエントリ ポイント、または先にロードされたプログラム内のエントリ ポイントと異なるエントリポイントを呼び出すと、ランタイム システムはエントリ ポイントを見つけることができないため、プログラムが失敗します。このような場合にのみ、Entry Point Mapper を使用する必要があります。

この問題は、開発を進めるためにメインフレームから PC にダウンロードしたプログラム コードを使用する際に頻繁に発生します。メインフレーム プログラムは、多くの場合、いくつかのエントリ ポイントを単一プログラム中に含んでいます。メインフレームでは、エントリ ポイントはリンクによって解決されるので、プログラムがすでに呼び出されていてもいなくても、プログラムに対して呼び出しを行いエントリ ポイントが特定されます。

Enterprise Developer を使用すると、エントリ ポイントを含むプログラムがまだ呼び出されていない場合には、そのエントリ ポイントへの呼び出しが失敗します。

この問題を回避するには、エントリ ポイント テーブルを含むエントリ名マップ ファイルを作成し、そのマップ ファイルをランタイム システムで使用できるようにする必要があります。