Package org.h2.server

Class TcpServer

java.lang.Object
org.h2.server.TcpServer
All Implemented Interfaces:
Service

public class TcpServer extends Object implements Service
The TCP server implements the native H2 database server protocol. It supports multiple client connections to multiple databases (many to many). The same database may be opened by multiple clients. Also supported is the mixed mode: opening databases in embedded mode, and at the same time start a TCP server to allow clients to connect to the same database over the network.
  • Constructor Details

    • TcpServer

      public TcpServer()
  • Method Details

    • getManagementDbName

      public static String getManagementDbName(int port)
      Get the database name of the management database. The management database contains a table with active sessions (SESSIONS).
      Parameters:
      port - the TCP server port
      Returns:
      the database name (usually starting with mem:)
    • setShutdownHandler

      public void setShutdownHandler(ShutdownHandler shutdownHandler)
    • init

      public void init(String... args)
      Description copied from interface: Service
      Initialize the service from command line options.
      Specified by:
      init in interface Service
      Parameters:
      args - the command line options
    • getURL

      public String getURL()
      Description copied from interface: Service
      Get the URL of this service in a human readable form
      Specified by:
      getURL in interface Service
      Returns:
      the url
    • getPort

      public int getPort()
      Description copied from interface: Service
      Gets the port this service is listening on.
      Specified by:
      getPort in interface Service
      Returns:
      the port
    • getSSL

      public boolean getSSL()
      Returns whether a secure protocol is used.
      Returns:
      true if SSL socket is used, false if plain socket is used
    • start

      public void start() throws SQLException
      Description copied from interface: Service
      Start the service. This usually means create the server socket. This method must not block.
      Specified by:
      start in interface Service
      Throws:
      SQLException - on failure
    • listen

      public void listen()
      Description copied from interface: Service
      Listen for incoming connections. This method blocks.
      Specified by:
      listen in interface Service
    • isRunning

      public boolean isRunning(boolean traceError)
      Description copied from interface: Service
      Check if the service is running.
      Specified by:
      isRunning in interface Service
      Parameters:
      traceError - if errors should be written
      Returns:
      if the server is running
    • stop

      public void stop()
      Description copied from interface: Service
      Stop the service.
      Specified by:
      stop in interface Service
    • stopServer

      public static void stopServer(int port, String password, int shutdownMode)
      Stop a running server. This method is called via reflection from the STOP_SERVER function.
      Parameters:
      port - the port where the server runs, or 0 for all running servers
      password - the password (or null)
      shutdownMode - the shutdown mode, SHUTDOWN_NORMAL or SHUTDOWN_FORCE.
    • getAllowOthers

      public boolean getAllowOthers()
      Description copied from interface: Service
      Check if remote connections are allowed.
      Specified by:
      getAllowOthers in interface Service
      Returns:
      true if remote connections are allowed
    • getType

      public String getType()
      Description copied from interface: Service
      Get the human readable short name of the service.
      Specified by:
      getType in interface Service
      Returns:
      the type
    • getName

      public String getName()
      Description copied from interface: Service
      Get the human readable name of the service.
      Specified by:
      getName in interface Service
      Returns:
      the name
    • shutdown

      public static void shutdown(String url, String password, boolean force, boolean all) throws SQLException
      Stop the TCP server with the given URL.
      Parameters:
      url - the database URL
      password - the password
      force - if the server should be stopped immediately
      all - whether all TCP servers that are running in the JVM should be stopped
      Throws:
      SQLException - on failure
    • checkKeyAndGetDatabaseName

      public String checkKeyAndGetDatabaseName(String db)
      If no key is set, return the original database name. If a key is set, check if the key matches. If yes, return the correct database name. If not, throw an exception.
      Parameters:
      db - the key to test (or database name if no key is used)
      Returns:
      the database name
      Throws:
      DbException - if a key is set but doesn't match
    • isDaemon

      public boolean isDaemon()
      Description copied from interface: Service
      Check if a daemon thread should be used.
      Specified by:
      isDaemon in interface Service
      Returns:
      true if a daemon thread should be used