public override string GetFqdn(string shortNodeName, bool throwException) { string result; try { ExTraceGlobals.FaultInjectionTracer.TraceTest(3081121085U); result = base.GetFqdn(shortNodeName, true); } catch (AmServerNameResolveFqdnException ex) { AmTrace.Error("FQDN resolution of the short name {0} failed. Error: {1}", new object[] { shortNodeName, ex.Message }); ReplayEventLogConstants.Tuple_FqdnResolutionFailure.LogEvent(ExTraceGlobals.ActiveManagerTracer.GetHashCode().ToString(), new object[] { shortNodeName, ex.Message }); result = AmServerNameCache.GetFqdnWithLocalDomainSuffix(shortNodeName); } return(result); }
public static bool RunADOperation(EventHandler ev) { Exception ex = SharedHelper.RunADOperationEx(ev); if (ex != null) { AmTrace.Error("RunADOperation(): ADException occurred : {0}", new object[] { ex }); return(false); } return(true); }
// Token: 0x06000675 RID: 1653 RVA: 0x00017E78 File Offset: 0x00016078 bool IWritableAD.SetDatabaseLegacyDnAndOwningServer(Guid mdbGuid, AmServerName lastMountedServerName, AmServerName masterServerName, bool isForceUpdate) { ITopologyConfigurationSession topologyConfigurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(false, ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromRootOrgScopeSet(), 43, "SetDatabaseLegacyDnAndOwningServer", "f:\\15.00.1497\\sources\\dev\\cluster\\src\\Shared\\WritableADHelper.cs"); Database database = topologyConfigurationSession.FindDatabaseByGuid <Database>(mdbGuid); if (database == null) { AmTrace.Error("Failed to find Db using dbGuid {0}", new object[] { mdbGuid }); return(false); } MiniServer miniServer = topologyConfigurationSession.FindMiniServerByName(masterServerName.NetbiosName, WritableADHelper.s_propertiesNeededFromServer); if (miniServer == null) { AmTrace.Error("Failed to find Server using {0}", new object[] { masterServerName }); return(false); } if (isForceUpdate || !database.Server.Equals(miniServer.Id)) { MiniServer sourceServer = null; if (!AmServerName.IsNullOrEmpty(lastMountedServerName)) { sourceServer = topologyConfigurationSession.FindMiniServerByName(lastMountedServerName.NetbiosName, WritableADHelper.s_propertiesNeededFromServer); } AmTrace.Debug("SetDatabaseLegacyDnAndOwningServer. Database '{0}', legdn='{1}'. Setting owning server: '{2}'.", new object[] { database.Name, database.ExchangeLegacyDN, miniServer.Id }); database.Server = miniServer.Id; WritableADHelper.SaveDatabasePropertiesOnMultipleServerSites(topologyConfigurationSession, database, sourceServer, miniServer, true); return(true); } AmTrace.Debug("Skipped to update legacy dn and owning server for database '{0}' since they are up to date. (owningserver={1})", new object[] { database.Name, database.Server }); return(false); }
// Token: 0x06000676 RID: 1654 RVA: 0x00017FA4 File Offset: 0x000161A4 void IWritableAD.ResetAllowFileRestoreDsFlag(Guid mdbGuid, AmServerName lastMountedServerName, AmServerName masterServerName) { ITopologyConfigurationSession topologyConfigurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(false, ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromRootOrgScopeSet(), 108, "ResetAllowFileRestoreDsFlag", "f:\\15.00.1497\\sources\\dev\\cluster\\src\\Shared\\WritableADHelper.cs"); Database database = topologyConfigurationSession.FindDatabaseByGuid <Database>(mdbGuid); if (database == null) { AmTrace.Error("Failed to find Db using dbGuid {0}", new object[] { mdbGuid }); return; } if (!database.AllowFileRestore) { AmTrace.Debug("Skipped to update legacy AllowFileRestore database '{0}'.)", new object[] { database.Name }); return; } MiniServer miniServer = topologyConfigurationSession.FindMiniServerByName(masterServerName.NetbiosName, WritableADHelper.s_propertiesNeededFromServer); if (miniServer == null) { AmTrace.Error("Failed to find Server using {0}", new object[] { masterServerName }); return; } MiniServer sourceServer = null; if (!AmServerName.IsNullOrEmpty(lastMountedServerName)) { sourceServer = topologyConfigurationSession.FindMiniServerByName(lastMountedServerName.NetbiosName, WritableADHelper.s_propertiesNeededFromServer); } AmTrace.Debug("Reset AllowFileRestore. Database '{0}', legdn='{1}'. Setting owning server: '{2}'.", new object[] { database.Name, database.ExchangeLegacyDN, miniServer.Id }); database.AllowFileRestore = false; WritableADHelper.SaveDatabasePropertiesOnMultipleServerSites(topologyConfigurationSession, database, sourceServer, miniServer, true); }
// Token: 0x0600002B RID: 43 RVA: 0x000024F0 File Offset: 0x000006F0 public static string ResolveFqdn(string shortNodeName, bool throwException) { string fqdn = null; Exception ex = SharedHelper.RunADOperationEx(delegate(object param0, EventArgs param1) { IADToplogyConfigurationSession iadtoplogyConfigurationSession = ADSessionFactory.CreateIgnoreInvalidRootOrgSession(true); iadtoplogyConfigurationSession.UseConfigNC = false; iadtoplogyConfigurationSession.UseGlobalCatalog = true; IADComputer iadcomputer = iadtoplogyConfigurationSession.FindComputerByHostName(shortNodeName); if (iadcomputer != null && !string.IsNullOrEmpty(iadcomputer.DnsHostName)) { fqdn = iadcomputer.DnsHostName; return; } if (throwException) { throw new AmGetFqdnFailedNotFoundException(shortNodeName); } AmTrace.Error("FQDN resolution of the short name {0} failed. Could not find valid DNS hostname from ADComputer query.", new object[] { shortNodeName }); fqdn = AmServerNameCache.GetFqdnWithLocalDomainSuffix(shortNodeName); }); if (ex != null) { if (throwException) { throw new AmGetFqdnFailedADErrorException(shortNodeName, ex.Message, ex); } AmTrace.Error("FQDN resolution of the short name {0} failed. Error: {1}", new object[] { shortNodeName, ex.Message }); fqdn = AmServerNameCache.GetFqdnWithLocalDomainSuffix(shortNodeName); } return(fqdn); }
// Token: 0x06000677 RID: 1655 RVA: 0x00018120 File Offset: 0x00016320 private static void SaveDatabasePropertiesOnMultipleServerSites(ITopologyConfigurationSession rwSession, Database database, MiniServer sourceServer, MiniServer targetServer, bool isBestEffort) { Server server = rwSession.FindServerByName(Environment.MachineName); ADObjectId localServerSite = server.ServerSite; Exception ex = SharedHelper.RunADOperationEx(delegate(object param0, EventArgs param1) { rwSession.Save(database); }); if (ex != null) { AmTrace.Error("Failed to update properties on the default local site (error={0})", new object[] { ex }); ReplayCrimsonEvents.DatabasePropertyLocalSiteUpdateFailed.Log <string, Guid, string, string, string>(database.Name, database.Guid, targetServer.Name, localServerSite.DistinguishedName, ex.Message); if (!isBestEffort) { throw ex; } } ADObjectId adobjectId = (sourceServer != null) ? sourceServer.ServerSite : null; ADObjectId adobjectId2 = (targetServer != null) ? targetServer.ServerSite : null; ADObjectId[] source = new ADObjectId[] { adobjectId, adobjectId2 }; ADObjectId[] sites = (from s in source where s != null && !s.Equals(localServerSite) select s).Distinct <ADObjectId>().ToArray <ADObjectId>(); if (sites.Length > 0) { string[] array = (from s in sites select s.DistinguishedName).ToArray <string>(); string[] dcsContacted = null; ex = SharedHelper.RunADOperationEx(delegate(object param0, EventArgs param1) { dcsContacted = rwSession.ReplicateSingleObject(database, sites); }); if (ex != null) { AmTrace.Error("Failed to initiate replication for remote sites (error={0})", new object[] { ex }); } for (int i = 0; i < sites.Length; i++) { if (dcsContacted == null || string.IsNullOrEmpty(dcsContacted[i])) { AmTrace.Error("Replication request for site '{0}' was not submitted to any DC", new object[] { array[i] }); } else { AmTrace.Debug("Replication request for site '{0}' was submitted to DC '{1}'", new object[] { array[i], dcsContacted[i] }); } } if (ex != null) { ReplayCrimsonEvents.DatabasePropertyRemoteSiteReplicationFailed.Log <string, Guid, string, string, string, string>(database.Name, database.Guid, targetServer.Name, string.Join(",", array), (dcsContacted != null) ? string.Join(",", dcsContacted) : string.Empty, ex.Message); if (!isBestEffort) { throw ex; } } else { ReplayCrimsonEvents.DatabasePropertyRemoteSiteReplicationSucceeded.Log <string, Guid, string, string, string>(database.Name, database.Guid, targetServer.Name, string.Join(",", array), (dcsContacted != null) ? string.Join(",", dcsContacted) : string.Empty); } } }
// Token: 0x06000076 RID: 118 RVA: 0x000031F8 File Offset: 0x000013F8 private DateTime GetBootTimeWithWmi(ManagementClass mgmtClass, AmServerName machineName) { DateTime dateTime = ExDateTime.Now.UniversalTime; Exception ex = null; try { using (ManagementObjectCollection instances = mgmtClass.GetInstances()) { if (instances != null) { using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = instances.GetEnumerator()) { while (enumerator.MoveNext()) { ManagementBaseObject managementBaseObject = enumerator.Current; ManagementObject managementObject = (ManagementObject)managementBaseObject; using (managementObject) { string dmtfDate = (string)managementObject["LastBootupTime"]; dateTime = ManagementDateTimeConverter.ToDateTime(dmtfDate).ToUniversalTime(); AmTrace.Debug("GetBootTimeWithWmi: WMI says that the boot time for {0} is {1}.", new object[] { machineName, dateTime }); } } goto IL_102; } } AmTrace.Error("GetBootTimeWithWmi: WMI could not query the boot time on server {0}: No instances found for management path {1}.", new object[] { machineName, mgmtClass.ClassPath.Path }); ReplayEventLogConstants.Tuple_GetBootTimeWithWmiFailure.LogEvent(string.Empty, new object[] { machineName, Strings.NoInstancesFoundForManagementPath(mgmtClass.ClassPath.Path) }); IL_102 :; } } catch (COMException ex2) { ex = ex2; } catch (UnauthorizedAccessException ex3) { ex = ex3; } catch (ManagementException ex4) { ex = ex4; } catch (OutOfMemoryException ex5) { ex = ex5; } if (ex != null) { AmTrace.Error("GetBootTimeWithWmi: WMI could not query the boot time on server {0}: {1}", new object[] { machineName, ex }); ReplayEventLogConstants.Tuple_GetBootTimeWithWmiFailure.LogEvent(string.Empty, new object[] { machineName, ex.Message }); } return(dateTime); }