コード例 #1
0
        // Data server register from data server itself
        public void Register(string address)
        {
            DataServerInfo dsi = new DataServerInfo(address);

            Monitor.Enter(onlineDataServers);
            onlineDataServers.Add(dsi);
            Monitor.Exit(onlineDataServers);
            for (int i = 0; i < msi.GetLength(0); i++)
            {
                MetadataServerInfo mi = msi[i];
                if (mi != null && mi.port != this.metadataPort)
                {
                    try
                    {
                        MetadataMessageService metadataServer = (MetadataMessageService)Activator.GetObject(typeof(MetadataMessageService), "tcp://localhost:" + mi.port + "/MessageService");
                        metadataServer.RegisterDataReplica(dsi.address);
                    }
                    catch (RemotingException e)
                    {
                        onlineMS[mi.getID(base_port)] = false;
                        msi[i] = null;
                    }
                    catch (SocketException e)
                    {
                        onlineMS[mi.getID(base_port)] = false;
                        msi[i] = null;
                    }
                }
            }
            //  Console.WriteLine("DataServer at " + address + " has registered.");
        }
コード例 #2
0
        private int ConnectMetadataServer(int port)
        {
            Console.WriteLine("Connecting to MDS at " + port);
            MetadataMessageService metadataServer = (MetadataMessageService)Activator.GetObject(typeof(MetadataMessageService), "tcp://localhost:" + port + "/MessageService");

            metadataServer.Register(this.port.ToString());
            return(port);
        }
コード例 #3
0
        private void ConnectMetadataServer(int port, int i)
        {
            Console.WriteLine("Connecting to MDS at " + port);
            MetadataMessageService metadataServer = (MetadataMessageService)Activator.GetObject(typeof(MetadataMessageService), "tcp://localhost:" + port + "/MessageService");

            metadataServer.RegisterMetadata(this.metadataPort.ToString());
            onlineMS[i] = true;
        }
コード例 #4
0
        public MetadataServer(int port, int baseMetadataServerPort, int metadataPort)
        {
            failing           = false;
            freezer           = new ManualResetEvent(true);
            timestamp         = 0;
            ticket            = 0;
            this.port         = port;
            this.base_port    = baseMetadataServerPort;
            this.metadataPort = metadataPort;

            metadataDB        = new Dictionary <string, MetadataContent>();
            onlineDataServers = new SortedSet <DataServerInfo>();
            msi = new MetadataServerInfo[3];

            commandService                  = new CommandService();
            commandService.FailHandler     += Fail;
            commandService.RecoverHandler  += Recover;
            commandService.FreezeHandler   += Freeze;
            commandService.UnfreezeHandler += Unfreeze;
            commandService.DumpHandler     += Dump;

            requestService = new MetadataRequestService();
            requestService.CreateHandler             += Create;
            requestService.DeleteHandler             += Delete;
            requestService.CloseHandler              += Close;
            requestService.OpenHandler               += Open;
            requestService.SendCreatePromiseHandler  += sendCreatePromise;
            requestService.SendCreateAcceptedHandler += sendCreateAccepted;
            requestService.CreateCommitHandler       += createCommit;

            messageService = new MetadataMessageService();
            messageService.RegisterHandler            += Register;
            messageService.RegisterDataReplicaHandler += RegisterDataReplica;
            messageService.RegisterMetadataHandler    += RegisterMetadata;
            messageService.GetMetadataDtoHandler      += GetMetadataDto;
            messageService.SendMetadataDtoHandler     += SendMetadataDto;
            messageService.MetadataTransferHandler    += MetadataTransfer;
        }