Lobster Application Wrapper

Prev Next

Überblick

Ab Version 26.2 der Lobster Data Platform ersetzt der Lobster Application Wrapper die bisherigen plattformspezifischen Startmechanismen (z. B. execute.sh, manuell registrierte Windows-Dienste oder eigene Init-Skripte) durch eine einheitliche, betriebssystemübergreifende Lösung. Sie müssen dazu einige Schritte zur Einrichtung vornehmen.

Was der Wrapper leistet

Der Wrapper ist eine Java-basierte Anwendung, die Ihre Lobster-Anwendungen als Systemdienste registriert und verwaltet – unter Windows über den Service Control Manager, unter Linux über systemd. Er kann eine oder mehrere Java-Anwendungen parallel starten und überwachen und koordiniert den Neustart Ihres gesamten Clusters, einschließlich aller Lobster-Data-Platform-Instanzen (Node-Controller und Worker-Nodes) sowie DMZ-Server (Primary und Secondaries).

Warum ein Wrapper?

Bisher hing die Art, wie die Lobster Data Platform gestartet und gestoppt wurde, stark vom Betriebssystem und von individuellen Anpassungen ab. Diese heterogenen Betriebsabläufe erhöhten die Abhängigkeit vom Lobster-Support, insbesondere bei Neustarts in Cluster-Setups.

Der Wrapper löst diese Probleme:

  • Einheitliche Kommandos: gleiche Befehle unter Windows und Linux. Kein plattformspezifisches Wissen nötig.

  • Eigenständiger Betrieb: Sie starten, stoppen und starten Ihre Umgebung neu, wann immer Sie es benötigen. Kein Support-Ticket, keine Wartezeit.

  • Cluster-weiter Neustart: Der Wrapper koordiniert den Neustart aller Knoten (Node-Controller, Worker-Nodes) und DMZ-Server (Primary und Secondaries).

  • Zentrale Konfiguration: JVM-Parameter und Speichereinstellungen pflegen Sie in einer einzigen Datei (platform.json).

  • Multi-Application-Management: Mehrere Java-Anwendungen lassen sich mit demselben Wrapper verwalten.

Was sich ändert

Vorher

Ab Version 26.2

Startskripte (execute.sh, execute.bat) mit individuellen Anpassungen

Zentrale Konfiguration in platform.json

Plattformspezifische Dienstregistrierung

Ein Kommando: --install-service

Neustart häufig über den Lobster Support

Eigenständiger Neustart durch Kunden per Kommando

Unterschiedliche Abläufe je nach Betriebssystem

Identische Kommandos auf allen Plattformen

Log-Ausgabe in unterschiedliche Dateien je nach Betriebssystem (z. B. console.txt unter Windows)

Einheitliche Log-Ausgabe in logs/wrapper.log auf allen Plattformen

Architektur

Der Wrapper besteht aus folgenden Komponenten:

Datei

Rolle

Anpassbar

application-wrapper.jar

Haupt-Wrapper – führt alle Kommandos aus

platform.json

Ihre Dienstkonfiguration (JVM-Parameter, Speicher, Classpath)

Ja

wrapper.json

Interne Service-Konfiguration

Eingeschränkt (siehe Referenz)

updater.json

Updater-Konfiguration

Nein

Log-Ausgabe

Der Wrapper schreibt seine Log-Ausgabe einheitlich in die Datei logs/wrapper.log und zwar sowohl im Dienstbetrieb als auch im Konsolenmodus (--run). Das gilt gleichermaßen für Windows und Linux. Die bisherige Datei console.txt wird nicht mehr erzeugt.

Systemvoraussetzungen

  • JDK 11 oder höher ist eingerichtet und über java auf der Kommandozeile erreichbar.

  • Lobster Data Platform ≥ 26.2 ist installiert.

  • Sie haben Administrator-Rechte (Windows) oder Root-Rechte (Linux).

  • Windows: Service Control Manager

  • Linux: systemd

Windows-Wrapper: Java-Versionskompatibilität

