リンケージ・オプション・パーツの概要
- 生成された Java™ プログラムまたはラッパーが他の生成済みコードをどのように呼び出すか
- 生成された COBOL プログラムが、他の生成済みコードをどのように呼び出すか、また他の生成済みコードでどのように呼び出されるか
- 生成された Java または COBOL プログラムが、どのように他のプログラムを非同期的に開始するか
- 生成された Java または COBOL プログラムについて、どのように制御を転送し、どのように処理を終了するか
- 生成された CICS® COBOL プログラムが、 リモート CICS 領域にあるファイルにどのようにアクセスするか
最終となるリンケージ・オプションの指定方法
- 生成時に指定されたリンケージ・オプションを実行時に有効にする。または
- callLink 要素を使用している場合に、デプロイメントの時にリンケージ・プロパティー・ファイル内に指定されたリンケージ・オプションを実行時に
有効にする。
このファイルは自作することもできますが、この状況では EGL で自動的に生成されます。
- リンケージ・オプションの callLink 要素の remoteBind プロパティーを、RUNTIME に設定します。
- genProperties ビルド記述子オプションを GLOBAL または PROGRAM に設定して、Java プログラムまたはラッパーを生成します。
ファイルの使用について詳しくは、リンケージ・プロパティー・ファイルを参照してください。
リンケージ・オプション・パーツの要素
リンケージ・オプション・パーツは一連の要素から構成されており、それぞれの要素には複数のプロパティーと値のセットが含まれます。要素には、以下のタイプがあります。
- callLink 要素は、特定の呼び出しで EGL が使用するリンケージ規約を指定します。
- COBOL プログラムを生成する場合は、以下のような関係が有効になります。
- 生成されたプログラムを callLink 要素が参照する場合、この要素によってプログラム自体のパラメーターの性質が決まります (例えば、プログラムでデータへのポインターが要求されるか、それともデータそのものが要求されるか)。 また、その要素によって、ネイティブの Java コードから COBOL コードへのアクセスを許可する Java ラッパーを生成するかどうかを決定できます。 概要については、『Java ラッパー』を参照してください。
- 生成されたプログラムによって呼び出されるプログラムを callLink 要素が参照する場合、この要素によって、呼び出しが実装される方法が指定されます (例えば、呼び出しがローカルかリモートか)。
- 他のプログラムを呼び出す Java プログラムを生成する場合、
呼び出し先プログラムを callLink 要素が参照していれば、
その callLink 要素によって呼び出しが実装される方法が指定されます (例えば、呼び出しがローカルかリモートか)。
Java プログラムの発信により EJB セッション Bean 経由の呼び出しを指示した場合、callLink 要素は、EJB セッション Bean を生成します。
- COBOL プログラムを生成する場合は、以下のような関係が有効になります。
- asynchLink 要素は、生成された Java または COBOL プログラムが別の EGL 生成または VisualAge® Generator プログラムを非同期でどのように開始するかを指定します。これは、転送プログラムが vgLib.startTransaction システム関数を呼び出す際に実行されます。
- transferToProgram 要素は、生成されたプログラムのコントロールをどのように別のプログラムに転送し、処理を終了するかを指定します。この要素は、transfer to program ステートメントを発行するメインプログラムの場合にのみ、有効になります。
- transferToTransaction 要素は、 生成されたプログラムのコントロールをどのようにトランザクションに転送し、 処理を終了するかを指定します。 この要素は、transfer to transaction ステートメントを発行するメインプログラムの場合にのみ、有効になります。
- fileLink 要素は、CICS COBOL プログラムが特定の VSAM ファイルまたは一時データ・キューにアクセスする際の方法を指定します。
要素が参照するプログラム、ファイル、またはレコードの識別
リンケージ・オプション・パーツの各要素内では、要素が参照しているプログラム、ファイル、またはレコードが、プロパティー (例えば、pgmName) によって識別されます。 特に指定のない場合、そのプロパティーの値には、有効な名前、アスタリスク、またはアスタリスクの後に有効な名前を続けたものを使用することができます。 アスタリスクは、1 つ以上の文字に相当するワイルドカードであり、一連の名前を指定できます。
pgmName プロパティーに対して、次の値を含む callLink 要素について考えてください。
myProg*
この要素は myProg の文字で始まるすべての EGL プログラム・パーツに関係します。
複数の要素が該当する場合、EGL では最初の要素が使用されます。 例えば、以下のような複数の pgmName 値を順番に指定している一連の callLink 要素を考えます。
YourProgram
YourProg*
*
最後の値に関連付けられた要素について考えてください。この場合、pgmName の値は 1 個のアスタリスクのみです。このような要素はすべてのプログラムに該当することが考えられます。しかし、個々のプログラムについて見ると、最後の要素は、それ以前の要素がすべて該当しなかった場合にのみ該当します。 例えば、プログラムが YourProgram01 を呼び出す場合、EGL の呼び出しの処理方法を定義する うえで、2 番目の要素 (YourProg*) の指定するリンケージが 3 番目の要素 (*) よりも優先されます。
ほとんどの場合、より特殊な名前を指定した要素を先に、より一般的な名前を指定した要素を後にすべきです。前述の例では、アスタリスク付きの要素が適切にも最後に置かれて、デフォルトのリンケージ指定を提供するようになっています。
File01
File*
*
プログラムが File01 という名前のファイルにアクセスする場合、CICS によるファイル・アクセスの方法は、最初の要素によって識別されます。ただし、Personnel という名前のファイルにプログラムがアクセスする場合、ファイルの処理方法についてのデフォルト情報は、最後の要素によって適用および指定されます。