org.h2.mvstore.db

## Class TransactionStore

- java.lang.Object
- - org.h2.mvstore.db.TransactionStore

    public class TransactionStore
    extends java.lang.Object

A store that supports concurrent MVCC read-committed transactions.

### Nested Class Summary

Nested Classes
`static class` `TransactionStore.ArrayType` A data type that contains an array of objects with the specified data types.
`static class` `TransactionStore.Change` A change in a map.
`static class` `TransactionStore.Transaction` A transaction.
`static class` `TransactionStore.TransactionMap<K,V>` A map that supports transactions.
`static class` `TransactionStore.VersionedValueType` The value type for a versioned value.

### Constructor Summary

Constructors
Constructor and Description
`TransactionStore(MVStore store)` Create a new transaction store.
`TransactionStore(MVStore store, DataType dataType)` Create a new transaction store.

### Method Summary

Methods
`TransactionStore.Transaction` `begin()` Begin a new transaction.
`void` `close()` Close the transaction store.
`java.util.List<TransactionStore.Transaction>` `getOpenTransactions()` Get the list of unclosed transactions that have pending writes.
`void` `init()` Initialize the store.
`void` `logUndo(TransactionStore.Transaction t, long logId)` Remove a log entry.
`void` `setMaxTransactionId(int max)` Set the maximum transaction id, after which ids are re-used.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### TransactionStore

    public TransactionStore(MVStore store)

Create a new transaction store.

Parameters:
  `store` - the store

#### TransactionStore

    public TransactionStore(MVStore store,
                    DataType dataType)

Create a new transaction store.

Parameters:
  `store` - the store
  `dataType` - the data type for map keys and values

### Method Detail

#### init

    public void init()

Initialize the store. This is needed before a transaction can be opened. If the transaction store is corrupt, this method can throw an exception, in which case the store can only be used for reading.

#### setMaxTransactionId

    public void setMaxTransactionId(int max)

Set the maximum transaction id, after which ids are re-used. If the old transaction is still in use when re-using an old id, the new transaction fails.

Parameters:
  `max` - the maximum id

#### getOpenTransactions

    public java.util.List<TransactionStore.Transaction> getOpenTransactions()

Get the list of unclosed transactions that have pending writes.

Returns:
  the list of transactions (sorted by id)

#### close

    public void close()

Close the transaction store.

#### begin

    public TransactionStore.Transaction begin()

Begin a new transaction.

Returns:
  the transaction

#### logUndo

    public void logUndo(TransactionStore.Transaction t,
               long logId)

Remove a log entry.

Parameters:
  `t` - the transaction
  `logId` - the log id