コード例 #1
0
        public void ChildTransactionShouldBeAbortedIfParentIsAborted()
        {
            //arrange
            _txn = _env.BeginTransaction();
            var child = _txn.BeginTransaction();

            //act
            _txn.Abort();

            //assert
            Assert.AreEqual(LightningTransactionState.Aborted, child.State);
        }
コード例 #2
0
 public void Rollback(ITransaction transaction)
 {
     try
     {
         foreach (LMDBCollection collection in _collectionTable.Values)
         {
             collection.ResetTemporaryStats();
         }
         ValidateTransaction(transaction);
         LightningTransaction lmdbTransaction = (LightningTransaction)transaction.InnerObject;
         lmdbTransaction.Abort();
     }
     catch (TransactionComittedException)
     {
         if (LoggerManager.Instance.StorageLogger != null && LoggerManager.Instance.StorageLogger.IsWarnEnabled)
         {
             LoggerManager.Instance.StorageLogger.Warn("LMDB.Rollback", " Transaction is comitted already. " + GetFileInfo());
         }
     }
     catch (TransactionAobrtException)
     {
         if (LoggerManager.Instance.StorageLogger != null && LoggerManager.Instance.StorageLogger.IsWarnEnabled)
         {
             LoggerManager.Instance.StorageLogger.Warn("LMDB.Rollback", " Transaction is aborted already. " + GetFileInfo());
         }
     }
     finally
     {
         if (_readerTransaction != null)
         {
             lock (_readerTransactionLock)
             {
                 if (_readerTransaction != null)
                 {
                     _readerTransaction.MarkForRollback();
                     //_readerTransaction = null;
                 }
             }
         }
         RemoveTransactionFromLists(transaction);
     }
 }
コード例 #3
0
        public void ChildTransactionShouldBeAbortedIfParentIsAborted()
        {
            //arrange
            _txn = _env.BeginTransaction();
            var child = _txn.BeginTransaction();

            //act
            _txn.Abort();

            //assert
            Assert.AreEqual(LightningTransactionState.Aborted, child.State);
        }