callLink 要素の parmForm
リンケージ・オプション・パーツの callLink 要素の parmForm プロパティーは、 呼び出しのパラメーターのフォーマットを指定します。 parmForm プロパティーは、呼び出し側プログラムの生成に影響します。 CICS® 環境の COBOL プログラムでは、 このプロパティーは呼び出し先プログラムの生成にも影響します。
COBOL プログラムを生成する場合、parmForm は以下の条件が両方とも真の場合に適用されます。
- pgmName プロパティーが、生成済みプログラムまたは 生成済みプログラムによって呼び出される CICS ベースのプログラムを参照している。
- type プロパティーが localCall または remoteCall である。
- type が localCall の場合、有効な parmForm 値 (後述) は CHANNEL、CICSOSLINK、COMMDATA、COMMPTR (デフォルト)、および OSLINK (z/OS® バッチのデフォルト)。
- type が remoteCall の場合、有効な parmForm 値は、CHANNEL、CICSOSLINK、COMMDATA (デフォルト)、(Java™ コードから呼び出される COBOL プログラムを参照している場合) COMMPTR、および OSLINK。
Java プログラムを生成する場合、parmForm は、次の状況で適用されます。
- pgmName プロパティーが、生成しているプログラムが呼び出す CICS ベースのプログラムを参照している。
- type プロパティーが、ejbCall または remoteCall である。いずれの場合も、有効な parmForm 値 (後述) は CHANNEL、COMMDATA (デフォルト) および COMMPTR です。
Java ラッパーを生成する場合、parmForm は以下の場合に適用されます。
- pgmName プロパティーが、Java ラッパー経由で呼び出される生成済み COBOL プログラムを参照している。
- type プロパティーが、ejbcall または remoteCall である。いずれの場合も、有効な parmForm 値 (後述) は CHANNEL、COMMDATA (デフォルト) または COMMPTR です。
次のリストから値を選択してください。
- CHANNEL
CHANNEL パラメーター・フォーマットの場合、コンテナーがチャネルで渡されます。チャネルは、CICS プログラム間でデータを受け渡すパラメーターのように機能する、一連のコンテナーです。 COMMAREA は、CHANNEL パラメーター・フォーマットでは渡されません。
EGL 生成プログラムがチャネルを呼び出し先プログラムに渡す場合、チャネルは呼び出し先プログラムと同じ名前を持ちます。 ただし、EGL 呼び出し先プログラムがチャネルを受け取るとき、プログラムは CICS API 呼び出しを使用して、渡されたチャネルの名前を検索します。
コンテナーの名前は EGL-PARM-1 から EGL-PARM-n であり、n の最大値は 30 です。
例えば、タイプ INT、レコード (33,000 バイト)、および EGL STRING の 3 つのパラメーターを渡す場合、下の表に示すように、チャネルには 3 つのコンテナーが含まれます。
表 1. コンテナーおよびパラメーターの例 コンテナー名 コンテナーの値 EGL-PARM-1 INT を表す 4 バイト EGL-PARM-2 レコードを表す 33,000 バイト EGL-PARM-3 STRING へのポインターを表す 4 バイト (呼び出し先プログラムは EGL である必要がある) - CICSOSLINK
- 呼び出し先プログラムがデータへのポインターを予期しているという、標準の COBOL のパラメーター渡しの規則が有効であることを指定します。CICS EIB および COMMAREA が常に最初の 2 つの引数として渡され、それに続いてプログラム固有の引数が渡されます。CICSOSLINK を使用するには、次の設定が必要です。
- type プロパティーが localCall または remoteCall である。
- linkType プロパティーが STATIC または DYNAMIC である。
- COMMDATA
- 呼び出し側がビジネス・データを、(データへのポインターを渡すのではなく) COMMAREA 内に格納することを指定します。
それぞれの引数値は、位置合わせを考慮せずに、先行する値に続けてバッファーに移されます。
type プロパティーが remoteCall または ejbCall の場合は、COMMDATA がデフォルト値になります。
- COMMPTR
- 呼び出し側が以下のように振る舞うことを指定します。
- 渡される引数ごとに 1 つのポインターが対応するように、一連の 4 バイトのポインターを COMMAREA 内に作成する。
- 最後のポインターの高位ビットを 1 に設定する。
type プロパティーの値が localCall の場合は、COMMPTR がデフォルト値になります。
- OSLINK
- 呼び出し先プログラムがデータへのポインターを予期しているという、標準の COBOL のパラメーター渡しの規則が有効であることを指定します。ただし、CICS EIB または COMMAREA を除きます。OSLINK は、COBOL プログラムを生成する場合にのみ有効です。 OSLINK を使用するには、次の設定が必要です。
- type プロパティーが localCall または remoteCall である。
- linkType プロパティーが STATIC または DYNAMIC である。