コード例 #1
0
ファイル: DataServer.cs プロジェクト: hfcorreia/padi-fs
        static void Main(string[] args)
        {
            Console.SetWindowSize(80, 15);
            if (args.Length < 2)
            {
                Console.WriteLine("Usage: port metadataServerId");
                Console.ReadLine();
            }
            else
            {
                DataServer dataServer = new DataServer();
                dataServer.initialize(Int32.Parse(args[0]), args[1], "localhost");
                dataServer.startConnection(dataServer);

                Console.WriteLine("#DS: Registered " + dataServer.Id + " at " + dataServer.Url);
                Console.ReadLine();
            }
        }
コード例 #2
0
ファイル: DataServer.cs プロジェクト: hfcorreia/padi-fs
        public void getCheckpoint(String dataServerId)
        {
            try
            {
                Console.WriteLine("#DS: getting checkpoint");
                System.Xml.Serialization.XmlSerializer reader =
                            new System.Xml.Serialization.XmlSerializer(typeof(DataServer));

                string dirName = CommonTypes.Properties.Resources.TEMP_DIR + "\\" + dataServerId + "\\checkpoint.xml";
                System.IO.StreamReader fileReader = new System.IO.StreamReader(dirName);

                DataServer dataServer = new DataServer();
                dataServer = (DataServer)reader.Deserialize(fileReader);
                Files = dataServer.Files;
                CheckpointCounter = dataServer.CheckpointCounter;
                Port = dataServer.Port;
                foreach (String filename in Files.Keys)
                {
                    FileLocks.Add(filename, new System.Threading.ReaderWriterLockSlim());
                }
                fileReader.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine("#DS: GetCheckpoint Failed: " + e.Message);
            }
        }
コード例 #3
0
ファイル: DataServer.cs プロジェクト: hfcorreia/padi-fs
        public void startConnection(DataServer dataServer)
        {
            if (Boolean.Parse(Properties.Resources.RUN_IN_DEBUG_MODE) && !Debugger.IsAttached)
            {
                Debugger.Launch();
            }

            Console.WriteLine("#DS: starting connection " + Id);
            BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
            provider.TypeFilterLevel = TypeFilterLevel.Full;
            IDictionary props = new Hashtable();
            props["port"] = Port;
            TcpChannel channel = new TcpChannel(props, null, provider);
            ChannelServices.RegisterChannel(channel, true);

            RemotingServices.Marshal(dataServer, Id, typeof(DataServer));
            registInMetadataServers();
            Timer.Start();
        }
コード例 #4
0
        static void Main(string[] args)
        {
            foreach (var item in args)
            {
                Console.Write(item + " ");
            }

            System.Console.WriteLine("Dataserver Init....");


            log4net.Config.XmlConfigurator.Configure( );

            log.Debug(DateTime.Now.Ticks + " Metadata init...");

            //  if (!Debugger.IsAttached)
            //    Debugger.Launch();


            int i = 0;

            for (i = 0; i < (args.Length - 4); i++)
            {
                ServerId metaServer = new ServerId();
                metaServer.hostname = args[i++];
                metaServer.port     = Convert.ToInt32(args[i]);
                metaServer.id       = Convert.ToString(i / 2);
                MetadataServerList.Add(metaServer);
            }

            ServerPort   = Convert.ToInt32(args[i++]);
            ServerId     = Convert.ToInt32(args[i++]);
            RecoveryPort = Convert.ToInt32(args[i++]);
            ServerIp     = DataServer.GetCurrentIp();
            storage      = new StorageManager(ServerId);


            System.Console.WriteLine("System ID: " + ServerId
                                     );
            System.Console.WriteLine("System IP Adress: " + ServerIp + ":" + ServerPort + "#" + RecoveryPort);

            // Cria objecto remoto para ser envocado apartir do cliente
            RemotingConfiguration.Configure("../../App.config", true);


            DataServer.CreateNormalChannel();
            _localFileNameList = new ConcurrentDictionary <String, LocalFileStatistics>();



            // Espera ate receber unfreze do puppet Online
            System.Console.WriteLine("DataServer Started, In Freeze Mode");
            while (isFreezed)
            {
                Thread.Sleep(250);
            }
            System.Console.WriteLine("DataServer Started Defrost!!!");


            // Regista-se no Metadata e inicia Objectos Remotos
            MetaserverClient = new MetaserverAsyncClient(ServerIp, ServerPort, MetadataServerList, ServerId);
            RegisterAtMetadata();

            // Releses the Request Thread and Returns to Puppet
            Monitor.Enter(freezeMon);
            Monitor.PulseAll(freezeMon);
            Monitor.Exit(freezeMon);


            System.Console.WriteLine("<enter> para sair...");
            System.Console.ReadLine();
        }
コード例 #5
0
ファイル: DSstateNormal.cs プロジェクト: hfcorreia/padi-fs
 public DSstateNormal(DataServer dataServer)
     : base(dataServer)
 {
 }
コード例 #6
0
ファイル: DSstate.cs プロジェクト: hfcorreia/padi-fs
 public DSstate(DataServer dataServer)
 {
     Ds = dataServer;
 }
コード例 #7
0
ファイル: DSstateFail.cs プロジェクト: hfcorreia/padi-fs
 public DSstateFail(DataServer dataServer)
     : base(dataServer)
 {
 }
コード例 #8
0
ファイル: DSstateFreezed.cs プロジェクト: hfcorreia/padi-fs
 public DSstateFreezed(DataServer dataServer)
     : base(dataServer)
 {
 }