Interface ClientSession

All Superinterfaces:
AutoCloseable, ClientSession, Closeable

public interface ClientSession extends ClientSession
A client session that supports transactions.
Since:
3.8
  • Method Details

    • getPinnedServerAddress

      @Nullable ServerAddress getPinnedServerAddress()
      Returns the server address of the pinned mongos on this session.
      Specified by:
      getPinnedServerAddress in interface ClientSession
      Returns:
      the server address of the pinned mongos.
      Since:
      3.11
      Since server release
      4.2
    • hasActiveTransaction

      boolean hasActiveTransaction()
      Returns true if there is an active transaction on this session, and false otherwise
      Returns:
      true if there is an active transaction on this session
      Since server release
      4.0
    • notifyMessageSent

      boolean notifyMessageSent()
      Notify the client session that a message has been sent.

      For internal use only

      Returns:
      true if this is the first message sent, false otherwise
    • notifyOperationInitiated

      void notifyOperationInitiated(Object operation)
      Notify the client session that command execution is being initiated. This should be called before server selection occurs.

      For internal use only

      Parameters:
      operation - the operation
    • getTransactionOptions

      TransactionOptions getTransactionOptions()
      Gets the transaction options. Only call this method of the session has an active transaction
      Returns:
      the transaction options
    • startTransaction

      void startTransaction()
      Start a transaction in the context of this session with default transaction options. A transaction can not be started if there is already an active transaction on this session.
      Since server release
      4.0
    • startTransaction

      void startTransaction(TransactionOptions transactionOptions)
      Start a transaction in the context of this session with the given transaction options. A transaction can not be started if there is already an active transaction on this session.
      Parameters:
      transactionOptions - the options to apply to the transaction
      Since server release
      4.0
    • commitTransaction

      void commitTransaction()
      Commit a transaction in the context of this session. A transaction can only be commmited if one has first been started.
      Since server release
      4.0
    • abortTransaction

      void abortTransaction()
      Abort a transaction in the context of this session. A transaction can only be aborted if one has first been started.
      Since server release
      4.0
    • withTransaction

      <T> T withTransaction(TransactionBody<T> transactionBody)
      Execute the given function within a transaction.
      Type Parameters:
      T - the return type of the transaction body
      Parameters:
      transactionBody - the body of the transaction
      Returns:
      the return value of the transaction body
      Since:
      3.11
      Since server release
      4.0
    • withTransaction

      <T> T withTransaction(TransactionBody<T> transactionBody, TransactionOptions options)
      Execute the given function within a transaction.
      Type Parameters:
      T - the return type of the transaction body
      Parameters:
      transactionBody - the body of the transaction
      options - the transaction options
      Returns:
      the return value of the transaction body
      Since:
      3.11
      Since server release
      4.0