internal void CloseTransaction(TccTransaction <TContext> trans) { _counter.ActiveTransaction.Decrement(); lock (_syncRoot) { _activeTrans.Remove(trans.TxId); } if (_persister != null) { try { _persister.CloseTransaction(trans.GetData()); } catch (Exception ex) { _tracing.ErrorFmt(ex, "Tcc Persister Failed"); } } }
internal void NewTransaction(TccTransaction <TContext> trans) { _counter.ActiveTransaction.Increment(); _counter.TransOpenPerSec.Increment(); lock (_syncRoot) { _activeTrans.Add(trans.TxId, trans); } if (_persister != null) { try { _persister.NewTransaction(trans.GetData()); } catch (Exception ex) { _tracing.ErrorFmt(ex, "Tcc Persister Failed"); } } }
internal void UpdateTransaction(TccTransaction <TContext> trans) { TccTransaction <TContext> tx; lock (_syncRoot) { if (!_activeTrans.TryGetValue(trans.TxId, out tx)) { // 报错 throw new Exception("Tansaction not in ActiveTrans"); } } if (_persister != null) { try { _persister.UpdateTransaction(trans.GetData()); } catch (Exception ex) { _tracing.ErrorFmt(ex, "Tcc Persister Failed"); } } }
internal TccTransactionContext(TccTransaction <TContext> trans, Action <TccTransactionContext <TContext> > callback) { _trans = trans; _callback = callback; _hasReturned = 0; }
public TccTransactionException(TccTransaction <TContext> trans, string message, Exception ex) : base(message) { Transaction = trans; Error = ex; }