A linkage properties file file is a text file that is used at Java™ run time to give details on how to call a remote program.
A linkage properties file may be handwritten, but EGL generates a file if (in addition to the settings described earlier) you generate a Java program or wrapper with the genProperties build descriptor option set to GLOBAL or PROGRAM.
In this case, if the EGL runtime code seeks a linkage properties file but is unable to find that file, an error occurs on the first call statement that requires use of that file. For details on the result, see Exception handling.
In this case, if the Java Virtual Machine seeks a linkage properties file but is unable to find that file, the program object throws an exception of type CSOException.
The linkage properties file must be in the same project as the Java program that uses the file. If the file is in the top-level directory of the application, set the cso.linkageOptions.LO Java runtime property to the file name, without path information. If the file is under the top-level directory of the application, use a path that starts at the top-level directory and includes a forward slash (/) for each level, even if the application is running on a Windows® platform.
When you are developing a J2EE project, the top-level directory corresponds to the appClientModule, ejbModule, or Web Content directory of the project in which the module resides. When you are developing a Java project, the top-level directory is the project directory.
As used during run time, the linkage properties file includes a series of entries to handle each call from the generated Java program or wrapper that you are deploying.
cso.serverLinkage.programName.property=value
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
The literal values TCPIP, EGL, and so on are not case sensitive and are examples of valid data.
If you wish to create a series of cso.serverLinkage entries that refer to any of several called programs, precede those entries with one or more entries of type cso.application. Your purpose in this case is to equate a single application name to multiple program names. In the subsequent cso.serverLinkage entries, you use the application name instead of programName; then, at Java run time, those cso.serverLinkage entries handle calls to any of several programs.
cso.application.wildProgramName=appName
If wildProgramName refers to a program that is generated by EGL, any program name included in wildProgramName is the name of a program part.
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
If multiple cso.application entries are valid for a program, EGL uses the first entry that applies.
You can find more information in the topics "Naming conventions" and "Exception handling" in the EGL Language Reference.