Overview
Starting with version 26.2 of the Lobster Data Platform, the Lobster Application Wrapper replaces the previous platform-specific startup mechanisms (e.g., execute.sh, manually registered Windows services, or custom init scripts) with a unified, cross-platform solution. To do this, you need to follow a few steps for Setup.
What the wrapper does
The Lobster Application Wrapper is a Java-based application that registers and manages your Lobster applications as system services – on Windows via the Service Control Manager, and on Linux via systemd. It can start and monitor one or more Java applications in parallel and coordinate the restart of your entire cluster, including all Lobster Data Platform instances (node controllers and worker nodes) as well as DMZ servers (primary and secondary).
Why a wrapper?
Previously, the way the Lobster Data Platform was started and stopped depended heavily on the operating system and custom configurations. These inconsistent operational procedures increased reliance on Lobster Support, particularly when restarting in cluster setups.
The wrapper solves these problems:
Consistent commands – The same commands on Windows and Linux. No platform-specific knowledge required.
Self-service operation – You can start, stop, and restart your environment whenever you need to – without submitting a support ticket and without any waiting time.
Cluster-wide restart – The wrapper coordinates the restart of all nodes (node controllers, worker nodes) and DMZ servers (primary and secondary).
Central configuration – JVM parameters and memory settings are managed in a single file (
platform.json).Multi-application management – Multiple Java applications can be managed using the same wrapper.
What's changed
Before | Starting with version 26.2 |
|---|---|
Startup scripts ( | Central configuration in |
Platform-specific service registration | One command: |
Frequent restarts via Lobster Support | Manual restart initiated by the customer via command |
Different procedures depending on the operating system | Identical commands across all platforms |
Log output written to different files depending on the operating system (e.g., | Unified log output in |
Architecture
The wrapper consists of the following components:
File | Role | Customizable |
|---|---|---|
| Main wrapper – executes all commands | No |
| Your service configuration (JVM parameters, memory, classpath) | Yes |
| Internal service configuration | Limited (see Reference) |
| Updater configuration | No |
Log output
The wrapper writes its log output to logs/wrapper.log – both when running as a system service and in console mode (--run). This applies equally to Windows and Linux. The previous console.txt file is no longer generated.
System requirements
JDK 11 or later is installed and can be accessed via
javaon the command line.Lobster Data Platform version 26.2 or later is installed.
Administrator rights (Windows) or root privileges (Linux).
Windows: Service Control Manager.
Linux:
systemd
Windows wrapper: Java version compatibility
On Windows, wrapper compatibility depends on the installed wrapper generation and the Java version in use. Check your scenario in the table below.
Scenario | Java version | Action required |
|---|---|---|
New installation (new wrapper) | Java 11 or Java 21 | None. The new wrapper works correctly with both Java versions. |
Existing installation, staying on Java 11 | Java 11 | None. The legacy Windows wrapper (Tanuki Software) continues to work on Java 11. |
Existing installation, upgrading to Java 21 | Java 21 | IMPORTANT Migration to the new wrapper is mandatory. The legacy Windows wrapper (Tanuki) is incompatible with Java 21. The service will not start without migration. |
Upgrading an existing Windows installation to Java 21 requires migration to the new wrapper beforehand. Follow the steps in How-to: Migration from an existing installation.
Further information:
Initial setup → Set up an application wrapper
Migration → How-to: Migration from an existing installation
Commands and configuration → Reference
Set up an application wrapper
These instructions will guide you step by step through the initial setup of the Lobster Application Wrapper. By the end, your Lobster Data Platform will be running as a system service that starts automatically when the system boots.
1. Check the installation files
Open a command prompt and navigate to the installation directory of your Lobster Data Platform. Check whether the wrapper files are present:
# Linux
ls -la ./bin/application-wrapper.jar ./bin/platform.json
# Windows
dir .\bin\application-wrapper.jar .\bin\platform.jsonYou should see all four files: application-wrapper.jar, platform.json, wrapper.json und updater.json. If not, your installation may not have been updated to version 26.2 or later.
2. Check memory settings
Open the file ./bin/platform.json in a text editor and check the heap memory settings:
"-Xms4096M",
"-Xmx4096M"Adjust the values to match your server's available resources. Set -Xms and -Xmx to the same value to avoid dynamic memory adjustments at runtime. Typical values range from 2048M to 8192M.
TIP If you're unsure about the optimal memory configuration, contact Lobster Support.
3. Disable existing startup mechanisms
If your Lobster Data Platform has previously been started using other means (e.g., init scripts, manually registered services, cron jobs), disable them before installing the wrapper to avoid conflicts.
IMPORTANT
If existing startup mechanisms are not disabled, the platform will still start, but the wrapper's restart functionality (
--restart-service,--stop-service) will not work. The wrapper can only fully control the application if it is the sole control mechanism.
4. Install the service
java -jar ./bin/application-wrapper.jar --install-serviceThe service is registered and automatically configured to start at system boot on both Windows and Linux.
5. Start the service
java -jar ./bin/application-wrapper.jar --start-service6. Check the status
java -jar ./bin/application-wrapper.jar --service-statusYou should see a message confirming that the service is running.
7. Functional test
Log in to the Lobster Data Platform and verify that the application is working as expected. Also check ./logs/wrapper.log for errors.
All done. Your Lobster Data Platform is now running as a system service and will start automatically the next time the system boots. You can find the complete command guide in the Reference.
How to manage the wrapper
Migration from an existing installation
These instructions describe how to migrate to the wrapper if your Lobster Data Platform has previously been operated using custom startup scripts or manually registered services.
Requirements
Lobster Data Platform ≥ 26.2 is installed.
You know your current JVM parameters (e.g., from
execute.shorexecute.bat).
Steps
Save your current JVM parameters.
Make a note of all custom Java parameters from your existing
execute.shorexecute.bat.Transfer parameters to
platform.json.Open
./bin/platform.jsonand add your parameters as additional entries in thejvmArgsarray:"jvmArgs": [ ... (keep existing entries) ... "-Dmy.custom.parameter=value", "-Danother.parameter=true" ]Disable existing startup mechanisms.
Disable or remove all existing services, init scripts, and other startup mechanisms.
IMPORTANT
This step is critical for the wrapper to function properly. If existing startup mechanisms are not disabled, the platform will still start, but the wrapper's restart functionality (
--restart-service,--stop-service) will not work. The wrapper can only fully control the application if it is the sole control mechanism.Install and start the service.
java -jar ./bin/application-wrapper.jar --install-service java -jar ./bin/application-wrapper.jar --start-servicePerform a functional test.
Check the application and
./logs/wrapper.logfor errors.
TIP Make a backup copy of platform.json before making any changes.
Restart the service
java -jar ./bin/application-wrapper.jar --restart-serviceAlternatively, you can stop the service and restart it separately:
java -jar ./bin/application-wrapper.jar --stop-service
java -jar ./bin/application-wrapper.jar --start-serviceNOTE When stopping, the wrapper allows the application a configurable amount of time to shut down gracefully (default: 120 seconds). If this time is exceeded, the process is forcibly terminated. On platforms with many concurrent or long-running processes, it may be advisable to adjust this timeout – see Customize shutdown timeout.
Disable or enable autostart (Linux only)
By default, the service starts automatically when the system boots. To change this behavior:
# Disable autostart
java -jar ./bin/application-wrapper.jar --disable-service
# Re-enable autostart
java -jar ./bin/application-wrapper.jar --enable-service NOTE On Windows, autostart is controlled via the Service Control Manager and is automatically enabled during installation. The commands --enable-service and --disable-service are therefore only available on Linux.
Launch the application in console mode
For testing or troubleshooting, you can start the application directly in the console without registering it as a service:
java -jar ./bin/application-wrapper.jar --runThe log output is written to logs/wrapper.log – the same location used in service mode. Terminate the process by pressing Ctrl+C.
NOTE Not suitable for production use. Use console mode exclusively for testing and troubleshooting.
Change memory settings
Stop the service:
java -jar ./bin/application-wrapper.jar --stop-serviceOpen
./bin/platform.jsonand adjust the values for-Xmsand-Xmx:"-Xms8192M", "-Xmx8192M"Start the service:
java -jar ./bin/application-wrapper.jar --start-service
Add custom JVM parameters
If you need additional system properties or JVM options, add them as additional entries in the jvmArgs array of the platform.json file:
"jvmArgs": [
"-Xms4096M",
"-Xmx4096M",
"-server",
... (existing entries) ...
"-Dmy.custom.parameter=value",
"-Danother.parameter=true"
]To apply the changes, restart the service.
Customize shutdown timeout
When stopping or restarting, the wrapper allows the application a configurable amount of time to shut down gracefully. The shipped wrapper.json sets this value to 120 seconds (if no entry is present, an internal default of 60 seconds applies). If this time limit is exceeded, the wrapper forces the process to terminate. On platforms with many concurrent or long-running processes, increasing this timeout may be advisable to ensure that open transactions can be completed properly.
Stop the service:
java -jar ./bin/application-wrapper.jar --stop-serviceOpen
./bin/wrapper.jsonand adjust the value ofprocess.shutdown.timeout(specified in seconds).Start the service:
java -jar ./bin/application-wrapper.jar --start-service
IMPORTANT In wrapper.json, change only the parameters documented in the Reference. All other entries are internal configuration and must not be modified. Make a backup copy before making any changes.
Uninstall the service completely
# Stop the service
java -jar ./bin/application-wrapper.jar --stop-service
# Uninstall the service
java -jar ./bin/application-wrapper.jar --uninstall-serviceReference: Commands and configuration
All commands are executed via the wrapper JAR file:
java -jar ./bin/application-wrapper.jar <command>Command | Description | Platform |
|---|---|---|
| Installs the service and enables autostart. | Windows, Linux |
| Uninstalls the service. | Windows, Linux |
| Starts the service. | Windows, Linux |
| Stops the service. | Windows, Linux |
| Restarts the service. | Windows, Linux |
| Displays the current service status. | Windows, Linux |
| Enables autostart at system boot. | Linux only |
| Disables autostart at system boot. | Linux only |
| Launches the application in console mode (testing, troubleshooting). | Windows, Linux |
Configuration file: platform.json
Path: ./bin/platform.json
The platform.json file is the central configuration file for your application service. It contains JVM parameters, memory settings, and the classpath. Always create a backup copy before making any changes.
Parameters
Parameter | Type | Description | Customizable |
|---|---|---|---|
| String | Display name of the service. | Yes |
| String | Fully qualified name of the Java main class. | No |
| String[] | JVM arguments: memory, system properties, debug options. | Yes |
| String[] | Classpath entries for launching the application. | Usually not necessary |
| String[] | Command-line arguments for the main class. | No |
Memory settings
Parameter | Description | Recommendation |
|---|---|---|
| Minimum heap size (initial value) | Set this to the same value as |
| Maximum heap size | Depends on data volume and number of concurrent processes. Typical values: 2048M to 8192M. |
Variables
Variable | Description | Note |
|---|---|---|
| Replaced at runtime with the path to the application directory. | System variable – do not change or remove. |
IMPORTANT The variable %APP_DIR% is managed automatically by the wrapper. Do not modify or remove this placeholder.
Configuration file: wrapper.json
Path: ./bin/wrapper.json
The wrapper.json file contains the wrapper's internal service configuration. Only the parameters listed below are intended for customization – all other entries (in particular the references to loaded applications and their configuration files such as updater.json and platform.json) are internal configuration and must not be modified.
IMPORTANT In wrapper.json, modify only the parameters documented below. Create a backup copy before making any changes. Changes take effect after the service is restarted.
Parameters
Parameter | Type | Description | Customizable |
|---|---|---|---|
| String | Display name of the wrapper service in the operating system. Can only be changed before the first service installation ( | Before |
| Integer (seconds) | The amount of time the wrapper allows for a graceful shutdown (e.g., when using | Yes |
Recommendation
For platforms with many concurrent or long-running processes, a higher value for
process.shutdown.timeoutmay be advisable to ensure that open transactions can be completed properly before the process is forcefully terminated.
File overview
File | Description | Customizable |
|---|---|---|
| Main wrapper application. | No |
| Application service configuration. | Yes |
| Internal service configuration. |
|
| Updater service configuration. | No – do not modify |
| Wrapper log output (service and console mode). | No |