Beispiel #1
0
        /** <inheritDoc /> */
        public ITransactionCollection GetLocalActiveTransactions()
        {
            return(DoInOp(OpLocalActiveTransactions, stream =>
            {
                var reader = Marshaller.StartUnmarshal(stream);

                var size = reader.ReadInt();

                var result = new List <ITransaction>(size);

                for (var i = 0; i < size; i++)
                {
                    var id = reader.ReadLong();

                    var concurrency = reader.ReadInt();

                    var isolation = reader.ReadInt();

                    var timeout = reader.ReadLongAsTimespan();

                    var label = reader.ReadString();

                    var innerTx = new TransactionRollbackOnlyProxy(this, id, (TransactionConcurrency)concurrency,
                                                                   (TransactionIsolation)isolation, timeout, label, _localNodeId);

                    result.Add(innerTx);
                }

                return new TransactionCollectionImpl(result);
            }));
        }
Beispiel #2
0
 /// <summary>
 /// Rolls tx back in async mode.
 /// </summary>
 internal Task TxRollbackAsync(TransactionRollbackOnlyProxy tx)
 {
     return(DoOutOpAsync(OpRollbackAsync, w => w.WriteLong(tx.Id)));
 }
Beispiel #3
0
 /// <summary>
 /// Remove transaction.
 /// </summary>
 /// <param name="tx">Transaction.</param>
 internal void TxRemove(TransactionRollbackOnlyProxy tx)
 {
     DoOutInOp(OpLocalActiveTransactionsRemove, tx.Id);
 }
Beispiel #4
0
 /// <summary>
 /// Get transaction current state.
 /// </summary>
 /// <param name="tx">Transaction.</param>
 /// <returns>Transaction current state.</returns>
 internal TransactionState TxState(TransactionRollbackOnlyProxy tx)
 {
     return((TransactionState)DoOutInOp(OpState, tx.Id));
 }
Beispiel #5
0
 /// <summary>
 /// Close transaction.
 /// </summary>
 /// <param name="tx">Transaction.</param>
 /// <returns>Final transaction state.</returns>
 public void TxClose(TransactionRollbackOnlyProxy tx)
 {
     DoOutInOp(OpClose, tx.Id);
 }
Beispiel #6
0
 /// <summary>
 /// Rollback transaction.
 /// </summary>
 /// <param name="tx">Transaction.</param>
 internal void TxRollback(TransactionRollbackOnlyProxy tx)
 {
     DoOutInOp(OpRollback, tx.Id);
 }