/// <summary> /// Abort a transaction is used when begin and has no changes yet - no writes, no checks /// </summary> public void Abort() { if (_level == 0) { return; } if (_level == 1) { _disk.UnLock(); _level = 0; } else { _level--; } }
private void DoRecovery(BinaryReader reader) { // open disk service using (var disk = new DiskService(_connectionString)) { disk.Lock(); // while pages, read from redo, write on disk while (reader.BaseStream.Position != reader.BaseStream.Length) { var page = this.ReadPageJournal(reader); disk.WritePage(page); } reader.Close(); disk.UnLock(); } }