Unter Windows hängt die Wrapper-Kompatibilität von der installierten Wrapper-Generation und der verwendeten Java-Version ab. Prüfen Sie Ihr Szenario in der folgenden Tabelle.

Szenario

Java-Version

Handlungsbedarf

Neuinstallation (neuer Wrapper)

Java 11 oder Java 21

Keiner. Der neue Wrapper funktioniert mit beiden Java-Versionen korrekt.

Bestehende Installation, Verbleib bei Java 11

Java 11

Keiner. Der bisherige Windows-Wrapper (Tanuki Software) funktioniert unter Java 11 weiterhin.

Bestehende Installation, Upgrade auf Java 21

Java 21

 WICHTIG  Die Migration zum neuen Wrapper ist zwingend erforderlich. Der bisherige Windows-Wrapper (Tanuki) ist nicht mit Java 21 kompatibel. Ohne Migration lässt sich der Dienst nicht starten.

Das Upgrade einer bestehenden Windows-Installation auf Java 21 erfordert zuvor die Migration zum neuen Wrapper. Befolgen Sie die Schritte unter How-to: Von einer bestehenden Installation migrieren.

Weiterführende Informationen:

Application-Wrapper einrichten

Diese Anleitung führt Sie Schritt für Schritt durch die Ersteinrichtung des Lobster Application Wrappers. Am Ende läuft Ihre Lobster Data Platform als Systemdienst mit automatischem Start beim Systemboot.

1. Installationsdateien prüfen

Öffnen Sie eine Kommandozeile und wechseln Sie in das Installationsverzeichnis Ihrer Lobster Data Platform. Prüfen Sie, ob die Wrapper-Dateien vorhanden sind:

# Linux
ls -la ./bin/application-wrapper.jar ./bin/platform.json ./bin/wrapper.json ./bin/updater.json

# Windows
dir .\bin\application-wrapper.jar .\bin\platform.json .\bin\wrapper.json .\bin\updater.json

Sie sollten alle vier Dateien sehen: application-wrapper.jar, platform.json, wrapper.json und updater.json. Falls nicht, ist Ihre Installation möglicherweise nicht auf Version 26.2 oder höher aktualisiert.

2. Speichereinstellungen prüfen

Öffnen Sie die Datei ./bin/platform.json in einem Texteditor und prüfen Sie die Heap-Speichereinstellungen:

"-Xms4096M",
"-Xmx4096M"

Passen Sie die Werte an die verfügbaren Ressourcen Ihres Servers an. Setzen Sie -Xms und -Xmx auf den gleichen Wert, um dynamische Speicheranpassungen zur Laufzeit zu vermeiden. Typische Werte liegen zwischen 2048M und 8192M.

TIPP Bei Unsicherheiten bezüglich der optimalen Speicherkonfiguration wenden Sie sich an den Lobster-Support.

3. Bisherige Startmechanismen deaktivieren

Falls Ihre Lobster Data Platform bisher über andere Mechanismen gestartet wurde (z. B. Init-Skripte, manuell registrierte Dienste, Cron-Jobs), deaktivieren Sie diese vor der Wrapper-Installation, um Konflikte zu vermeiden.

 WICHTIG 

Wenn Sie bisherige Startmechanismen nicht deaktivieren, kann die Plattform zwar weiterhin starten. Die Neustart-Funktionalität (--restart-service, --stop-service) funktioniert dann aber nicht. Der Wrapper kann die Anwendung nur dann vollständig steuern, wenn er der einzige Steuerungsmechanismus ist.

4. Dienst installieren

java -jar ./bin/application-wrapper.jar --install-service

Der Wrapper registriert den Dienst und aktiviert den Autostart für Windows und Linux.

5. Dienst starten

java -jar ./bin/application-wrapper.jar --start-service

6. Status prüfen

java -jar ./bin/application-wrapper.jar --service-status

Sie sollten eine Ausgabe sehen, die bestätigt, dass der Dienst läuft.

7. Funktionstest

