public interface Transaction extends Closeable
Graph
instance. Vendors may
consider using AbstractTransaction
as a base implementation
that provides default features for most of these methods.
It is expected that this interface be implemented by vendors in a ThreadLocal
fashion. In other words
transactions are bound to the current thread, which means that any graph operation executed by the thread occurs
in the context of that transaction and that there may only be one thread executing in a single transaction.Modifier and Type | Interface and Description |
---|---|
static class |
Transaction.CLOSE_BEHAVIOR
Behaviors to supply to the
onClose(java.util.function.Consumer) . |
static class |
Transaction.Exceptions |
static class |
Transaction.READ_WRITE_BEHAVIOR
Behaviors to supply to the
onReadWrite(java.util.function.Consumer) . |
static class |
Transaction.Status
A status provided to transaction listeners to inform whether a transaction was successfully committed
or rolled back.
|
static class |
Transaction.Workload<R>
A
Transaction.Workload represents a unit of work constructed by the
submit(java.util.function.Function) method on the Transaction interface. |
Modifier and Type | Method and Description |
---|---|
void |
addTransactionListener(Consumer<Transaction.Status> listener)
Adds a listener that is called back with a status when a commit or rollback is successful.
|
void |
clearTransactionListeners()
Removes all transaction listeners.
|
void |
close()
Closes the transaction where the default close behavior will be executed.
|
void |
commit()
Commits a transaction.
|
<G extends Graph> |
createThreadedTx()
Creates a transaction that can be executed across multiple threads.
|
boolean |
isOpen()
Determines if a transaction is currently open.
|
Transaction |
onClose(Consumer<Transaction> consumer)
Describes what happens to a transaction on a call to
AutoCloseable.close() . |
Transaction |
onReadWrite(Consumer<Transaction> consumer)
Describes how a transaction is started when a read or a write occurs.
|
void |
open()
Opens a transaction.
|
void |
readWrite()
An internal function that signals a read or a write has occurred - not meant to be called directly by end users.
|
void |
removeTransactionListener(Consumer<Transaction.Status> listener)
Removes a transaction listener.
|
void |
rollback()
Rolls back a transaction.
|
<R> Transaction.Workload<R> |
submit(Function<Graph,R> work)
Submit a unit of work that represents a transaction returning a
Transaction.Workload that can be automatically
retried in the event of failure. |
void open()
void commit()
void rollback()
<R> Transaction.Workload<R> submit(Function<Graph,R> work)
Transaction.Workload
that can be automatically
retried in the event of failure.<G extends Graph> G createThreadedTx()
Graph
returned from this
method is not meant to represent some form of child transaction that can be committed from this object.
A threaded transaction is a Graph
instance that has a transaction context that enables multiple
threads to collaborate on the same transaction. A standard transactional context tied to a Graph
that supports transactions will typically bind a transaction to a single thread via ThreadLocal
.boolean isOpen()
void readWrite()
void close()
close
in interface AutoCloseable
close
in interface Closeable
Transaction onReadWrite(Consumer<Transaction> consumer)
Transaction.READ_WRITE_BEHAVIOR
or a mapper Consumer
function.Transaction onClose(Consumer<Transaction> consumer)
AutoCloseable.close()
.
This value can be set using standard behavior defined in Transaction.CLOSE_BEHAVIOR
or a mapper Consumer
function.void addTransactionListener(Consumer<Transaction.Status> listener)
void removeTransactionListener(Consumer<Transaction.Status> listener)
void clearTransactionListeners()
Copyright © 2013–2015 Apache Software Foundation. All rights reserved.