Index

Umgebungsvariablen-Erweiterung

Der Wrapper unterstützt die Umgebungsvariablen-Erweiterung innerhalb des Wertebereichs einer jeden Eigenschaft. Um die plattformunabhängige Eigenschaft der Konfigurationsdatei "wrapper.conf" zu erhalten, wird die Windows-Syntax für alle Plattformen unterstützt.

Wenn der Wrapper als ein Dienst genutzt wird, werden Umgebungsvariablen eher von der System-Registrydatei statt von der Umgebung geladen. Dies ist notwendig, weil Windows die Umgebungsvariablen lädt, die für Dienste verfügbar sind, wenn die Maschine gestartet ist. Jede Art von Änderungen an den System-Umgebungsvariablen in der Registry (direkt festgelegt oder durch das Systemsteuerungsmodul) werden nicht den Diensten gegenüber verfügbar gemacht bis die Maschine noch einmal neu gestartet wird. Durch das Laden der Umgebungsvariablen von der Registry kann der Neustart vermieden werden während die gleiche Funktionalität zur Verfügung gestellt wird.

Beispiel, welches auf die JAVA_HOME-Umgebungsvariable verweist:
wrapper.java.command=%JAVA_HOME%/bin/java

Dies wird zur Laufzeit zum vollständigen Pfadnamen auf jedem System erweitert werden, was die JAVA_HOME-Umgebungsvariable definiert.

JAVA_HOME unter Windows:
wrapper.java.command=C:\Sun\jdk1.3\bin\java
JAVA_HOME unter UNIX:
wrapper.java.command=/opt/IBMJava2-131/bin/java

NOTE

? Please check the English version for a more recent version of this text.

Wenn eine Umgebungsvariable, auf die verwiesen wird, nicht definiert ist, dann wird sie in dem Eigenschaftswert unverändert gelassen.

Umgebungsvariablen-Definition

Der Wrapper unterstützt die Fähigkeit, Umgebungsvariablen von innerhalb der Konfigurationsdatei "wrapper.conf" oder von der Befehlszeile aus zu definieren. Sobald definiert, kann auf die Umgebungsvariable wie auf jede andere Umgebungsvariable Bezug genommen werden. Dies schließt auch die Nutzung in der Variablenerweiterung, wie oben beschrieben, mit ein.

Spezieller Eigenschaftenname, der mit "set." und "set.default." startet:

Umgebungsvariablen werden unter Nutzung von besonderen Eigenschaftennamen definiert, die mit "set." oder "set.default." beginnen und von dem namen der Umgebungsvariablen gefolgt werden. Der Wert der Eigenschaft wird der Wert der neuen Umgebungsvariablen sein.

set.EXTERN_APP=C:/ExternAppHome

Wenn der "set.default." Eigenschaftenname genutzt wird, wird die Umgebungsvariable nur festgelegt werden, wenn sie noch nicht existiert. Dies kann für die Definition einer Reihe von Standard-Umgebungsvariablen-Werten nützlich sein.

set.default.EXTERN_APP=C:/ExternAppHome

Example:

Die Fähigkeit, Umgebungsvariablen zu definieren, ermöglicht es auf einfache Weise Variablen zu ändern, die innerhalb einer Konfigurationsdatei genutzt werden können. Das Beispiel unten zeigt, wie eine Umgebungsvariable genutzt werden kann, um den Speicherort einer externen Anwendung zu spezifizieren.

set.EXTERN_APP=C:/ExternAppHome

wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=%EXTERN_APP%/lib/jar1.jar
wrapper.java.classpath.3=%EXTERN_APP%/lib/jar2.jar
wrapper.java.classpath.4=%EXTERN_APP%/lib/ext/jar3.jar
wrapper.java.classpath.5=%EXTERN_APP%/lib/ext/jar4.jar

