예제 #1
0
        public static int?LookupVersion(string server)
        {
            int versionNumber;

            if (VariantConfiguration.InvariantNoFlightingSnapshot.Global.MultiTenancy.Enabled && VariantConfiguration.GetSnapshot(MachineSettingsContext.Local, null, null).Cafe.ServersCache.Enabled)
            {
                try
                {
                    bool       flag;
                    MiniServer serverByFQDN = ServersCache.GetServerByFQDN(server, out flag);
                    versionNumber = serverByFQDN.VersionNumber;
                    goto IL_90;
                }
                catch (LocalServerNotFoundException)
                {
                    return(null);
                }
            }
            ServiceTopology currentServiceTopology = ServiceTopology.GetCurrentServiceTopology("f:\\15.00.1497\\sources\\dev\\cafe\\src\\Common\\Misc\\ServerLookup.cs", "LookupVersion", 45);

            if (!currentServiceTopology.TryGetServerVersion(server, out versionNumber, "f:\\15.00.1497\\sources\\dev\\cafe\\src\\Common\\Misc\\ServerLookup.cs", "LookupVersion", 47))
            {
                return(null);
            }
IL_90:
            return(new int?(versionNumber));
        }
예제 #2
0
        public ServerInfoAnchorMailbox(BackEndServer backendServer, IRequestContext requestContext) : base(AnchorSource.ServerInfo, backendServer.Fqdn, requestContext)
        {
            ServiceTopology currentServiceTopology = ServiceTopology.GetCurrentServiceTopology("f:\\15.00.1497\\sources\\dev\\cafe\\src\\HttpProxy\\AnchorMailbox\\ServerInfoAnchorMailbox.cs", ".ctor", 60);
            int             num;

            if (!currentServiceTopology.TryGetServerVersion(backendServer.Fqdn, out num, "f:\\15.00.1497\\sources\\dev\\cafe\\src\\HttpProxy\\AnchorMailbox\\ServerInfoAnchorMailbox.cs", ".ctor", 62))
            {
                throw new ArgumentException("Invalid value");
            }
            this.BackEndServer = backendServer;
        }
        // Token: 0x06000817 RID: 2071 RVA: 0x00021178 File Offset: 0x0001F378
        private Dictionary <Guid, BackEndServer> ProcessBatchResults(DatabaseServerInformation[] backEndServerList)
        {
            if (backEndServerList == null || backEndServerList.Length == 0)
            {
                this.Tracer.TraceError <string, Guid>((long)this.GetHashCode(), "[MailboxServerLocator.ProcessBatchResults] ServerLocatorServiceClient did not return active server info from master server {0} for database {1}.", this.masterServer.Fqdn, this.DatabaseGuid);
                throw new MailboxServerLocatorException(this.DatabaseGuid.ToString());
            }
            this.Tracer.TraceDebug <int, string, Guid>((long)this.GetHashCode(), "[MailboxServerLocator.ProcessBatchResults] ServerLocatorServiceClient returned {0} servers from master server {0} for database {1}.", backEndServerList.Length, this.masterServer.Fqdn, this.DatabaseGuid);
            Dictionary <Guid, BackEndServer> dictionary = new Dictionary <Guid, BackEndServer>(backEndServerList.Length);

            foreach (DatabaseServerInformation databaseServerInformation in backEndServerList)
            {
                if (string.IsNullOrEmpty(databaseServerInformation.ServerFqdn))
                {
                    this.Tracer.TraceWarning <string, Guid>((long)this.GetHashCode(), "[MailboxServerLocator.ProcessBatchResults] ServerLocatorServiceClient returned empty active server FQDN from master server {0} for database {1}.", this.masterServer.Fqdn, databaseServerInformation.DatabaseGuid);
                }
                else
                {
                    if (databaseServerInformation.ServerVersion == 0)
                    {
                        this.Tracer.TraceWarning <string, string, Guid>((long)this.GetHashCode(), "[MailboxServerLocator.ProcessBatchResults] ServerLocatorServiceClient returned empty active server version of server {0} from master server {1} for database {2}.", databaseServerInformation.ServerFqdn, this.masterServer.Fqdn, databaseServerInformation.DatabaseGuid);
                        databaseServerInformation.ServerVersion = this.masterServer.VersionNumber;
                        if (!MailboxServerLocator.NoServiceTopologyTryGetServerVersion)
                        {
                            ServiceTopology currentServiceTopology = ServiceTopology.GetCurrentServiceTopology("f:\\15.00.1497\\sources\\dev\\data\\src\\ApplicationLogic\\Cafe\\MailboxServerLocator.cs", "ProcessBatchResults", 985);
                            int             serverVersion;
                            if (currentServiceTopology.TryGetServerVersion(databaseServerInformation.ServerFqdn, out serverVersion, "f:\\15.00.1497\\sources\\dev\\data\\src\\ApplicationLogic\\Cafe\\MailboxServerLocator.cs", "ProcessBatchResults", 986))
                            {
                                databaseServerInformation.ServerVersion = serverVersion;
                            }
                        }
                    }
                    this.Tracer.TraceDebug <Guid, string>((long)this.GetHashCode(), "[MailboxServerLocator.ProcessBatchResults] The active server of database {0} is {1}.", databaseServerInformation.DatabaseGuid, databaseServerInformation.ServerFqdn);
                    dictionary[databaseServerInformation.DatabaseGuid] = new BackEndServer(databaseServerInformation.ServerFqdn, databaseServerInformation.ServerVersion);
                }
            }
            if (!dictionary.ContainsKey(this.DatabaseGuid))
            {
                this.Tracer.TraceWarning <string, Guid>((long)this.GetHashCode(), "[MailboxServerLocator.ProcessBatchResults] ServerLocatorServiceClient did not return the active server of database {1} from master server {0}.", this.masterServer.Fqdn, this.DatabaseGuid);
                throw new MissingRequestedDatabaseException(this.DatabaseGuid.ToString());
            }
            return(dictionary);
        }