リンケージ・プロパティー・ファイル は、Java™ の実行時に使用されるテキスト・ファイルで、 リモート・プログラムを呼び出す方法の詳細を提供します。
リンケージ・プロパティー・ファイルは手書きしても構いませんが、(前述の設定に加えて) genProperties ビルド記述子オプションを GLOBAL または PROGRAM に設定して Java プログラムまたはラッパーを生成すると、EGL によってファイルが生成されます。
この場合、EGL ランタイム・コードがリンケージ・オプション・プロパティー・ファイルを検索して、それが見付からないと、リンケージ・オプション・プロパティー・ファイルの使用を要求する先頭の call 文でエラーが発生します。結果の詳細については、『例外処理』を参照してください。
この場合、Java 仮想マシンがリンケージ・プロパティー・ファイルを検索しても、それが見付からないと、プログラム・オブジェクトは、CSOException 型の例外をスローします。
リンケージ・プロパティー・ファイルは、そのファイルを使用する Java プログラムと同じプロジェクトに入っている必要があります。このファイルがアプリケーションのトップレベル・ディレクトリーに入っている場合は、cso.linkageOptions.LO Java ランタイム・プロパティーにこのファイル名を設定します (パス情報は省きます)。 このファイルがアプリケーションのトップレベル・ディレクトリーの下にある場合は、 トップレベル・ディレクトリーから始まるパスを使用し、 それぞれのレベルごとにスラッシュ (/) を組み込みます。 これは、アプリケーションが Windows プラットフォーム上で稼働する場合でも同様です。
J2EE プロジェクトを開発している場合、トップレベル・ディレクトリーは、 モジュールが常駐するプロジェクトの appClientModule、ejbModule、 または Web コンテンツ・ディレクトリーに対応します。 Java プロジェクトを開発している場合、トップレベル・ディレクトリーは、プロジェクト・ディレクトリーです。
実行時に使用するために、リンケージ・プロパティー・ファイルには、デプロイする生成済みの Java プログラムまたはラッパーからの各呼び出しを処理するための一連のエントリーが含まれます。
cso.serverLinkage.programName.property=value
call "MyProgram01" {linkageKey = "MyProgram02"};
この状態では、リンケージ・プロパティー・ファイル内の programName 修飾子を linkageKey 値に (この場合は MyProgram02 に) 設定します。
cso.serverLinkage.Xyz.type=remoteCall
cso.serverLinkage.Xyz.remoteComType=TCPIP
cso.serverLinkage.Xyz.remotePgmType=EGL
cso.serverLinkage.Xyz.externalName=xxx
cso.serverLinkage.Xyz.package=xxx
cso.serverLinkage.Xyz.conversionTable=xxx
cso.serverLinkage.Xyz.location=xxx
cso.serverLinkage.Xyz.serverID=xxx
cso.serverLinkage.Xyz.parmForm=COMMDATA
cso.serverLinkage.Xyz.providerURL=xxx
cso.serverLinkage.Xyz.luwControl=CLIENT
リテラル値である TCPIP や EGL などは大文字と小文字を区別しないので、有効なデータの例になります。
いくつかの呼び出し先プログラムを参照する一連の cso.serverLinkage エントリーを作成する場合は、これらのエントリーを 1 つ以上の cso.application 型のエントリーの前に置きます。この場合の目的は、複数のプログラム名を 1 つのアプリケーション名で代用することです。コード後半部分に記述する cso.serverLinkage エントリーでは、programName の代わりにアプリケーション名を使用します。こうすると、前述の cso.serverLinkage エントリーによって、Java ランタイムで複数のプログラムへの呼び出しが処理されます。
cso.application.wildProgramName=appName
cso.application.Xyz*=myApp
cso.serverLinkage.myApp.type=remoteCall
cso.serverLinkage.myApp.remoteComType=TCPIP
cso.serverLinkage.myApp.remotePgmType=EGL
cso.serverLinkage.myApp.externalName=xxx
cso.serverLinkage.myApp.package=xxx
cso.serverLinkage.myApp.conversionTable=xxx
cso.serverLinkage.myApp.location=xxx
cso.serverLinkage.myApp.serverID=xxx
cso.serverLinkage.myApp.parmForm=COMMDATA
cso.serverLinkage.myApp.luwControl=CLIENT
cso.application.Abc=myApp
cso.application.Def=myApp
cso.application.Xyz=myApp
cso.serverLinkage.myApp.type=remoteCall
cso.serverLinkage.myApp.remoteComType=TCPIP
cso.serverLinkage.myApp.remotePgmType=EGL
cso.serverLinkage.myApp.externalName=xxx
cso.serverLinkage.myApp.package=xxx
cso.serverLinkage.myApp.conversionTable=xxx
cso.serverLinkage.myApp.location=xxx
cso.serverLinkage.myApp.serverID=xxx
cso.serverLinkage.myApp.parmForm=COMMDATA
cso.serverLinkage.myApp.luwControl=CLIENT
1 つのプログラムに対して複数の cso.application エントリーが有効な場合、EGL では、適用される最初のエントリーが使用されます。
詳しくは、「EGL 言語解説書」の『命名規則』および『例外処理』を参照してください。