Umgebungsvariablen-Definitionen können sehr effektiv genutzt werden - vorausgesetzt Sie verstehen, wie und wann ihre Werte gesetzt werden. Umgebungsvariablen, die festgelegt wurden, bevor der Wrapper gestartet wurde, können natürlich wie gewöhnlich genutzt werdem Wenn der gleiche Variablenname in der Konfigurationsdatei spezifiziert wurde, dann wird der Wert in der Konfigurationsdatei den bestehenden Wert überschreiben.

Von der Kommandozeile:

Umgebungsvariablen, die von der Kommandozeile aus definiert werden, funktionieren etwas verschieden. Diese Werte von der Kommandozeile annulieren beliebige Werte , die entweder vom System oder von der Konfigurationsdatei gesetzt wurden. Dies ermöglicht es, Standard-Umgebungsvariablen innerhalb der Konfigurationsdatei "wrapper.conf" zu definieren und dann auch den Wert von der Kommandozeile aus zu ändern.

Kommandozeile unter Windows: (Beachten Sie bitte: Eine Leerstelle ist in einem Eigenschaftswert enthalten)
wrapper.exe -c ..\conf\wrapper.conf "set.EXTERN_APP=C:\Program Files\ExternAppHome"
Kommandozeile unter UNIX:
wrapper ../conf/wrapper.conf set.EXTERN_APP=/usr/lib/externapphome

NOTE

Beachten Sie bitte, dass wie alle Eigenschaften, die von der Kommandozeile aus gesetzt wurden, Eigenschaften, die Leerzeichen enthalten, können definiert werden, indem das gesamte Paar von "Eigenschaftsname und -wert" in Anführungszeichen gesetzt wird.

Definitionen von Standard-Umgebungsvariablen

