/// <summary> /// Currently does not involve TM, will do it in later step /// </summary> /// <param name="context"></param> public XaResponse Commit(TP.Transaction context) { WaitForReady(); ++NumberCommits; if (NumberCommits >= this.VoteNoOnCommit && this.VoteNoOnCommit != 0) { return(XaResponse.XAER_RMERR); } _transactionStorage.Commit(context); _lockManager.UnlockAll(context); return(XaResponse.XA_OK); }
public void CommitTest() { Transaction context = new Transaction(); Transaction context1 = new Transaction(); RID rid = new RID(RID.Type.FLIGHT, Guid.NewGuid().ToString().Substring(0, 24)); var db = CreateDatabase(); TransactionStorage tr = new TransactionStorage(db); tr.Write(context, rid, new Resource(rid, 10, 11)); Resource res = tr.Read(context1, rid); Assert.IsNull(res); tr.Prepare(context); tr.Commit(context); res = tr.Read(context, rid); Assert.AreEqual(11, res.getPrice()); }