Verbindungseigenschaftendatei

Eine Verbindungseigenschaftendatei ist eine Textdatei, die zur Java™-Laufzeit verwendet wird und Details zum Abrufen eines fernen Programms liefert.

Wenn Sie ein aufrufendes Java-Programm oder einen aufrufenden Java-Wrapper generieren, können Sie die zur Laufzeit erforderlichen Verbindungsinformationen angeben. Dazu müssen Sie wie folgt die Werte der Verbindungsoptionen für das aufgerufene Programm festlegen:

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

Wenn die Eigenschaft remoteBind des Elements callLink für ein aufgerufenes Programm im Verbindungsoptionsabschnitt mit runtime definiert ist, sucht EGL zur Laufzeit nach der Verbindungseigenschaftendatei. Die Quelle des Dateinamens wird folgendermaßen ermittelt:
  • 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.

Der Primäreintrag ist ein Eintrag des Typs cso.serverLinkage und kann ein Eigenschaft/Wert-Paar enthalten, das Sie in einem callLink-Element des Verbindungsoptionsabschnitts definieren können. Dies gilt mit folgenden Ausnahmen:
  • 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'

In den Basisszenarien ist jeder Eintrag in der Verbindungseigenschaftendatei vom Typ 'cso.serverLinkage'. Der Eintrag hat folgendes Format:
  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.
Beispiel für ein aufgerufenes Programm Xyz, bei dem xxx für eine Zeichenfolge steht, bei der die Groß-/Kleinschreibung beachtet werden muss:
  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.

Der Eintrag cso.application hat folgendes Format:
  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.
Im folgenden Beispiel wird ein Stern als Platzhalterzeichen verwendet. Die cso.serverLinkage-Einträge in diesem Beispiel bearbeiten alle Aufrufe eines Programms, dessen Name mit Xyz beginnt:
  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
Das folgende Beispiel zeigt die Verwendung derselben cso.serverLinkage-Einträge für die Bearbeitung der Aufrufe eines Programms von mehreren Programmen, obwohl die Namen dieser Programme nicht mit denselben Zeichen beginnen:
  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.


Feedback