iSeriesC 環境向けに生成されたプログラムでは、linkType を STATIC に変更することでパフォーマンスを改善できます。
iSeriesC 環境で
call ステートメントのターゲットに対し、リンケージ・オプション・パーツの
callLink 要素の
linkType プロパティーは、デフォルトでは DYNAMIC に設定されています。
EGL がこの呼び出しを実行するために作成する COBOL ステートメントは、CALL
identifier ステートメントです。
これは、EGL で STATIC プログラム・リンケージ・タイプに関連付けられている CALL
literal ステートメントとは対向するものです。
call ステートメントの実行時パフォーマンスを最大限に引き出すには、COBOL 生成時に
linkType プロパティーに STATIC 値を使用してください。STATIC リンク・タイプのメリットを以下に示します。
- call ステートメントは、ターゲット・プログラム・オブジェクトに解決され、システム・ポインターを設定します。
- システムでは、COBOL 実行単位の期間中にこのシステム・ポインターが使用されます。
EGL DYNAMIC プログラム・リンケージ・タイプが実装されます。これにより、
call ステートメントごとに、COBOL は
call ステートメントをターゲット・プログラム・オブジェクトに解決します。呼び出し元プログラムを常に解決する必要性を解消するには、STATIC リンク・タイプを使用します。生成時にデフォルトを変更するには、以下の両方の操作を行います。
- callLink 要素を指定し、プログラムの linkType プロパティーを STATIC に設定するリンケージ・オプション・パーツを定義します。
- ビルド記述子パーツで、リンケージ・オプション・パーツを指し示すように linkage ビルド記述子オプションを設定します。
以下の例に示すリンケージ・オプション・パーツの
callLink 要素では、デフォルトの
linkTypeが DYNAMIC から STATIC に効率的に変更され、生成されたすべてのプログラムのすべての
call ステートメントに影響します。
<callLink>
<localCall pgmName="*" linkType="STATIC"/>
</callLink>
リンケージ・オプション・パーツの作成と使用について詳しくは、リンケージ・オプション・パーツの概要を参照してください。