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.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static final class`
`Session.DynamicSettings`
Dynamic settings.
`static final class`
`Session.StaticSettings`
Static settings.

## Method Summary

Modifier and Type
Method
Description
`abstract ValueLob`
`addTemporaryLob(ValueLob v)`
Add a temporary LOB, which is closed when the session commits.
`abstract void`
`cancel()`
Cancel the current or next command (called when closing a connection).
`abstract void`
`close()`
Roll back pending transactions and close the session.
`abstract boolean`
`getAutoCommit()`
Check if this session is in auto-commit mode.
`abstract ArrayList<String>`
`getClusterServers()`
Get the list of the cluster servers for this session.
`abstract String`
`getCurrentSchemaName()`
Get current schema.
`abstract DatabaseMeta`
`getDatabaseMeta()`
Returns database meta information.
`abstract DataHandler`
`getDataHandler()`
Get the data handler object.
`abstract Session.DynamicSettings`
`getDynamicSettings()`
Returns dynamic settings.
`abstract IsolationLevel`
`getIsolationLevel()`
Returns the isolation level.
`abstract Session.StaticSettings`
`getStaticSettings()`
Returns static settings.
`abstract Trace`
`getTrace()`
Get the trace object
`abstract boolean`
`hasPendingTransaction()`
Check whether this session has a pending transaction.
`abstract boolean`
`isClosed()`
Check if close was called.
`final boolean`
`isLockedByCurrentThread()`
Returns whether this session is locked by the current thread.
`abstract boolean`
`isOldInformationSchema()`
Returns whether INFORMATION_SCHEMA contains old-style tables.
`abstract boolean`
`isRemote()`
Check if this session is remote or embedded.
`final void`
`lock()`
Locks this session with a reentrant lock.
`abstract CommandInterface`
`prepareCommand(String sql)`
Parse a command and prepare it for execution.
`void`
`resetThreadLocalSession(Session oldSession)`
Resets old thread local session.
`abstract void`
`setAutoCommit(boolean autoCommit)`
Set the auto-commit mode.
`abstract void`
`setCurrentSchemaName(String schema)`
Set current schema.
`abstract void`
`setIsolationLevel(IsolationLevel isolationLevel)`
Sets the isolation level.
`abstract void`
`setNetworkConnectionInfo(NetworkConnectionInfo networkConnectionInfo)`
Sets the network connection information if possible.
`Session`
`setThreadLocalSession()`
Sets this session as thread local session, if this session is a local session.
`final void`
`unlock()`
Unlocks this session.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.h2.engine.CastDataProvider

`currentTimestamp, currentTimeZone, getJavaObjectSerializer, getMode, zeroBasedEnums`

## 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:
  - `lock()`

### 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 CommandInterface prepareCommand(String sql)
Parse a command and prepare it for execution.

Parameters:
  `sql` - the SQL statement
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 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 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 ValueLob addTemporaryLob(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(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 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

### 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`