public class Server
extends org.h2.util.Tool
implements java.lang.Runnable, org.h2.server.ShutdownHandler
Constructor and Description |
---|
Server() |
Server(org.h2.server.Service service,
java.lang.String... args)
Create a new server for the given service.
|
Modifier and Type | Method and Description |
---|---|
static Server |
createPgServer(java.lang.String... args)
Create a new PG server, but does not start it yet.
|
static Server |
createTcpServer(java.lang.String... args)
Create a new TCP server, but does not start it yet.
|
static Server |
createWebServer(java.lang.String... args)
Create a new web server, but does not start it yet.
|
int |
getPort()
Gets the port this server is listening on.
|
org.h2.server.Service |
getService()
Get the service attached to this server.
|
java.lang.String |
getStatus()
Get the status of this server.
|
java.lang.String |
getURL()
Gets the URL of this server.
|
boolean |
isRunning(boolean traceError)
Checks if the server is running.
|
static void |
main(java.lang.String... args)
When running without options, -tcp, -web, -browser and -pg are started.
|
static void |
openBrowser(java.lang.String url)
Open a new browser tab or window with the given URL.
|
void |
run()
INTERNAL
|
void |
runTool(java.lang.String... args)
Run the tool with the given output stream and arguments.
|
void |
setShutdownHandler(org.h2.server.ShutdownHandler shutdownHandler)
INTERNAL
|
void |
shutdown()
INTERNAL
|
static void |
shutdownTcpServer(java.lang.String url,
java.lang.String password,
boolean force,
boolean all)
Shutdown one or all TCP server.
|
Server |
start()
Tries to start the server.
|
static void |
startWebServer(java.sql.Connection conn)
Start a web server and a browser that uses the given connection.
|
static void |
startWebServer(java.sql.Connection conn,
boolean ignoreProperties)
Start a web server and a browser that uses the given connection.
|
void |
stop()
Stops the server.
|
public Server()
public Server(org.h2.server.Service service, java.lang.String... args) throws java.sql.SQLException
service
- the serviceargs
- the command line argumentsjava.sql.SQLException
- on failurepublic static void main(java.lang.String... args) throws java.sql.SQLException
[-help] or [-?] | Print the list of options |
[-web] | Start the web server with the H2 Console |
[-webAllowOthers] | Allow other computers to connect - see below |
[-webExternalNames <names>] | The comma-separated list of external names and IP addresses of this server, used together with -webAllowOthers |
[-webDaemon] | Use a daemon thread |
[-webVirtualThreads <true|false>] | Use virtual threads (on Java 21+ only) |
[-webPort <port>] | The port (default: 8082) |
[-webSSL] | Use encrypted (HTTPS) connections |
[-webAdminPassword] | Hash of password of DB Console administrator, can be generated with
WebServer.encodeAdminPassword(String). Can be passed only to
the runTool(String...) method, this method rejects it. It is
also possible to store this setting in configuration file of H2
Console. |
[-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 |
[-tcpVirtualThreads <true|false>] | Use virtual threads (on Java 21+ only) |
[-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 |
[-pgVirtualThreads <true|false>] | Use virtual threads (on Java 21+ only) |
[-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) |
[-ifNotExists] | Databases are created when accessed |
[-trace] | Print additional trace information (all servers) |
[-key <from> <to>] | Allows to map a database name to another (all servers) |
args
- the command line argumentsjava.sql.SQLException
- on failurepublic void runTool(java.lang.String... args) throws java.sql.SQLException
org.h2.util.Tool
runTool
in class org.h2.util.Tool
args
- the argument listjava.sql.SQLException
- on failurepublic static void shutdownTcpServer(java.lang.String url, java.lang.String password, boolean force, boolean all) throws java.sql.SQLException
Server.shutdownTcpServer("tcp://localhost:9094", password, true, false);
url
- example: tcp://localhost:9094password
- 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
stoppedjava.sql.SQLException
- on failurepublic java.lang.String getStatus()
public static Server createWebServer(java.lang.String... args) throws java.sql.SQLException
Server server = Server.createWebServer("-trace").start();Supported options are: -webPort, -webSSL, -webAllowOthers, -webDaemon, -trace, -ifExists, -ifNotExists, -baseDir, -properties. See the main method for details.
args
- the argument listjava.sql.SQLException
- on failurepublic static Server createTcpServer(java.lang.String... args) throws java.sql.SQLException
Server server = Server.createTcpServer( "-tcpPort", "9123", "-tcpAllowOthers").start();Supported options are: -tcpPort, -tcpSSL, -tcpPassword, -tcpAllowOthers, -tcpDaemon, -trace, -ifExists, -ifNotExists, -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.
args
- the argument listjava.sql.SQLException
- on failurepublic static Server createPgServer(java.lang.String... args) throws java.sql.SQLException
Server server = Server.createPgServer("-pgAllowOthers").start();Supported options are: -pgPort, -pgAllowOthers, -pgDaemon, -trace, -ifExists, -ifNotExists, -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.
args
- the argument listjava.sql.SQLException
- on failurepublic Server start() throws java.sql.SQLException
java.sql.SQLException
- if the server could not be startedpublic boolean isRunning(boolean traceError)
traceError
- if errors should be writtenpublic void stop()
public java.lang.String getURL()
public int getPort()
public void run()
run
in interface java.lang.Runnable
public void setShutdownHandler(org.h2.server.ShutdownHandler shutdownHandler)
shutdownHandler
- to setpublic void shutdown()
shutdown
in interface org.h2.server.ShutdownHandler
public org.h2.server.Service getService()
public static void openBrowser(java.lang.String url) throws java.lang.Exception
url
- the URL to openjava.lang.Exception
- on failurepublic static void startWebServer(java.sql.Connection conn) throws java.sql.SQLException
conn
- the database connection (the database must be open)java.sql.SQLException
- on failurepublic static void startWebServer(java.sql.Connection conn, boolean ignoreProperties) throws java.sql.SQLException
conn
- the database connection (the database must be open)ignoreProperties
- if true
properties from
.h2.server.properties
will be ignoredjava.sql.SQLException
- on failure