Interface Transaction
-
- All Superinterfaces:
AutoCloseable
- All Known Implementing Classes:
AbstractThreadedTransaction
,AbstractThreadLocalTransaction
,AbstractTransaction
,DriverRemoteTransaction
public interface Transaction extends AutoCloseable
A set of methods that allow for control of transactional behavior of aGraph
instance. Providers may consider usingAbstractTransaction
as a base implementation that provides default features for most of these methods.- Author:
- Marko A. Rodriguez (http://markorodriguez.com), Stephen Mallette (http://stephen.genoprime.com), TinkerPop Community (http://tinkerpop.apache.org)
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
Transaction.CLOSE_BEHAVIOR
Behaviors to supply to theonClose(Consumer)
.static class
Transaction.Exceptions
static class
Transaction.READ_WRITE_BEHAVIOR
Behaviors to supply to theonReadWrite(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.Symbols
-
Field Summary
Fields Modifier and Type Field Description static Transaction
NO_OP
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description void
addTransactionListener(Consumer<Transaction.Status> listener)
Adds a listener that is called back with a status when a commit or rollback is successful.default <T extends TraversalSource>
Tbegin()
Starts a transaction in the context of aGraphTraversalSource
instance.<T extends TraversalSource>
Tbegin(Class<T> traversalSourceClass)
Starts a transaction in the context of a particularTraversalSource
instance.void
clearTransactionListeners()
Removes all transaction listeners.void
close()
Closes the transaction where the default close behavior defined by {onClose(Consumer)
} will be executed.void
commit()
Commits a transaction.default <G extends Graph>
GcreateThreadedTx()
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 toGraph.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.
-
-
-
Field Detail
-
NO_OP
static final Transaction NO_OP
-
-
Method Detail
-
open
void open()
Opens a transaction.
-
commit
void commit()
Commits a transaction. This method may optionally throwTransactionException
on error. Providers should consider wrapping their transaction exceptions in this TinkerPop exception as it will lead to better error handling with Gremlin Server and other parts of the stack.
-
rollback
void rollback()
Rolls back a transaction. This method may optionally throwTransactionException
on error. Providers should consider wrapping their transaction exceptions in this TinkerPop exception as it will lead to better error handling with Gremlin Server and other parts of the stack.
-
createThreadedTx
default <G extends Graph> G createThreadedTx()
Creates a transaction that can be executed across multiple threads. TheGraph
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 aGraph
instance that has a transaction context that enables multiple threads to collaborate on the same transaction. A standard transactional context tied to aGraph
that supports transactions will typically bind a transaction to a single thread viaThreadLocal
.
-
begin
default <T extends TraversalSource> T begin()
Starts a transaction in the context of aGraphTraversalSource
instance. It is up to theTransaction
implementation to decide what this means and up to users to be aware of that meaning.
-
begin
<T extends TraversalSource> T begin(Class<T> traversalSourceClass)
Starts a transaction in the context of a particularTraversalSource
instance. It is up to theTransaction
implementation to decide what this means and up to users to be aware of that meaning.
-
isOpen
boolean isOpen()
Determines if a transaction is currently open.
-
readWrite
void readWrite()
An internal function that signals a read or a write has occurred - not meant to be called directly by end users.
-
close
void close()
Closes the transaction where the default close behavior defined by {onClose(Consumer)
} will be executed.- Specified by:
close
in interfaceAutoCloseable
-
onReadWrite
Transaction onReadWrite(Consumer<Transaction> consumer)
Describes how a transaction is started when a read or a write occurs. This value can be set using standard behaviors defined inTransaction.READ_WRITE_BEHAVIOR
or a mapperConsumer
function.
-
onClose
Transaction onClose(Consumer<Transaction> consumer)
Describes what happens to a transaction on a call toGraph.close()
. This value can be set using standard behavior defined inTransaction.CLOSE_BEHAVIOR
or a mapperConsumer
function.
-
addTransactionListener
void addTransactionListener(Consumer<Transaction.Status> listener)
Adds a listener that is called back with a status when a commit or rollback is successful. It is expected that listeners be bound to the current thread as is standard for transactions. Therefore a listener registered in the current thread will not get callback events from a commit or rollback call in a different thread.
-
removeTransactionListener
void removeTransactionListener(Consumer<Transaction.Status> listener)
Removes a transaction listener.
-
clearTransactionListeners
void clearTransactionListeners()
Removes all transaction listeners.
-
-