summaryrefslogtreecommitdiff
path: root/src/main/java/com/amazon/carbonado/spi
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/amazon/carbonado/spi')
-rw-r--r--src/main/java/com/amazon/carbonado/spi/AbstractRepository.java28
1 files changed, 8 insertions, 20 deletions
diff --git a/src/main/java/com/amazon/carbonado/spi/AbstractRepository.java b/src/main/java/com/amazon/carbonado/spi/AbstractRepository.java
index c9bc0b5..191f94e 100644
--- a/src/main/java/com/amazon/carbonado/spi/AbstractRepository.java
+++ b/src/main/java/com/amazon/carbonado/spi/AbstractRepository.java
@@ -54,7 +54,6 @@ public abstract class AbstractRepository<Txn>
implements Repository, ShutdownCapability, SequenceCapability
{
private final String mName;
- private final TransactionManager<Txn> mTxnMgr;
private final ReadWriteLock mShutdownLock;
private final StoragePool mStoragePool;
@@ -97,8 +96,6 @@ public abstract class AbstractRepository<Txn>
}
}
};
-
- mTxnMgr = createTransactionManager();
}
public String getName() {
@@ -112,19 +109,19 @@ public abstract class AbstractRepository<Txn>
}
public Transaction enterTransaction() {
- return mTxnMgr.localScope().enter(null);
+ return localTransactionScope().enter(null);
}
public Transaction enterTransaction(IsolationLevel level) {
- return mTxnMgr.localScope().enter(level);
+ return localTransactionScope().enter(level);
}
public Transaction enterTopTransaction(IsolationLevel level) {
- return mTxnMgr.localScope().enterTop(level);
+ return localTransactionScope().enterTop(level);
}
public IsolationLevel getTransactionIsolationLevel() {
- return mTxnMgr.localScope().getIsolationLevel();
+ return localTransactionScope().getIsolationLevel();
}
/**
@@ -207,18 +204,14 @@ public abstract class AbstractRepository<Txn>
}
/**
- * Returns the TransactionManager which was passed into the constructor.
+ * Returns the repository's TransactionManager.
*/
- protected TransactionManager<Txn> transactionManager() {
- return mTxnMgr;
- }
+ protected abstract TransactionManager<Txn> transactionManager();
/**
* Returns the thread-local TransactionScope, creating it if needed.
*/
- protected TransactionScope<Txn> localTransactionScope() {
- return mTxnMgr.localScope();
- }
+ protected abstract TransactionScope<Txn> localTransactionScope();
/**
* Call to prevent shutdown hook from running. Be sure to call
@@ -281,11 +274,6 @@ public abstract class AbstractRepository<Txn>
protected abstract SequenceValueProducer createSequenceValueProducer(String name)
throws RepositoryException;
- /**
- * Called upon to create a new TransactionManager instance.
- */
- protected abstract TransactionManager<Txn> createTransactionManager();
-
void info(String message) {
Log log = getLog();
if (log != null) {
@@ -337,7 +325,7 @@ public abstract class AbstractRepository<Txn>
repository.mSequencePool.returnReservedValues(null);
try {
- repository.mTxnMgr.close(suspendThreads);
+ repository.transactionManager().close(suspendThreads);
} catch (Throwable e) {
repository.error("Failed to close TransactionManager", e);
}