protected override void InternalProcessRecord() { if (this.server != null) { this.DismountDatabase(); } this.RemoveSystemMailbox(); this.RemoveMonitoringMailboxes(); if (this.copies != null && this.copies.Length == 1) { base.DataSession.Delete(this.copies[0]); } base.InternalProcessRecord(); TDataObject dataObject = base.DataObject; string name = dataObject.Name; TDataObject dataObject2 = base.DataObject; this.WriteWarning(Strings.NeedRemoveDatabaseFileManually(name, dataObject2.EdbFilePath.ToString())); DatabaseTasksHelper.RemoveDatabaseFromClusterDB((ITopologyConfigurationSession)base.DataSession, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.TaskErrorLoggingDelegate(base.WriteError), base.DataObject); }
private void RollbackOperation(MailboxDatabase mdb, DatabaseCopy dbCopy, ADSystemMailbox systemMailbox) { if (mdb == null || dbCopy == null) { if (systemMailbox != null) { try { base.WriteVerbose(Strings.VerboseDeleteSystemMailbox(systemMailbox.Id.ToString())); this.RecipientSessionForSystemMailbox.Delete(systemMailbox); } catch (DataSourceTransientException ex) { this.WriteWarning(Strings.FailedToDeleteSystemMailbox(systemMailbox.Identity.ToString(), ex.Message)); TaskLogger.Trace("Failed to delete System Mailbox {0} when rolling back created database object '{1}'. {2}", new object[] { systemMailbox.Identity, mdb.Identity, ex.ToString() }); } catch (DataSourceOperationException ex2) { this.WriteWarning(Strings.FailedToDeleteSystemMailbox(systemMailbox.Identity.ToString(), ex2.Message)); TaskLogger.Trace("Failed to delete System Mailbox {0} when rolling back created database object '{1}'. {2}", new object[] { systemMailbox.Identity, mdb.Identity, ex2.ToString() }); } } if (dbCopy != null) { try { base.WriteVerbose(Strings.VerboseDeleteDBCopy(dbCopy.Id.ToString())); base.DataSession.Delete(dbCopy); } catch (DataSourceTransientException ex3) { this.WriteWarning(Strings.FailedToDeleteDatabaseCopy(dbCopy.Identity.ToString(), ex3.Message)); TaskLogger.Trace("Failed to delete Database Copy {0} when rolling back created database object '{1}'. {2}", new object[] { dbCopy.Identity, mdb.Identity, ex3.ToString() }); } catch (DataSourceOperationException ex4) { this.WriteWarning(Strings.FailedToDeleteDatabaseCopy(dbCopy.Identity.ToString(), ex4.Message)); TaskLogger.Trace("Failed to delete Database Copy {0} when rolling back created database object '{1}'. {2}", new object[] { dbCopy.Identity, mdb.Identity, ex4.ToString() }); } } if (mdb != null) { try { base.WriteVerbose(Strings.VerboseDeleteMDB(mdb.Id.ToString())); base.DataSession.Delete(mdb); DatabaseTasksHelper.RemoveDatabaseFromClusterDB((ITopologyConfigurationSession)base.DataSession, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.TaskErrorLoggingDelegate(base.WriteError), mdb); } catch (DataSourceTransientException ex5) { this.WriteWarning(Strings.FailedToDeleteMailboxDatabase(mdb.Identity.ToString(), ex5.Message)); TaskLogger.Trace("Failed to delete Mailbox Database {0} when rolling back. {1}", new object[] { mdb.Identity, ex5.ToString() }); } catch (DataSourceOperationException ex6) { this.WriteWarning(Strings.FailedToDeleteMailboxDatabase(mdb.Identity.ToString(), ex6.Message)); TaskLogger.Trace("Failed to delete Mailbox Database {0} when rolling back. {1}", new object[] { mdb.Identity, ex6.ToString() }); } catch (ClusterException ex7) { this.WriteWarning(Strings.FailedToDeleteMailboxDatabase(mdb.Identity.ToString(), ex7.Message)); TaskLogger.Trace("Failed to delete Mailbox Database {0} when rolling back. {1}", new object[] { mdb.Identity, ex7.ToString() }); } } } }