// Token: 0x06001444 RID: 5188 RVA: 0x00051A58 File Offset: 0x0004FC58 public DatabaseValidationCheck.Result Validate(DatabaseValidationCheck.Arguments args, ref LocalizedString error) { DiagCore.RetailAssert(args.Status != null, "args.Status cannot be null!", new object[0]); DatabaseValidationCheck.Tracer.TraceDebug((long)this.GetHashCode(), "Check '{0}' is starting against database copy '{1}'. [ActiveServer: {2}, TargetServer: {3}, IsActive: {4}]", new object[] { this.CheckName, args.DatabaseCopyName, args.ActiveServer.NetbiosName, args.TargetServer.NetbiosName, args.Status.IsActive }); if (!this.IsPrerequisiteMetForCheck(args)) { DatabaseValidationCheck.Tracer.TraceError <string, string>((long)this.GetHashCode(), "Check '{0}' is skipping for database copy '{1}' because prereqs were not met. Returning Passed result.", this.CheckName, args.DatabaseCopyName); return(DatabaseValidationCheck.Result.Passed); } DatabaseValidationCheck.Result result = this.ValidateInternal(args, ref error); if (result == DatabaseValidationCheck.Result.Passed) { DatabaseValidationCheck.Tracer.TraceDebug <string, string>((long)this.GetHashCode(), "Check '{0}' for database copy '{1}' Passed.", this.CheckName, args.DatabaseCopyName); } else { DatabaseValidationCheck.Tracer.TraceError((long)this.GetHashCode(), "Check '{0}' for database copy '{1}' returned result '{2}'. Error: {3}", new object[] { this.CheckName, args.DatabaseCopyName, result, error }); } return(result); }
protected override DatabaseValidationCheck.Result ValidateInternal(DatabaseValidationCheck.Arguments args, ref LocalizedString error) { error = LocalizedString.Empty; DatabaseValidationCheck.Result result = DatabaseValidationCheck.Result.Passed; if (args.Status.CopyStatus != null) { string text = args.Status.CopyStatus.DBName + "\\" + args.Status.CopyStatus.MailboxServer; if (args.PropertyUpdateTracker.LastTimeCopierTimeUpdateTracker.UpdateCurrentValueOrReturnStaleness(text, args.Status.CopyStatus.LastLogInfoFromCopierTime).TotalSeconds >= (double)RegistryParameters.DatabaseHealthCheckCopyConnectedErrorThresholdInSec) { error = ReplayStrings.PassiveCopyDisconnected; result = DatabaseValidationCheck.Result.Failed; } } return(result); }