private static bool IsMaxActivesUnderThreshold(AmServerName serverName, Func <IADServer, int?> getMaxActiveDbsLimit, out int?maxActiveDatabases) { bool result = true; int? num = null; IADServer iadserver = Dependencies.ReplayAdObjectLookup.ServerLookup.FindServerByFqdn(serverName.Fqdn); if (iadserver != null) { num = getMaxActiveDbsLimit(iadserver); AmDatabaseStateTracker databaseStateTracker = AmSystemManager.Instance.DatabaseStateTracker; if (databaseStateTracker != null && databaseStateTracker.IsMaxActivesExceeded(serverName, num)) { result = false; } } else { AmTrace.Error("Failed to find server {0}", new object[] { serverName }); FailedToFindServerException ex = new FailedToFindServerException(serverName.Fqdn); ReplayCrimsonEvents.ADObjectLookupError.LogPeriodic <string, FailedToFindServerException>(serverName.NetbiosName, DiagCore.DefaultEventSuppressionInterval, ex.Message, ex); } maxActiveDatabases = num; return(result); }