Package org.apache.ignite

## Interface IgniteTransactions

-     public interface IgniteTransactions

  Transactions facade provides ACID-compliant semantic when working with caches. You can create a transaction when working with one cache or across multiple caches. Caches with different cache modes, like `PARTITIONED` or `REPLICATED`, can also participate in the same transaction.

  Transactions are `AutoCloseable`, so they will automatically rollback unless explicitly committed.

  Here is an example of a transaction:

       try (Transaction tx = Ignition.ignite().transactions().txStart()) {
         Account acct = cache.get(acctId);

         // Current balance.
         double balance = acct.getBalance();

         // Deposit $100 into account.
         acct.setBalance(balance + 100);

         // Store updated account in cache.
         cache.put(acctId, acct);

         tx.commit();
       }

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Collection<Transaction>` | `localActiveTransactions()` | Returns a list of active transactions initiated by this node.
    `TransactionMetrics` | `metrics()` |
    `void` | `resetMetrics()` | Resets transaction metrics.
    `Transaction` | `tx()` | Gets transaction started by this thread or `null` if this thread does not have a transaction.
    `Transaction` | `txStart()` | Starts transaction with default isolation, concurrency, timeout, and invalidation policy.
    `Transaction` | `txStart​(TransactionConcurrency concurrency, TransactionIsolation isolation)` | Starts new transaction with the specified concurrency and isolation.
    `Transaction` | `txStart​(TransactionConcurrency concurrency, TransactionIsolation isolation, long timeout, int txSize)` | Starts transaction with specified isolation, concurrency, timeout, invalidation flag, and number of participating entries.
    `IgniteTransactions` | `withLabel​(String lb)` | Returns instance of Ignite Transactions to mark a transaction with a special label.
    `IgniteTransactions` | `withTracing()` | Returns an instance of `IgniteTransactions` tran will trace every transaction.

- - ### Method Detail

    - #### txStart

          Transaction txStart()
                       throws IllegalStateException

      Starts transaction with default isolation, concurrency, timeout, and invalidation policy. All defaults are set in `TransactionConfiguration` at startup.
      Returns:
        New transaction
      Throws:
        `IllegalStateException` - If transaction is already started by this thread.

    - #### txStart

          Transaction txStart​(TransactionConcurrency concurrency,
                              TransactionIsolation isolation)

      Starts new transaction with the specified concurrency and isolation.
      Parameters:
        `concurrency` - Concurrency.
        `isolation` - Isolation.
      Returns:
        New transaction.
      Throws:
        `IllegalStateException` - If transaction is already started by this thread.

    - #### txStart

          Transaction txStart​(TransactionConcurrency concurrency,
                              TransactionIsolation isolation,
                              long timeout,
                              int txSize)

      Starts transaction with specified isolation, concurrency, timeout, invalidation flag, and number of participating entries.
      Parameters:
        `concurrency` - Concurrency.
        `isolation` - Isolation.
        `timeout` - Timeout.
        `txSize` - Number of entries participating in transaction (may be approximate).
      Returns:
        New transaction.
      Throws:
        `IllegalStateException` - If transaction is already started by this thread.

    - #### tx

          Transaction tx()

      Gets transaction started by this thread or `null` if this thread does not have a transaction.
      Returns:
        Transaction started by this thread or `null` if this thread does not have a transaction.

    - #### metrics

          TransactionMetrics metrics()

      Returns:
        Transaction metrics.

    - #### resetMetrics

          void resetMetrics()

      Resets transaction metrics.

    - #### localActiveTransactions

          Collection<Transaction> localActiveTransactions()

      Returns a list of active transactions initiated by this node.

      Note: returned transaction handle will only support getters, `Transaction.close()`, `Transaction.rollback()`, `Transaction.rollbackAsync()` methods. Trying to invoke other methods will lead to UnsupportedOperationException.

      Returns:
        Transactions started on local node.

    - #### withLabel

          IgniteTransactions withLabel​(String lb)

      Returns instance of Ignite Transactions to mark a transaction with a special label. The label can be obtained via `Transaction.label()` method.
      Parameters:
        `lb` - label.
      Returns:
        `This` for chaining.
      Throws:
        `NullPointerException` - if label is null.
      See Also:
        `Transaction.label()`

    - #### withTracing

          IgniteTransactions withTracing()

      Returns an instance of `IgniteTransactions` tran will trace every transaction.
      Returns:
        Trace-enabled transactions intance.