public static class JournalTransactionService.SinglePhaseCommit extends AbstractTask<Void>
Note: DO NOT
Tx.lock while you submit this task as it
could cause a deadlock if there is a task ahead of you in the queue for
the same tx!
Note: DO NOT use this task for a distributed transaction (one with writes
on more than one
DataService) since it will fail to obtain a
coherent commit time for the transaction as a whole.
AbstractTask.DelegateTask<T>, AbstractTask.InnerReadWriteTxServiceCallable<T>, AbstractTask.InnerWriteServiceCallable<T>, AbstractTask.ResubmitException
checkpointNanoTime, concurrencyManager, isReadWriteTx, log, nanoTime_assignedWorker, nanoTime_beginWork, nanoTime_finishedWork, nanoTime_submitTask, readOnly, resourceManager, taskCounters, timestamp, transactionManager, tx
|Constructor and Description|
|Modifier and Type||Method and Description|
Implement the task behavior here.
assertResource, assertRunning, assertUnisolated, call, clearLoggingContext, dropIndex, getCommitTime, getIndex, getJournal, getOnlyResource, getResource, getResourceManager, getTaskCounters, getTaskName, getTimestamp, isResource, registerIndex, setupLoggingContext, toString
public JournalTransactionService.SinglePhaseCommit(IConcurrencyManager concurrencyManager, ILocalTransactionManager localTransactionManager, Tx state)
public Void doTask() throws Exception
Note: Long-running implementations MUST periodically test
Thread.interrupted() and MUST throw an exception, such as
InterruptedException, if they are interrupted. This behavior
allows tasks to be canceled in a timely manner.
If you ignore or fail to test
Thread.interrupted() then your task
CAN NOT be aborted. If it is
false then the task will run to completion even though it
has been cancelled (but the
Future will appear to have been
If you simply
return rather than throwing an exception
WriteExecutorService will assume that your task
completed and your (partial) results will be made restart-safe at the
AbstractTask.call()iff the operation succeeds.
Exception- The exception that will be thrown by
AbstractTask.call()iff the operation fails.
InterruptedException- This exception SHOULD be thrown if
Thread.interrupted()becomes true during execution.
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.