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]

Reply via email to