Verbindungseigenschaftendatei
Eine Verbindungseigenschaftendatei ist eine Textdatei, die zur Java™-Laufzeit verwendet wird und Details zum Abrufen eines fernen Programms liefert.
- Der Wert der Eigenschaft type des Elements callLink ist remoteCall oder ejbCall.
- Der Wert der Eigenschaft remoteBind des Elements callLink ist runtime.
Eine Verbindungseigenschaftendatei kann manuell erstellt sein, EGL generiert jedoch eine Datei, wenn Sie (zusätzlich zu den zuvor beschriebenen Einstellungen) ein Java-Programm oder einen Java-Wrapper generieren und die Builddeskriptoroption genProperties mit 'GLOBAL' oder 'PROGRAM' definiert ist.
Identifizieren der Datei mit Verbindungsmerkmalen zur Laufzeit
- Ein Java-Programm überprüft die Java-Laufzeiteigenschaft cso.linkageOptions.VO, wobei VO für den Namen des Verbindungsoptionsabschnitts steht, der für die Generierung verwendet wird. Ist die Eigenschaft nicht vorhanden, sucht der EGL-Laufzeitcode eine Verbindungseigenschaftendatei mit der Bezeichnung VO.properties. Auch hier steht VO für den Namen des Abschnitts mit Verbindungsoptionen, der für die Generierung
verwendet wurde.
Wenn der EGL-Laufzeitcode in diesem Fall eine Verbindungseigenschaftendatei sucht, diese jedoch nicht finden kann, tritt bei der ersten Aufrufanweisung, für die diese Datei benötigt wird, ein Fehler auf. Ausführliche Informationen zum Ergebnis finden Sie im Abschnitt zur Ausnahmebehandlung.
- Der Java-Wrapper speichert den Namen der Verbindungseigenschaftendatei in der Programmobjektvariablen callOptions des
Typs 'CSOCallOptions'.
Der generierte Name der Datei ist VO.properties, wobei
VO für den Namen des Abschnitts mit Verbindungsoptionen steht, der für die Generierung verwendet wurde.
Wenn die Java Virtual Machine in diesem Fall eine Verbindungseigenschaftendatei sucht, diese jedoch nicht finden kann, löst das Programmobjekt eine Ausnahme vom Typ 'CSOException' aus.
Verbindungseigenschaftendatei bereitstellen
Die Verbindungseigenschaftendatei muss in demselben Projekt wie das Java-Programm, das die Datei verwendet, enthalten sein. Wenn sich die Datei im Basisverzeichnis der Anwendung befindet, legen Sie die Java-Laufzeiteigenschaft cso.linkageOptions.VO auf den Dateinamen (ohne Pfadinformationen) fest. Wenn sich die Datei unterhalb des Basisverzeichnisses der Anwendung befindet, verwenden Sie einen Pfad, der mit dem Basisverzeichnis beginnt und für jede Ebene einen Schrägstrich (/) enthält, auch dann, wenn die Anwendung auf einer Windows-Plattform ausgeführt wird.
Wenn Sie ein J2EE-Projekt entwickeln, entspricht das Basisverzeichnis dem Verzeichnis 'appClientModule', 'ejbModule' oder 'WebContent' des Projekts, in dem sich das Modul befindet. Beim Entwickeln eines Java-Projekts ist das Projektverzeichnis das Ausgangsverzeichnis.
Format der Verbindungseigenschaftendatei
Die zur Laufzeit verwendete Verbindungseigenschaftendatei enthält eine Reihe von Einträgen für die Bearbeitung der einzelnen Aufrufe vom generierten Java-Programm oder Java-Wrapper, das bzw. den Sie implementieren.
- Die Eigenschaft remoteBind weist die Einstellung runtime auf und wird ignoriert.
- Die Eigenschaft type kann nicht localCall sein, da die Verbindung für lokale Aufrufe zur Generierungszeit eingerichtet werden muss.
Einträge des Typs 'cso.serverLinkage'
cso.serverLinkage.Programmname.Eigenschaft=Wert
- Programmname
- In den meisten Fällen ist dies der Name des aufgerufenen Programms. Wenn das aufgerufene
Programm von EGL erstellt wird, ist der von Ihnen angegebene Name der Name eines
Programmabschnitts und
nicht der Wert einer Eigenschaft des Typs alias, die diesen Programmabschnitt
auszeichnet.Ein Sonderfall liegt vor, wenn die call-Anweisung die Eigenschaft linkageKey umfasst. Nachfolgend finden Sie ein Beispiel für eine call-Anweisung:
call "MyProgram01" {linkageKey = "MyProgram02"};Definieren Sie in dieser Situation das Qualifikationsmerkmal Programmname in der Verbindungseigenschaftendatei mit dem Wert von linkageKey (im vorliegenden Beispiel also mit 'MyProgram02').
- Eigenschaft
- Eine der für ein Java-Programm geeigneten Eigenschaften mit Ausnahme der Eigenschaften remoteBind und pgmName. Weitere Informationen finden Sie im Abschnitt zum 'callLink'-Element. Verwenden Sie externalName für die Aliaseigenschaft, und nicht alias.
- Wert
- Ein für die angegebene Eigenschaft gültiger Wert.
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
Bei den Literalwerten TCPIP, EGL usw. muss die Groß-/Kleinschreibung nicht beachtet werden. Sie sind hier Beispiele für gültige Daten.
Einträge des Typs 'cso.application'
Wenn Sie eine Reihe von cso.serverLinkage-Einträgen erstellen möchten, die auf eines von mehreren aufgerufenen Programmen verweisen, stellen Sie diesen Einträgen mindestens einen Eintrag des Typs cso.application voran. In diesem Fall erfüllt die Voranstellung den Zweck, einen Anwendungsnamen mit mehreren Programmnamen gleichzusetzen. In den folgenden cso.serverLinkage-Einträgen verwenden Sie den Anwendungsnamen an Stelle von Programmname. In der Java-Laufzeit bearbeiten diese cso.serverLinkage-Einträge dann Aufrufe eines Programms von mehreren.
cso.application.Platzhalterprogrammname=Anwendungsname
- Platzhalterprogrammname
- Ein gültiger Name, ein Stern oder der Anfang eines gültigen Namens gefolgt von einem Stern. Der Stern steht als Platzhalter für mindestens ein Zeichen und dient zum Identifizieren von Namensgruppen. Es gelten zwei besondere Fälle:
- Wenn sich die Eigenschaft linkageKey in einer call-Anweisung befindet, ist der Wert, der für Platzhalterprogrammname getestet wird, der Wert der Eigenschaft linkageKey.
- Wenn die call-Anweisung keine Eigenschaft linkageKey enthält und das aufgerufene Programm von EGL erstellt wird, ist der für Platzhalterprogrammname getestete Wert der Name des Programmabschnitts und nicht der Wert der Eigenschaft alias für diesen Abschnitt.
- Anwendungsname
- Eine Folge von Zeichen, die den EGL-Namenskonventionen entspricht. Der Wert von Anwendungsname wird in den folgenden 'cso.serverLinkage'-Einträgen verwendet.
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
Wenn für ein Programm mehrere cso.application-Einträge gültig sind, verwendet EGL den ersten gültigen Eintrag.
Weitere Informationen hierzu finden Sie in den Abschnitten zu Namenskonventionen und zur Ausnahmebehandlung in der EGL-Sprachreferenz.