Running a Liberty server from a JAR file
You can start a Liberty server from a Java archive (JAR) file. This method provides a compact, portable way of starting a Liberty server. You create the JAR file by using the Liberty server command and then run as an executable JAR file by using the java -jar command.
The latest documentation
about runnable JAR files for Liberty is
available on the Open Liberty website.
Create the runnable JAR file
You can specify minify
to get the smallest archive possible. You must specify a
JAR type archive to get a runnable JAR file. The default archive type is .zip
on
all platforms except z/OS, where the only supported type is pax
. For example:
server package <server name> --include=[minify,]runnable --archive=<jar file name>.jar
Run the JAR file
-jar
option, for
example: java -jar <jar file name>.jar
Operation
stdout
or stderr
. By default,
files are extracted to temporary locations:- For Windows: %HOMEPATH%/wlpExtract/<jar file name>_nnnnnnnnnnnnnnnnnnn
- For all other platforms: $HOME/wlpExtract/<jar file name>_nnnnnnnnnnnnnnnnnnn
You can control the output location by using the WLP_JAR_EXTRACT_ROOT
or
WLP_JAR_EXTRACT_DIR
environment variable.
Stopping the server
To stop the Liberty server press Ctrl-C. When the Liberty server stops, the extraction directory is automatically deleted. If you stop the active shell in any other way, the extraction directory is not cleaned up automatically, you must clean it up manually.
Run in debug mode
You can run the Liberty server in debug
mode if you set the environment variable WLP_JAR_DEBUG
before you start the
server.
Controlling output
By default, server output is written to the extraction directory, which is deleted when the
server stops. If you want to save the output, specify a durable output location by using the
WLP_OUTPUT_DIR
environment variable before you start the server.
Two-phase commit transactions
By default, two-phase commit commit transactions are disabled because the transaction logs are in the expansion directory and are deleted when the Liberty server is stopped. Therefore, transaction recovery is not possible.
To enable two-phase commit, configure the transaction log to be in a durable location in the file
system or an RDBMS and set the WLP_JAR_ENABLE_2PC
environment variable.
To configure the transaction log, use either the transactionLogDirectory
or
dataSourceRef
attribute on the transaction element in your
server.xml configuration.
Running under CYGWIN
Running a Liberty server JAR file in a CYGWIN shell has two requirements:
- Specify the
WLP_JAR_CYGWIN
environment variable.This variable causes the Liberty server JAR runner to do UNIX-style file and process handling when it is running in the CYGWIN environment.
- Run under the bash shell, not mintty.
Automatic extraction file deletion occurs only when you run under the bash shell. You can run under mintty, but you must delete the extraction files manually. Mintty does not forward the necessary signal that is required to trigger Java shutdown hooks.
Environment variable reference
Environment variable name | Description |
---|---|
WLP_JAR_EXTRACT_ROOT |
Extracts JAR file to directory ${WLP_JAR_EXTRACT_ROOT}/<jar file name>_nnnnnnnnnnnnnnnnnnn |
WLP_JAR_EXTRACT_DIR |
Extracts JAR file to directory ${WLP_JAR_EXTRACT_DIR}. |
WLP_OUTPUT_DIR |
Writes Liberty server output files to directory ${WLP_OUTPUT_DIR}. |
WLP_JAR_DEBUG |
Runs Liberty server by using
server debug <server name> instead of server run <server
name> . |
WLP_JAR_ENABLE_2PC |
Set to value true to enable 2PC when the runnable JAR file runs. |
WLP_JAR_CYGWIN |
Set to value true if you are running the JAR file under CYGWIN. |