Melden Sie sich an der Lobster Data Platform an und prüfen Sie, ob die Anwendung wie erwartet funktioniert. Prüfen Sie auch die Datei ./logs/wrapper.log auf Fehler.

Erledigt. Ihre Lobster Data Platform läuft als Systemdienst und startet automatisch beim nächsten Systemboot. Die vollständige Kommandoreferenz finden Sie in der Referenz.

How-to: Wrapper verwalten

Von einer bestehenden Installation migrieren

Diese Anleitung beschreibt die Migration zum Wrapper, wenn Ihre Lobster Data Platform bisher über eigene Startskripte oder manuell registrierte Dienste betrieben wurde.

Voraussetzungen

  • Lobster Data Platform ≥ 26.2 ist installiert.

  • Sie kennen Ihre aktuellen JVM-Parameter (z. B. aus der execute.sh oder execute.bat).

Schritte

  1. Aktuelle JVM-Parameter sichern.

    Notieren Sie alle eigenen Java-Parameter aus Ihrer bisherigen execute.sh oder execute.bat.

  2. Parameter in platform.json übertragen.

    Öffnen Sie ./bin/platform.json und fügen Sie Ihre Parameter als zusätzliche Einträge im Array jvmArgs hinzu:

    "jvmArgs": [
        ... (bestehende Einträge belassen) ...
        "-Dmein.eigener.parameter=wert",
        "-Dweiterer.parameter=true"
    ]
  3. Bisherige Startmechanismen deaktivieren.

    Deaktivieren oder entfernen Sie alle bestehenden Dienste, Init-Skripte und sonstigen Startmechanismen.

     WICHTIG 

    Dieser Schritt ist entscheidend für die Funktionsfähigkeit des Wrappers. Wenn Sie bisherige Startmechanismen nicht deaktivieren, kann die Plattform zwar weiterhin starten. Die Neustart-Funktionalität (--restart-service, --stop-service) funktioniert dann aber nicht. Der Wrapper kann die Anwendung nur dann vollständig steuern, wenn er der einzige Steuerungsmechanismus ist.

  4. Dienst installieren und starten.

    java -jar ./bin/application-wrapper.jar --install-service
    java -jar ./bin/application-wrapper.jar --start-service
  5. Funktionstest durchführen.

    Prüfen Sie die Anwendung und die Datei ./logs/wrapper.log auf Fehler.

TIPP Legen Sie vor jeder Änderung an platform.json eine Sicherungskopie an.

Dienst neu starten

java -jar ./bin/application-wrapper.jar --restart-service

Alternativ können Sie den Dienst stoppen und separat wieder starten:

java -jar ./bin/application-wrapper.jar --stop-service
java -jar ./bin/application-wrapper.jar --start-service

 HINWEIS Beim Stoppen räumt der Wrapper der Anwendung eine konfigurierbare Zeitspanne für ein geordnetes Herunterfahren ein (Standardwert: 120 Sekunden). Wird diese überschritten, wird der Prozess erzwungen beendet. Bei Plattformen mit vielen gleichzeitigen oder langlaufenden Verarbeitungen kann eine Anpassung dieses Timeouts sinnvoll sein – siehe Shutdown-Timeout anpassen.

 HINWEIS Für den Cluster-weiten Neustart führen Sie --restart-service auf einem beliebigen Cluster-Host aus. Die Anfrage landet automatisch beim Node-Controller. Dieser ist die Schaltzentrale des Clusters. Er koordiniert den Neustart aller Instanzen über REST bzw. den Messageservice. Voraussetzung ist ein korrekt konfigurierter und erreichbarer Cluster.

Autostart deaktivieren oder aktivieren (nur Linux)

Standardmäßig startet der Dienst automatisch beim Systemboot. Um dieses Verhalten zu ändern:

# Autostart deaktivieren
java -jar ./bin/application-wrapper.jar --disable-service

# Autostart wieder aktivieren
java -jar ./bin/application-wrapper.jar --enable-service

 HINWEIS Unter Windows wird der Autostart über den Service Control Manager gesteuert und bei der Installation automatisch aktiviert. Die Kommandos --enable-service und --disable-service stehen daher nur unter Linux zur Verfügung.

