Package org.h2.engine

Class Session

java.lang.Object
org.h2.engine.Session
All Implemented Interfaces:
AutoCloseable, CastDataProvider
Direct Known Subclasses:
SessionLocal, SessionRemote

public abstract class Session extends Object implements CastDataProvider, AutoCloseable
A local or remote session. A session represents a database connection.
  • Method Details

    • lock

      public final void lock()
      Locks this session with a reentrant lock.
       final Session session = ...;
       session.lock();
       try {
           ...
       } finally {
           session.unlock();
       }
       
    • unlock

      public final void unlock()
      Unlocks this session.
      See Also:
    • isLockedByCurrentThread

      public final boolean isLockedByCurrentThread()
      Returns whether this session is locked by the current thread.
      Returns:
      true if it locked by the current thread, false if it is locked by another thread or is not locked at all
    • getClusterServers

      public abstract ArrayList<String> getClusterServers()
      Get the list of the cluster servers for this session.
      Returns:
      A list of "ip:port" strings for the cluster servers in this session.
    • prepareCommand

      public abstract org.h2.command.CommandInterface prepareCommand(String sql, int fetchSize)
      Parse a command and prepare it for execution.
      Parameters:
      sql - the SQL statement
      fetchSize - the number of rows to fetch in one step
      Returns:
      the prepared command
    • close

      public abstract void close()
      Roll back pending transactions and close the session.
      Specified by:
      close in interface AutoCloseable
    • getTrace

      public abstract org.h2.message.Trace getTrace()
      Get the trace object
      Returns:
      the trace object
    • isClosed

      public abstract boolean isClosed()
      Check if close was called.
      Returns:
      if the session has been closed
    • getDataHandler

      public abstract org.h2.store.DataHandler getDataHandler()
      Get the data handler object.
      Returns:
      the data handler
    • hasPendingTransaction

      public abstract boolean hasPendingTransaction()
      Check whether this session has a pending transaction.
      Returns:
      true if it has
    • cancel

      public abstract void cancel()
      Cancel the current or next command (called when closing a connection).
    • getAutoCommit

      public abstract boolean getAutoCommit()
      Check if this session is in auto-commit mode.
      Returns:
      true if the session is in auto-commit mode
    • setAutoCommit

      public abstract void setAutoCommit(boolean autoCommit)
      Set the auto-commit mode. This call doesn't commit the current transaction.
      Parameters:
      autoCommit - the new value
    • addTemporaryLob

      public abstract org.h2.value.ValueLob addTemporaryLob(org.h2.value.ValueLob v)
      Add a temporary LOB, which is closed when the session commits.
      Parameters:
      v - the value
      Returns:
      the specified value
    • isRemote

      public abstract boolean isRemote()
      Check if this session is remote or embedded.
      Returns:
      true if this session is remote
    • setCurrentSchemaName

      public abstract void setCurrentSchemaName(String schema)
      Set current schema.
      Parameters:
      schema - the schema name
    • getCurrentSchemaName

      public abstract String getCurrentSchemaName()
      Get current schema.
      Returns:
      the current schema name
    • setNetworkConnectionInfo

      public abstract void setNetworkConnectionInfo(org.h2.util.NetworkConnectionInfo networkConnectionInfo)
      Sets the network connection information if possible.
      Parameters:
      networkConnectionInfo - the network connection information
    • getIsolationLevel

      public abstract IsolationLevel getIsolationLevel()
      Returns the isolation level.
      Returns:
      the isolation level
    • setIsolationLevel

      public abstract void setIsolationLevel(IsolationLevel isolationLevel)
      Sets the isolation level.
      Parameters:
      isolationLevel - the isolation level to set
    • getStaticSettings

      public abstract Session.StaticSettings getStaticSettings()
      Returns static settings. These settings cannot be changed during lifecycle of session.
      Returns:
      static settings
    • getDynamicSettings

      public abstract Session.DynamicSettings getDynamicSettings()
      Returns dynamic settings. These settings can be changed during lifecycle of session.
      Returns:
      dynamic settings
    • getDatabaseMeta

      public abstract org.h2.jdbc.meta.DatabaseMeta getDatabaseMeta()
      Returns database meta information.
      Returns:
      database meta information
    • isOldInformationSchema

      public abstract boolean isOldInformationSchema()
      Returns whether INFORMATION_SCHEMA contains old-style tables.
      Returns:
      whether INFORMATION_SCHEMA contains old-style tables
    • readSessionState

      public void readSessionState()
      Read the session state if necessary.
    • setThreadLocalSession

      public Session setThreadLocalSession()
      Sets this session as thread local session, if this session is a local session.
      Returns:
      old thread local session, or null
    • resetThreadLocalSession

      public void resetThreadLocalSession(Session oldSession)
      Resets old thread local session.
      Parameters:
      oldSession - the old thread local session, or null