class Transactions extends AnyRef
The starting point for accessing Couchbase transactions.
- Alphabetic
- By Inheritance
- Transactions
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- def run(transactionLogic: (TransactionAttemptContext) => Try[Unit]): Try[TransactionResult]
A convenience overload of Transactions.run() providing default options.
- 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.