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"); } } }