public override void Close() { Commit(); var lsession = GetSession(); _objectWriter.FileSystemProcessor.WriteLastOdbCloseStatus(true, false); _objectWriter.FileSystemProcessor.Flush(); if (lsession.TransactionIsPending()) { throw new OdbRuntimeException(NDatabaseError.TransactionIsPending.AddParameter(lsession.GetId())); } IsDbClosed = true; ObjectReader.Close(); _objectWriter.Close(); lsession.Close(); if (_objectIntrospector != null) { _objectIntrospector.Clear(); _objectIntrospector = null; } // remove trigger manager RemoveLocalTriggerManager(); }