# Server

Starts the H2 Console (web-) server, TCP, and PG server.

Methods
static Server | createPgServer(String... args) Create a new PG server, but does not start it yet.

static Server

createPgServer(String... args) throws SQLException
Create a new PG server, but does not start it yet. Example:

     Server server =
         Server.createPgServer("-pgAllowOthers").start();

Supported options are: -pgPort, -pgAllowOthers, -pgDaemon, -trace, -ifExists, -baseDir, -key. See the main method for details.

If no port is specified, the default port is used if possible, and if this port is already used, a random port is used. Use getPort() or getURL() after starting to retrieve the port.

Parameters:
args - the argument list
Returns:
the server

static Server | createTcpServer(String... args) Create a new TCP server, but does not start it yet.

static Server

createTcpServer(String... args) throws SQLException
Create a new TCP server, but does not start it yet. Example:

     Server server = Server.createTcpServer(
         "-tcpPort", "9123", "-tcpAllowOthers").start();

Supported options are: -tcpPort, -tcpSSL, -tcpPassword, -tcpAllowOthers, -tcpDaemon, -trace, -ifExists, -baseDir, -key. See the main method for details.

If no port is specified, the default port is used if possible, and if this port is already used, a random port is used. Use getPort() or getURL() after starting to retrieve the port.

Parameters:
args - the argument list
Returns:
the server

static Server | createWebServer(String... args) Create a new web server, but does not start it yet.

static Server

createWebServer(String... args) throws SQLException
Create a new web server, but does not start it yet. Example:

     Server server = Server.createWebServer("-trace").start();

Supported options are: -webPort, -webSSL, -webAllowOthers, -webDaemon, -trace, -ifExists, -baseDir, -properties. See the main method for details.
Parameters:
args - the argument list
Returns:
the server

static void | main(String... args) When running without options, -tcp, -web, -browser and -pg are started.

static void

main(String... args) throws SQLException
When running without options, -tcp, -web, -browser and -pg are started.
Options are case sensitive. Supported options are:

[-help] or [-?] | Print the list of options
[-web] | Start the web server with the H2 Console
[-webAllowOthers] | Allow other computers to connect - see below
[-webDaemon] | Use a daemon thread
[-webPort <port>] | The port (default: 8082)
[-webSSL] | Use encrypted (HTTPS) connections
[-browser] | Start a browser connecting to the web server
[-tcp] | Start the TCP server
[-tcpAllowOthers] | Allow other computers to connect - see below
[-tcpDaemon] | Use a daemon thread
[-tcpPort <port>] | The port (default: 9092)
[-tcpSSL] | Use encrypted (SSL) connections
[-tcpPassword <pwd>] | The password for shutting down a TCP server
[-tcpShutdown "<url>"] | Stop the TCP server; example: tcp://localhost
[-tcpShutdownForce] | Do not wait until all connections are closed
[-pg] | Start the PG server
[-pgAllowOthers] | Allow other computers to connect - see below
[-pgDaemon] | Use a daemon thread
[-pgPort <port>] | The port (default: 5435)
[-properties "<dir>"] | Server properties (default: ~, disable: null)
[-baseDir <dir>] | The base directory for H2 databases (all servers)
[-ifExists] | Only existing databases may be opened (all servers)
[-trace] | Print additional trace information (all servers)
[-key <from> <to>] | Allows to map a database name to another (all servers)

The options -xAllowOthers are potentially risky.
For details, see Advanced Topics / Protection against Remote Access.
Parameters:
args - the command line arguments

static void | openBrowser(String url) Open a new browser tab or window with the given URL.
static void | openBrowser(String url) throws Exception Open a new browser tab or window with the given URL. Parameters: url - the URL to open
static void | shutdownTcpServer(String url, String password, boolean force, boolean all) Shutdown one or all TCP server.

static void

shutdownTcpServer(String url, String password, boolean force, boolean all) throws SQLException
Shutdown one or all TCP server. If force is set to false, the server will not allow new connections, but not kill existing connections, instead it will stop if the last connection is closed. If force is set to true, existing connections are killed. After calling the method with force=false, it is not possible to call it again with force=true because new connections are not allowed. Example:

     Server.shutdownTcpServer("tcp://localhost:9094",
             password, true, false);

Parameters:
url - example: tcp://localhost:9094
password - the password to use ("" for no password)
force - the shutdown (don't wait)
all - whether all TCP servers that are running in the JVM should be stopped

static void | startWebServer(Connection conn) Start a web server and a browser that uses the given connection.
static void | startWebServer(Connection conn) throws SQLException Start a web server and a browser that uses the given connection. The current transaction is preserved. This is specially useful to manually inspect the database when debugging. This method return as soon as the user has disconnected. Parameters: conn - the database connection (the database must be open)
static void | startWebServer(Connection conn, boolean ignoreProperties) Start a web server and a browser that uses the given connection.

static void

startWebServer(Connection conn, boolean ignoreProperties) throws SQLException
Start a web server and a browser that uses the given connection. The current transaction is preserved. This is specially useful to manually inspect the database when debugging. This method return as soon as the user has disconnected.
Parameters:
conn - the database connection (the database must be open)
ignoreProperties - if {@code true} properties from {@code .h2.server.properties} will be ignored

| Server(Service service, String... args) Create a new server for the given service.
| Server(Service service, String... args) throws SQLException Create a new server for the given service. Parameters: service - the service args - the command line arguments
int | getPort() Gets the port this server is listening on.
int | getPort() Gets the port this server is listening on. Returns: the port
Service | getService() Get the service attached to this server.
Service | getService() Get the service attached to this server. Returns: the service
String | getStatus() Get the status of this server.
String | getStatus() Get the status of this server. Returns: the status
String | getURL() Gets the URL of this server.
String | getURL() Gets the URL of this server. Returns: the url
boolean | isRunning(boolean traceError) Checks if the server is running.
boolean | isRunning(boolean traceError) Checks if the server is running. Parameters: traceError - if errors should be written Returns: if the server is running
void | runTool(String... args)
void | runTool(String... args) throws SQLException
Server | start() Tries to start the server.
Server | start() throws SQLException Tries to start the server. Returns: the server if successful Throws: SQLException - if the server could not be started
void | stop() Stops the server.
void | stop() Stops the server.