Anwendung im Konsolenmodus starten

Für Tests oder Fehleranalysen können Sie die Anwendung ohne Dienstregistrierung direkt in der Konsole starten:

java -jar ./bin/application-wrapper.jar --run

Die Log-Ausgabe wird – wie im Dienstbetrieb – in logs/wrapper.log geschrieben. Beenden Sie den Prozess mit Strg+C.

 HINWEIS Nicht für den Produktivbetrieb geeignet. Verwenden Sie den Konsolenmodus ausschließlich für Tests und Fehleranalysen.

Speichereinstellungen ändern

  1. Dienst stoppen:

    java -jar ./bin/application-wrapper.jar --stop-service
  2. Die Datei ./bin/platform.json öffnen und die Werte für -Xms und -Xmx anpassen:

    "-Xms8192M",
    "-Xmx8192M"
  3. Dienst starten:

    java -jar ./bin/application-wrapper.jar --start-service

Eigene JVM-Parameter hinzufügen

Wenn Sie zusätzliche System-Properties oder JVM-Optionen benötigen, fügen Sie diese als weitere Einträge im Array jvmArgs der Datei platform.json hinzu:

"jvmArgs": [
    "-Xms4096M",
    "-Xmx4096M",
    "-server",
    ... (bestehende Einträge) ...
    "-Dmein.eigener.parameter=wert",
    "-Dweiterer.parameter=true"
]

Damit die Änderungen wirksam werden, starten Sie den Dienst anschließend neu.

Shutdown-Timeout anpassen

Beim Stoppen oder Neustarten räumt der Wrapper der Anwendung eine konfigurierbare Zeitspanne für das geordnete Herunterfahren ein. Der Standardwert beträgt 120 Sekunden. Überschreitet die Anwendung das Timeout, erzwingt der Wrapper das Beenden des Prozesses. Bei Plattformen mit vielen gleichzeitigen oder langlaufenden Verarbeitungen kann eine Erhöhung sinnvoll sein, damit offene Transaktionen sauber abgeschlossen werden können.

  1. Dienst stoppen:

    java -jar ./bin/application-wrapper.jar --stop-service
  2. Die Datei ./bin/wrapper.json öffnen und den Wert von process.shutdown.timeout (Angabe in Sekunden) anpassen.

  3. Dienst starten:

    java -jar ./bin/application-wrapper.jar --start-service

 WICHTIG  Verändern Sie in wrapper.json ausschließlich die in der Referenz dokumentierten Parameter. Alle übrigen Einträge sind interne Konfiguration und dürfen nicht verändert werden. Legen Sie vor jeder Änderung eine Sicherungskopie an.

Dienst vollständig deinstallieren

# Dienst stoppen
java -jar ./bin/application-wrapper.jar --stop-service

# Dienst deinstallieren
java -jar ./bin/application-wrapper.jar --uninstall-service

Referenz: Kommandos und Konfiguration

Alle Kommandos werden über die Wrapper-JAR-Datei ausgeführt:

java -jar ./bin/application-wrapper.jar <Kommando>

Kommando

Beschreibung

Plattform

--install-service

Installiert den Dienst und aktiviert den Autostart.

Windows, Linux

--uninstall-service

Deinstalliert den Dienst.

Windows, Linux

--start-service

Startet den Dienst.

Windows, Linux

--stop-service

Stoppt den Dienst.

Windows, Linux

--restart-service

Startet den Dienst neu.

Windows, Linux

--service-status

Zeigt den aktuellen Dienststatus an.

Windows, Linux

--enable-service

Aktiviert den Autostart beim Systemboot.

Nur Linux

--disable-service

Deaktiviert den Autostart beim Systemboot.

Nur Linux

--run

Startet die Anwendung im Konsolenmodus (Tests, Fehleranalyse).

Windows, Linux

Konfigurationsdatei: platform.json