Beim Starten des Wrappers werden folgende Umgebungsvariablen in seiner eigenen Umgebung festgelegt. Diese Variablen können innerhalb der Konfigurationsdatei "wrapper.conf" genutzt werden oder durch Zugriff auf die JVM-Umgebung oder auf einer ihrer Kindprozesse.

  • Die WRAPPER_ARCH Variable wird auf den Namen der Architektur festgelegt, für die der aktuell laufende Wrapper entworfen wurde. (Seit Ver. 3.3.0)

  • Die WRAPPER_BIN_DIR Variable ist auf den Speicherort der Wrapper-Programmdatei beim Starten festgelegt. Sie kann genutzt werden, um Pfade relativ zu diesem Speicherort zu definieren, sogar auch dann, wenn das aktuelle Arbeitsverzeichnis verändert wurde. (Seit der Ver. 3.3.0)

  • Die WRAPPER_BITS Variable ist auf eine 32-bit oder 64-bit Tiefe festgelegt, für die der aktuell laufende Wrapper entworfen wurde. (Seit Ver. 3.3.0)

  • Die WRAPPER_FILE_SEPARATOR Variable ist festgelegt auf '\' unter Windows und '/' auf Linux/UNIX-Plattformen, als ein Datei-Separator. Die Variable kann genutzt werden, um plattformunabhängige Werte für zusätzliche Umgebungsvariablen oder -eigenschaften festzulegen. (Seit Ver. 3.1.0)

    Im Allgemeinen ist es sicher, stets '/' als einen Datei-Separator für genutzte Pfade innerhalb Java zu benutzen. Java wurde entworfen auf allen Plattformen korrekt zu laufen, wenn '/' genutzt wird.

  • Die WRAPPER_HOSTNAME und WRAPPER_HOST_NAME-Variablen werden festegelegt auf den aufgelösten Namen der Maschine, auf der der Wrapper aktuell läuft. (WRAPPER_HOST_NAME Seit Ver.3.3.2, WRAPPER_HOSTNAME Seit Ver.3.3.6)

  • Die WRAPPER_INIT_DIR-Variable wird auf das Arbeitsverzeichnis des Prozesses festgelegt, der den Wrapper-Prozess startete. Der Wrapper zwingt stets zuerst das Arbeitsverzeichnis auf den Speicherort der Wrapper-Programmdatei, während die Konfiguration geladen wird (sehen Sie bitte die WRAPPER_BIN_DIR-Variable). Dann, wenn der User ein anderes Arbeitsverzeichnis konfiguriert hat, dann wird diese zu dem Speicherort geändert, der mit der wrapper.working.dir-Eigenschaft spezifiziert wurde. Dies ist alles, was gebraucht wird, um sicherzustellen, dass der Wrapper 100% zuverlässig mit einer gegebenen Konfiguration läuft, unabhängig davon, von wo aus der Wrapper gestartet wurde. Einige Anwendungen müssen jedoch wissen, wo der User sich befand, als sie den Wrapper starteten. In diesen Fällen kann diese Variable genutzt werden. (Seit Ver. 3.5.6)

    Beispiel von Konfigurationsdatei:
    wrapper.java.additional.1=-myinit.working.dir="%WRAPPER_INIT_DIR%"
    wrapper.java.additional.1.stripquotes=TRUE
    
  • Die WRAPPER_JAVA_HOME-Variable wird auf allen Windows-Plattformen festgelegt, wenn der Java-Befehl unter Nutzung der Systemregistry gefunden wird. In anderen Fällen wird es empfohlen, dass eine JAVA_HOME-Variable festgelegt wird. (Seit Ver. 3.3.0)

  • Die WRAPPER_LANG-Variable wird auf einen in Kleinbuchstaben geschriebenen 2-Zeichen-langen Code, der die vom Wrapper genutzte Sprache wiedergibt, festgelegt. In der Community-Edition ist der Wert stets auf 'en' festgelegt. Ein Nutzen für dies ist es, Konfigurationsdatei-Teile, die lokalisierte Werte haben, miteinzubeziehen. (Seit Ver. 3.5.5)

    Das folgende Beispiel zeigt, wie sich die Anzeige des Windows-Dienst-Namens und -Beschreibung lokalisieren lässt. Bitte beachten Sie, dass Englisch explizit zuerst geladen wird (oder seine Eigenschaften konnten zuerst definiert werden). Dies ist, um sicherzustellen, dass die englischen Werte als ein Standard existieren. Der Wrapper überschreibt diese dann mit Werten in den lokalisierten "hinzugefügten Dateien" (kaskadierender Stil).

    Beispiel (wrapper.conf):
    #encoding=UTF-8
    #include ../conf/wrapper-en.conf
    #include ../conf/wrapper-%WRAPPER_LANG%.conf
    ...
    wrapper.ntservice.name=myapp
    ...
    
    Beispiel (wrapper-en.conf):
    #encoding=UTF-8
    wrapper.ntservice.displayname=My App Server
    wrapper.ntservice.description=Application Server that does cool stuff.
    
    Beispiel (wrapper-de.conf):
    #encoding=UTF-8
    wrapper.ntservice.displayname=My App Server
    wrapper.ntservice.description=Application Server that does cool stuff.
    
  • Die WRAPPER_OS-Variable wird auf den Namen des Betriebssystems festgelegt, für welches der aktuell laufende Wrapper entworfen wurde. (Seit Ver. 3.3.0)

    Konfigurationsdatei-Beispiel:
    wrapper.java.library.path.1=../lib
    wrapper.java.library.path.2=../lib/native/%WRAPPER_OS%-%WRAPPER_ARCH%-%WRAPPER_BITS%
    

    Das Beispiel oben wird zu Folgendem aufgelöst:

    Windows:
    wrapper.java.library.path.1=../lib
    wrapper.java.library.path.2=../lib/native/windows-x86-32
    
    Linux:
    wrapper.java.library.path.1=../lib
    wrapper.java.library.path.2=../lib/native/linux-x86-32
    
    Solaris:
    wrapper.java.library.path.1=../lib
    wrapper.java.library.path.2=../lib/native/solaris-sparc-32
    
  • Die WRAPPER_PATH_SEPARATOR Variable ist unter Windows auf ';' und unter Linux/UNIX-Plattformen auf ':' festgelegt. Die Variable kann genutzt werden, um plattformunabhängige Pfade zu erstellen. (SeitVer. 3.1.0)

    Beispiel von Konfigurationsdatei:
    set.PATH=..%WRAPPER_FILE_SEPARATOR%lib%WRAPPER_PATH_SEPARATOR%%PATH%
    

    Das Beispiel oben lässt sich zu Folgendem auflösen:

    Windows:
    set.PATH=..\lib;%PATH%
    
    UNIX:
    set.PATH=../lib:%PATH%
    
  • Die WRAPPER_PID-Variable wird auf die PID des Wrapper-Prozesses festgelegt, wenn sie gestartet wird. Es kann in Dateinamen wie der PID-Datei oder der Logdatei genutzt werden, um sicherzustellen, dass Sie einen eindeutigen Dateinamen haben, wenn Sie mehrfache Kopien des Wrappers mit der gleichen Konfigurationsdatei starten. (Seit Ver. 3.3.7)

    Beispiel von Konfigurationsdatei:
    wrapper.logfile=../logs/wrapper-%WRAPPER_PID%.log
    
  • Die WRAPPER_WORKING_DIR-Variable ist auf den Speicherort der Wrapper-Programmdatei beim Starten festgelegt, aber wird geändert, um das aktuelle Arbeitsverzeichnis des Wrappers widerzuspiegeln, wenn darauf seitens der Kindprozesse Bezug genommen wird. (Seit Ver. 3.3.0)

    Das Arbeitsverzeichnis des Wrappers kann unter Verwendung der wrapper.working.dir Eigenschaft geändert werden. Stellen Sie bitte sicher, dass Sie die Dokumentation gelsen haben, da ihre Nutzung etwas schwierig sein kann.

    Jedoch beachten Sie bitte auch, dass aufgrund der Art wie diese Eigenschaft festgelegt wird, wird es stets der WRAPPER_BIN_DIR-Variable entsprechen, wenn when darauf in der Wrapper-Konfigurationsdatei Bezu genommen wird. Obwohl die VariableT genau innerhalb der Umgebung gesetzt wird, und alle Kindprozesse das Verzeichnis sehen werden. welches mit der wrapper.working.dir-Eigenschaft festgelegt wurde.

