ozeigermann 2004/04/02 00:08:28
Modified: src/stores/org/apache/slide/store/txfile/rm/impl Tag:
SLIDE_2_1_EXTERNAL_TX FileResourceManager.java
src/stores/org/apache/slide/store/txfile Tag:
SLIDE_2_1_EXTERNAL_TX
AbstractTxFileStoreService.java
src/stores/org/apache/slide/store/txfile/rm Tag:
SLIDE_2_1_EXTERNAL_TX ResourceManagerException.java
Log:
Initial external transaction implementation
Revision Changes Path
No revision
No revision
1.8.2.1 +23 -5
jakarta-slide/src/stores/org/apache/slide/store/txfile/rm/impl/FileResourceManager.java
Index: FileResourceManager.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/stores/org/apache/slide/store/txfile/rm/impl/FileResourceManager.java,v
retrieving revision 1.8
retrieving revision 1.8.2.1
diff -u -r1.8 -r1.8.2.1
--- FileResourceManager.java 19 Feb 2004 17:05:39 -0000 1.8
+++ FileResourceManager.java 2 Apr 2004 08:08:27 -0000 1.8.2.1
@@ -464,6 +464,22 @@
}
+ public void resumeTransaction(Object txId) throws ResourceManagerException {
+ logger.logFine("Starting Tx " + txId);
+
+ assureStarted(); // can only start a new transaction when not already
stopping
+ if (txId == null || txId.toString().length() == 0) {
+ throw new ResourceManagerException(ERR_TXID_INVALID, txId);
+ }
+
+ TransactionContext context = getContext(txId);
+
+ if (context == null) {
+ throw new ResourceManagerException(ERR_NO_TX, txId);
+ }
+ context.txThread = Thread.currentThread();
+ }
+
public void startTransaction(Object txId) throws ResourceManagerException {
logger.logFine("Starting Tx " + txId);
@@ -521,7 +537,8 @@
}
if (!Thread.currentThread().equals(context.txThread)) {
- throw new ResourceManagerException(ERR_THREAD_INVALID, txId);
+ context.txThread = Thread.currentThread();
+// throw new ResourceManagerException(ERR_THREAD_INVALID, txId);
}
synchronized (context) {
@@ -914,7 +931,8 @@
}
if (!Thread.currentThread().equals(context.txThread)) {
- throw new ResourceManagerException(ERR_THREAD_INVALID, txId);
+ context.txThread = Thread.currentThread();
+ // throw new ResourceManagerException(ERR_THREAD_INVALID, txId);
}
return context;
No revision
No revision
1.10.2.1 +13 -6
jakarta-slide/src/stores/org/apache/slide/store/txfile/AbstractTxFileStoreService.java
Index: AbstractTxFileStoreService.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/stores/org/apache/slide/store/txfile/AbstractTxFileStoreService.java,v
retrieving revision 1.10
retrieving revision 1.10.2.1
diff -u -r1.10 -r1.10.2.1
--- AbstractTxFileStoreService.java 19 Feb 2004 16:58:26 -0000 1.10
+++ AbstractTxFileStoreService.java 2 Apr 2004 08:08:28 -0000 1.10.2.1
@@ -275,7 +275,6 @@
"Thread of control suspends work on behalf of transaction
branch",
LOG_CHANNEL,
Logger.DEBUG);
- // XXX we do not resume, so we do not suspend
break;
case TMFAIL :
getLogger().log("Transaction branch failed", LOG_CHANNEL,
Logger.DEBUG);
@@ -333,8 +332,16 @@
activeTransactionBranch.set(txId);
break;
case TMRESUME :
- getLogger().log("Thread of control resume work on known transaction
branch", LOG_CHANNEL, Logger.DEBUG);
- // XXX we do not suspend, so we do not resume
+ getLogger().log(
+ "Thread of control resumes work on known transaction branch",
+ LOG_CHANNEL,
+ Logger.DEBUG);
+ try {
+ rm.resumeTransaction(txId);
+ activeTransactionBranch.set(txId);
+ } catch (ResourceManagerException e) {
+ throwXAException(e);
+ }
break;
}
}
No revision
No revision
1.4.2.1 +4 -4
jakarta-slide/src/stores/org/apache/slide/store/txfile/rm/ResourceManagerException.java
Index: ResourceManagerException.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/stores/org/apache/slide/store/txfile/rm/ResourceManagerException.java,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -r1.4 -r1.4.2.1
--- ResourceManagerException.java 11 Feb 2004 11:30:22 -0000 1.4
+++ ResourceManagerException.java 2 Apr 2004 08:08:28 -0000 1.4.2.1
@@ -81,7 +81,7 @@
"Transaction inactive",
"Inconsistent transaction data",
"Duplicate transaction id",
- "Thread of control is the one that not start tx",
+ "Thread of control is not the one that started tx",
"Isolation level unsupported",
"Specified resource id is invalid",
"Resource already exists",
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]