Pfad: ./bin/platform.json

Die Datei platform.json ist die zentrale Konfigurationsdatei Ihres Anwendungsdienstes. Sie enthält JVM-Parameter, Speichereinstellungen und den Classpath. Legen Sie vor jeder Änderung eine Sicherungskopie an.

Parameter

Parameter

Typ

Beschreibung

Anpassbar

name

String

Anzeigename des Dienstes.

Ja

mainClass

String

Vollqualifizierter Name der Java-Main-Klasse.

Nein

jvmArgs

String[]

JVM-Argumente: Speicher, System-Properties, Debug-Optionen.

Ja

classpath

String[]

Classpath-Einträge für den Anwendungsstart.

In der Regel nicht nötig

programArgs

String[]

Kommandozeilenargumente für die Main-Klasse.

Nein

Speichereinstellungen

Parameter

Beschreibung

Empfehlung

-Xms

Minimaler Heap-Speicher (Startwert)

Identisch zu -Xmx setzen, um dynamische Speicheranpassungen zur Laufzeit zu vermeiden.

-Xmx

Maximaler Heap-Speicher

Richtet sich nach Datenvolumen und Anzahl gleichzeitiger Verarbeitungen. Typische Werte: 2048M bis 8192M.

Variablen

Variable

Beschreibung

Hinweis

%APP_DIR%

Wird zur Laufzeit durch den Pfad des Anwendungsverzeichnisses ersetzt.

Systemvariable – nicht ändern oder entfernen.

 WICHTIG  Die Variable %APP_DIR% wird vom Wrapper automatisch verwaltet. Ändern oder entfernen Sie diese Platzhalter nicht.

Konfigurationsdatei: wrapper.json

Pfad: ./bin/wrapper.json

Die Datei wrapper.json enthält die interne Dienstkonfiguration des Wrappers. Für Anpassungen vorgesehen sind ausschließlich die unten aufgeführten Parameter – alle übrigen Einträge (insbesondere die Verweise auf geladene Anwendungen und deren Konfigurationsdateien wie updater.json und platform.json) sind interne Konfiguration und dürfen nicht verändert werden.

 WICHTIG  Ändern Sie in wrapper.json nur die unten dokumentierten Parameter, wenn Sie einen triftigen Grund dafür haben. Normalerweise ist eine Anpassung dieser Parameter nicht erforderlich. Legen Sie vor jeder Änderung eine Sicherungskopie an. Änderungen werden nach einem Neustart des Dienstes wirksam.

Parameter

Parameter

Typ

Beschreibung

Anpassbar

name

String

Anzeigename des Wrapper-Dienstes im Betriebssystem. Er kann nur vor der ersten Dienstinstallation (--install-service) geändert werden. Nach der Installation ist eine Änderung nicht mehr möglich.

Nur vor --install-service

process.shutdown.timeout

Integer (Sekunden)

Zeit, die der Wrapper der Anwendung für ein geordnetes Herunterfahren einräumt (z. B. bei --stop-service oder --restart-service). Überschreitet die Anwendung das Timeout, erzwingt der Wrapper das Beenden des Prozesses. Standardwert: 120 Sekunden.

Ja

Empfehlung

Bei Plattformen mit vielen gleichzeitigen oder langlaufenden Verarbeitungen kann ein höherer Wert für process.shutdown.timeout sinnvoll sein, damit offene Transaktionen sauber abgeschlossen werden können, bevor der Prozess hart beendet wird.

Dateiübersicht

Datei

Beschreibung

Anpassbar

./bin/application-wrapper.jar

Haupt-Wrapper-Anwendung

Nein

./bin/platform.json

Konfiguration des Anwendungsdienstes

Ja

./bin/wrapper.json

Interne Service-Konfiguration

Nur name (vor Installation) und process.shutdown.timeout

./bin/updater.json

Updater-Service-Konfiguration

Nein – nicht verändern

./logs/wrapper.log

Log-Ausgabe des Wrappers (Dienst- und Konsolenmodus)

Nein