public class DriverRemoteTransaction extends Object implements Transaction, RemoteConnection
Transaction
implementation that is implemented with the Java driver. It is also a proxy for a
RemoteConnection
that is bound to a session.
For users, starting a transaction with Transaction.begin()
will produce a TraversalSource
that can be used
across multiple threads sending the bytecode based requests to a remote session. It is worth noting that the session
will process these requests in a serial fashion and not in parallel. Calling commit()
or
rollback()
will also close the session and no additional traversal can be executed on the
TraversalSource
. A fresh call to Transaction.begin()
will be required to open a fresh session to work with.
The default behavior of close()
is to commit the transaction.Transaction.CLOSE_BEHAVIOR, Transaction.Exceptions, Transaction.READ_WRITE_BEHAVIOR, Transaction.Status
Modifier and Type | Field and Description |
---|---|
protected Consumer<Transaction> |
closeConsumer |
NO_OP
GREMLIN_REMOTE, GREMLIN_REMOTE_CONNECTION_CLASS
Constructor and Description |
---|
DriverRemoteTransaction(DriverRemoteConnection sessionBasedConnection) |
Modifier and Type | Method and Description |
---|---|
void |
addTransactionListener(Consumer<Transaction.Status> listener)
There is no support for remote transaction listeners.
|
<T extends TraversalSource> |
begin(Class<T> traversalSourceClass)
Starts a transaction in the context of a particular
TraversalSource instance. |
void |
clearTransactionListeners()
There is no support for remote transaction listeners.
|
void |
close()
The default close behavior for this
Transaction implementation is to commit() . |
void |
commit()
Commits a transaction.
|
boolean |
isOpen()
Determines if a transaction is currently open.
|
Transaction |
onClose(Consumer<Transaction> consumer)
Describes what happens to a transaction on a call to
Graph.close() . |
Transaction |
onReadWrite(Consumer<Transaction> consumer)
This
Transaction implementation is not auto-managed and therefore this method is not supported. |
void |
open()
By virtue of creating a
DriverRemoteTransaction , the transaction is considered open. |
void |
readWrite()
This
Transaction implementation is not auto-managed and therefore this method is not supported. |
void |
removeTransactionListener(Consumer<Transaction.Status> listener)
There is no support for remote transaction listeners.
|
void |
rollback()
Rolls back a transaction.
|
<E> CompletableFuture<RemoteTraversal<?,E>> |
submitAsync(Bytecode bytecode)
|
Transaction |
tx()
It is not possible to have child transactions, therefore this method always returns
Transaction.NO_OP . |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
begin, createThreadedTx
from
protected Consumer<Transaction> closeConsumer
public DriverRemoteTransaction(DriverRemoteConnection sessionBasedConnection)
public <T extends TraversalSource> T begin(Class<T> traversalSourceClass)
Transaction
TraversalSource
instance. It is up to the
Transaction
implementation to decide what this means and up to users to be aware of that meaning.begin
in interface Transaction
public void open()
DriverRemoteTransaction
, the transaction is considered open. There is no need
to call this method. Calling it when the transaction is closed will result in exception.open
in interface Transaction
public void commit()
Transaction
TransactionException
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.commit
in interface Transaction
public void rollback()
Transaction
TransactionException
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
in interface Transaction
public boolean isOpen()
Transaction
isOpen
in interface Transaction
public void close()
Transaction
implementation is to commit()
.close
in interface AutoCloseable
close
in interface Transaction
public void readWrite()
Transaction
implementation is not auto-managed and therefore this method is not supported.readWrite
in interface Transaction
public Transaction onReadWrite(Consumer<Transaction> consumer)
Transaction
implementation is not auto-managed and therefore this method is not supported.onReadWrite
in interface Transaction
public Transaction onClose(Consumer<Transaction> consumer)
Transaction
Graph.close()
. This value can be set using
standard behavior defined in Transaction.CLOSE_BEHAVIOR
or a mapper Consumer
function.onClose
in interface Transaction
public void addTransactionListener(Consumer<Transaction.Status> listener)
addTransactionListener
in interface Transaction
public void removeTransactionListener(Consumer<Transaction.Status> listener)
removeTransactionListener
in interface Transaction
public void clearTransactionListeners()
clearTransactionListeners
in interface Transaction
public Transaction tx()
Transaction.NO_OP
.tx
in interface RemoteConnection
public <E> CompletableFuture<RemoteTraversal<?,E>> submitAsync(Bytecode bytecode) throws RemoteConnectionException
RemoteConnection
Traversal
Bytecode
to a server and returns a promise of a RemoteTraversal
.
The RemoteTraversal
is an abstraction over two types of results that can be returned as part of the
response from the server: the results of the Traversal
itself and the side-effects that it produced.submitAsync
in interface RemoteConnection
RemoteConnectionException
Copyright © 2013–2021 Apache Software Foundation. All rights reserved.