Pseudo-environment Variable Definitions

Ereignis-Handler Variable Definitionen

? Please check the English version for a more recent version of this text.
Zusätzlich zu den obengenannten Umgebungsvariablen kann auf die folgenden Variablen in den Ereigniseigenschaften auch bezug genommen werden, wenn diese Ereignisse ausgelöst werden. Auf die variablen Werte kann via Ereigniseigenschaften verwiesen werden, wie es in diesen Eigenschaften dokumentiert ist. Die Variablen werden nicht wirklich als WAHRE Umgebungsvariablen festgelegt.

  • Die WRAPPER_NAME Variable ist auf den Wert der wrapper.name-Eigenschaft festgelegt. (Seit Ver. 3.3.0)

  • Die WRAPPER_DISPLAYNAME Variable ist auf den Wert der wrapper.displayname Eigenschaft festgelegt. (Seit Ver. 3.3.0)

  • Die WRAPPER_DESCRIPTION Variable ist auf den Wert der wrapper.description Eigenschaft festgelegt. (Seit Ver. 3.3.0)

  • Die WRAPPER_EVENT_JVM_ID -Variable ist auf einen ganzzahligen Integer-Wert, der mit 1 beginnt, festgelegt, der anzeigt, wieviele Male die JVM neu gestartet wurde. Wird nur festgelegt für "jvm_*" Ereignisse. (Seit Ver. 3.3.0)

  • Die WRAPPER_EVENT_JVM_PID- Variable ist auf einen ganzzahligen Integer-Wert festgelegt, der die PID des JVM-Prozesses enthält. Wird nur für "jvm_*"-Ereignisse mit der Ausnahme des "jvm_prelaunch"-Ereignis festgelegt. (Seit Ver. 3.3.0)

  • Die WRAPPER_EVENT_NAME Variable wird auf den Ereignisnamen festgelegt, der ausgelöst wird. (Seit Ver. 3.3.0)

  • Die WRAPPER_EVENT_RAND_NNNNNN-Variable ist auf eine Zufallszahl festgelegt, dessen Wert sich jedes Mal ändert, wenn das Ereignis ausgelöst wird. (Seit Ver. 3.5.25)

    Beispiel:
    wrapper.event.default.message=Event: %WRAPPER_EVENT_NAME% %WRAPPER_RAND_NNNNNN% %WRAPPER_EVENT_RAND_NNNNNN%
    

    Das obengenannte Beispiel bewirkt, dass zwei Zufallszahlen erzeugt werden. Die erste, WRAPPER_RAND_NNNNNN, wird auf einmal, jedes Mal, wenn die Wrapper-Konfigurationsdatei geladen wird, festgelegt. Aber die zweite WRAPPER_EVENT_RAND_NNNNNN ändert sich für jedes Ereignis. Aufgrund der Art, wie sein Wert dynamisch aufgelöst wird, ist es nicht möglich, den gleichen Wert von WRAPPER_EVENT_RAND_NNNNNN wieder zu benutzen.

    ? Please check the English version for a more recent version of this text.
    Zusätzliche Formate existieren von 1- bis 6-stellige Zufallszahlen: WRAPPER_EVENT_RAND_N, WRAPPER_EVENT_RAND_NN, WRAPPER_EVENT_RAND_NNN, WRAPPER_EVENT_RAND_NNNN, WRAPPER_EVENT_RAND_NNNNN, und WRAPPER_EVENT_RAND_NNNNNN.

  • Die WRAPPER_EVENT_TIME_YYYYMMDDHHIISS-Variable wird auf einen Zeitstempel, jedes Mal, wenn das Ereignis ausgelöst wird, festgelegt. (Seit Ver. 3.5.25)

    Beispiel:
    wrapper.event.default.message=Event: %WRAPPER_EVENT_NAME% %WRAPPER_TIME_YYYYMMDDHHIISS% %WRAPPER_EVENT_TIME_YYYYMMDDHHIISS%
    

    Das obengenannte Beispiel verweist auf zwei Zeitstempel. Der erste, WRAPPER_TIME_YYYYMMDDHHIISS, wird jedes Mal, wenn die Wrapper-Konfigurationsdatei geladen wird, einmal gesetzt, aber der zweite, WRAPPER_EVENT_TIME_YYYYMMDDHHIISS, ändert sich für jedes Ereignis. Die gleiche Zeit wird durchgehend während der Ausführung des Ereignisses genutzt, so dass es möglich ist, von mehrfachen Zeitbezügen Gebrauch zu machen.

    Auf die folgenden zusätzlichen Formate kann auch verwiesen werden: WRAPPER_EVENT_TIME_YYYYMMDD_HHIISS, WRAPPER_EVENT_TIME_YYYYMMDDHHII, WRAPPER_EVENT_TIME_YYYYMMDDHH, und WRAPPER_EVENT_TIME_YYYYMMDD.

  • Die WRAPPER_EVENT_WRAPPER_PID -Variable ist auf einen ganzzahligen Integer-Wert festgelegt, der die PID des Wrapper-Prozesses enthält. (Diese Umgebung ist ein Alias der WRAPPER_PID-Umgebungsvariablen und wird nur aus Gründen der Rückwärtskompatibilität beibehalten.) (Seit Ver. 3.3.0)