Packages

class Transactions extends AnyRef

The starting point for accessing Couchbase transactions.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Transactions
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. def run(transactionLogic: (TransactionAttemptContext) => Try[Unit]): Try[TransactionResult]

    A convenience overload of Transactions.run() providing default options.

  2. def run(transactionLogic: (TransactionAttemptContext) => Try[Unit], options: Option[TransactionOptions] = None): Try[TransactionResult]

    Runs supplied transactional logic until success or failure.

    Runs supplied transactional logic until success or failure.

    The supplied transactional logic will be run if necessary multiple times, until either:

    • The transaction successfully commits
    • The transaction fails, e.g. the logic returns a Failure, or throws.
    • The transaction timesout.
    • An exception is raised, either inside the transaction library or by the supplied transaction logic, that cannot be handled.

    The transaction logic lambda is provided a TransactionAttemptContext, which contains methods allowing it to perform all operations that are possible inside a transaction.

    If the lambda returns a Success, the transaction will commit.

    transactionLogic

    the application's transaction logic

    options

    the configuration to use for this transaction

    returns

    there is no need to check the returned CoreTransactionResult, as success is implied by the lack of a thrown exception. It contains information useful only for debugging and logging. Raises TransactionFailedException or a derived exception if the transaction fails to commit for any reason, possibly after multiple retries.