# The MongoDB\Driver\Session class

(mongodb >=1.4.0)

## Introduction

The MongoDB\Driver\Session class represents a client session and is returned by MongoDB\Driver\Manager::startSession(). Commands, queries, and write operations may then be associated the session.

## Class synopsis

final MongoDB\Driver\Session {
/* Constants */
const string TRANSACTION_NONE = none ;
const string TRANSACTION_STARTING = starting ;
const string TRANSACTION_IN_PROGRESS = in_progress ;
const string TRANSACTION_COMMITTED = committed ;
const string TRANSACTION_ABORTED = aborted ;
/* Methods */
final public abortTransaction ( ) : void
final public advanceClusterTime ( array|object `$clusterTime` ) : void
final public advanceOperationTime ( MongoDB\BSON\TimestampInterface `$operationTime` ) : void
final public commitTransaction ( ) : void
final private __construct ( )
final public endSession ( ) : void
final public getClusterTime ( ) : object|null
final public getLogicalSessionId ( ) : object
final public getOperationTime ( ) : MongoDB\BSON\Timestamp|null
final public getServer ( ) : MongoDB\Driver\Server|null
final public getTransactionOptions ( ) : array|null
final public getTransactionState ( ) : string
final public isInTransaction ( ) : bool
final public startTransaction ([ array `$options` ] ) : void
}

## Predefined Constants

`MongoDB\Driver\Session::TRANSACTION_NONE`

  There is no transaction in progress.

`MongoDB\Driver\Session::TRANSACTION_STARTING`

  A transaction has been started, but no operation has been sent to the server.

`MongoDB\Driver\Session::TRANSACTION_IN_PROGRESS`

  A transaction is in progress.

`MongoDB\Driver\Session::TRANSACTION_COMMITTED`

  The transaction was committed.

`MongoDB\Driver\Session::TRANSACTION_ABORTED`

  The transaction was aborted.

## Table of Contents

- MongoDB\Driver\Session::abortTransaction — Aborts a transaction
- MongoDB\Driver\Session::advanceClusterTime — Advances the cluster time for this session
- MongoDB\Driver\Session::advanceOperationTime — Advances the operation time for this session
- MongoDB\Driver\Session::commitTransaction — Commits a transaction
- MongoDB\Driver\Session::__construct — Create a new Session (not used)
- MongoDB\Driver\Session::endSession — Terminates a session
- MongoDB\Driver\Session::getClusterTime — Returns the cluster time for this session
- MongoDB\Driver\Session::getLogicalSessionId — Returns the logical session ID for this session
- MongoDB\Driver\Session::getOperationTime — Returns the operation time for this session
- MongoDB\Driver\Session::getServer — Returns the server to which this session is pinned
- MongoDB\Driver\Session::getTransactionOptions — Returns options for the currently running transaction
- MongoDB\Driver\Session::getTransactionState — Returns the current transaction state for this session
- MongoDB\Driver\Session::isInTransaction — Returns whether a multi-document transaction is in progress
- MongoDB\Driver\Session::startTransaction — Starts a transaction