Class Mongo::Session::ServerSession
In: lib/mongo/session/server_session.rb
Parent: Object

An object representing the server-side session.

@api private

@since 2.5.0

Methods

Constants

DASH_REGEX = /\-/.freeze   Regex for removing dashes from the UUID string.

@since 2.5.0

UUID_PACK = 'H*'.freeze   Pack directive for the UUID.

@since 2.5.0

Attributes

last_use  [R]  The last time the server session was used.

@since 2.5.0

txn_num  [R]  The current transaction number.

When a transaction is active, all operations in that transaction use the same transaction number. If the entire transaction is restarted (for example, by Session#with_transaction, in which case it would also invoke the block provided to it again), each transaction attempt has its own transaction number.

Transaction number is also used outside of transactions for retryable writes. In this case, each write operation has its own transaction number, but retries of a write operation use the same transaction number as the first write (which is how the server knows that subsequent writes are retries and should be ignored if the first write succeeded on the server but was not read by the client, for example).

@since 2.5.0

Public Class methods

Initialize a ServerSession.

@example

  ServerSession.new

@since 2.5.0

Public Instance methods

Get a formatted string for use in inspection.

@example Inspect the session object.

  session.inspect

@return [ String ] The session inspection.

@since 2.5.0

Increment the current transaction number and return the new value.

@return [ Integer ] The updated transaction number.

@since 2.5.0

The session id of this server session.

@example Get the session id.

  server_session.session_id

@return [ BSON::Document ] The session id.

@since 2.5.0

Update the last_use attribute of the server session to now.

@example Set the last use field to now.

  server_session.set_last_use!

@return [ Time ] The last time the session was used.

@since 2.5.0

[Validate]