/// <summary> /// c'tor /// </summary> /// <param name="m_controller"></param> to execute commands from its dictionary /// <param name="m_logging"></param> to send logs public ImageServer(IImageController m_controller, ILoggingService m_logging) { this._mController = m_controller; this._mLogging = m_logging; string[] directories = (ConfigurationManager.AppSettings.Get("Handler").Split(';')); foreach (string dir in directories) { if (Directory.Exists(dir)) { createHandler(dir); } else { // if dir is not exists bool result; string[] args = { dir }; m_controller.ExecuteCommand((int)CommandEnum.CloseCommand, args, out result); m_logging.Log("Not such file or directory: " + dir, MessageTypeEnum.WARNING); } } // get comunication details to connect the server string ip = ConfigurationManager.AppSettings.Get("Ip"); int port = Int32.Parse(ConfigurationManager.AppSettings.Get("Port")); serverChannel = new TcpServerChannel(port, ip); serverChannel.NewHandler += OnNewClient; // for new client ClientHandler.MessageRecived += GetMessageFromUser; // for msg from the user serverChannel.Start(); }
protected override void OnStart(string[] args) { // Update the service state to Start Pending. ServiceStatus serviceStatus = new ServiceStatus(); serviceStatus.dwCurrentState = ServiceState.SERVICE_START_PENDING; serviceStatus.dwWaitHint = 100000; SetServiceStatus(this.ServiceHandle, ref serviceStatus); eventLog1.WriteEntry("In OnStart"); // Set up a timer to trigger every minute. System.Timers.Timer timer = new System.Timers.Timer(); timer.Interval = 60000; // 60 seconds timer.Elapsed += new System.Timers.ElapsedEventHandler(this.OnTimer); timer.Start(); // Update the service state to Running. serviceStatus.dwCurrentState = ServiceState.SERVICE_RUNNING; SetServiceStatus(this.ServiceHandle, ref serviceStatus); //creating the Logger object used in the system ILoggsRecorder logger = new LoggingService(); logger.MessageRecieved += this.WriteToEventLogger; logger.Log("In ImageService created the logging service", MessageTypeEnum.INFO); //creating the modal with app config paramaters logger.Log("In ImageService starting to create the Modal, Controller and Server", MessageTypeEnum.INFO); logger.Log("Here is a warning message1", MessageTypeEnum.WARNING); var appSettings = ConfigurationManager.AppSettings; string outputDir = appSettings["OutputDir"]; string[] dirsToBeHandled = appSettings["Handler"].Split(';'); int thumbnailSize; //if conversion failed, put default value if (!Int32.TryParse(appSettings["ThumbnailSize"], out thumbnailSize)) { thumbnailSize = 120; } IImageModal modal = new ImageModal(logger, outputDir, thumbnailSize); IController controller = new Controller.Controller(modal, logger); IServerChannel serverChannel = new TcpServerChannel(8080); IServerChannel photoServerChannel = new TcpPhotoChannel(8000); serverChannel.Start(); server = new ImageServer(controller, logger, serverChannel, photoServerChannel, dirsToBeHandled); logger.MessageRecieved += serverChannel.NotifyServerOfMessage; controller.SetDHManager(server); logger.Log("Here is a warning message2", MessageTypeEnum.WARNING); logger.Log("In ImageService finished creating the Modal, Controller and Server", MessageTypeEnum.INFO); logger.Log("Here is a fail message, for display only", MessageTypeEnum.FAIL); logger.Log("Another fail message, for display only", MessageTypeEnum.FAIL); }
public bool Start() { HostServices.HostServices.Start(); Log.LogInfo("----------------------------------------------------------"); try { int port = Constants.DefaultPort; if (File.Exists(Constants.NodeConfigFileName)) { try { var nodeConfig = SerializationHelper.FormattedSerializer.Deserialize <NodeConfig>(new JsonTextReader(new StringReader(File.ReadAllText(Constants.NodeConfigFileName)))); port = nodeConfig.TcpPort; } catch (Exception e) { Log.LogError($"Error reading configuration file {Constants.NodeConfigFileName} : {e.Message}"); } } else { Log.LogWarning($"Configuration file {Constants.NodeConfigFileName} not found. Using defaults"); } _cacheServer = new Server.Server(new ServerConfig(), true); _listener = new TcpServerChannel(); _cacheServer.Channel = _listener; _listener.Init(port); _listener.Start(); Log.LogInfo("Starting hosted service on port " + port); _cacheServer.StopRequired += (sender, args) => { HostServices.HostServices.Stop(); Stop(); _stopEvent.Set(); }; _cacheServer.Start(); } catch (Exception e) { Log.LogError($"Failed to start host: {e}"); return(false); } Log.LogInfo("Host started successfully"); return(true); }
public void Init() { _serverChannel = new TcpServerChannel(); _server = new Server.Server(new ServerConfig()) { Channel = _serverChannel }; _serverPort = _serverChannel.Init(); _serverChannel.Start(); _server.Start(); Thread.Sleep(500); //be sure the server is started }
public void Init() { _serverChannel1 = new TcpServerChannel(); _server1 = new Server.Server(new NodeConfig { DataPath = "server1" }) { Channel = _serverChannel1 }; _serverPort1 = _serverChannel1.Init(); _serverChannel1.Start(); _server1.Start(); _serverChannel2 = new TcpServerChannel(); _server2 = new Server.Server(new NodeConfig { DataPath = "server2" }) { Channel = _serverChannel2 }; _serverPort2 = _serverChannel2.Init(); _serverChannel2.Start(); _server2.Start(); Thread.Sleep(500); //be sure the server nodes are started _client1 = new DataClient { Channel = new TcpClientChannel(new TcpClientPool(4, 1, "localhost", _serverPort1)), ShardIndex = 0, ShardsCount = 2 }; _client2 = new DataClient { Channel = new TcpClientChannel(new TcpClientPool(4, 1, "localhost", _serverPort2)), ShardIndex = 1, ShardsCount = 2 }; _aggregator = new DataAggregator { CacheClients = { _client1, _client2 } }; _aggregator.DeclareCollection <CacheableTypeOk>(); }
public void Init() { _serverChannel1 = new TcpServerChannel(); _server1 = new Server.Server(new ServerConfig()) { Channel = _serverChannel1 }; _serverPort1 = _serverChannel1.Init(); _serverChannel1.Start(); _server1.Start(); _serverChannel2 = new TcpServerChannel(); _server2 = new Server.Server(new ServerConfig()) { Channel = _serverChannel2 }; _serverPort2 = _serverChannel2.Init(); _serverChannel2.Start(); _server2.Start(); Thread.Sleep(500); //be sure the server nodes are started _client1 = new CacheClient { Channel = new TcpClientChannel(new TcpClientPool(4, 1, "localhost", _serverPort1)), ShardIndex = 0, ShardsCount = 2 }; _client2 = new CacheClient { Channel = new TcpClientChannel(new TcpClientPool(4, 1, "localhost", _serverPort2)), ShardIndex = 1, ShardsCount = 2 }; _aggregator = new Aggregator { CacheClients = { _client1, _client2 } }; _aggregator.RegisterTypeIfNeeded(typeof(CacheableTypeOk)); }
public void Init() { _serverChannel = new TcpServerChannel(); _server = new Server.Server(new NodeConfig()) { Channel = _serverChannel }; _serverPort = _serverChannel.Init(); _serverChannel.Start(); _server.Start(); _client = NewClient(); _client.DeclareCollection <CacheableTypeOk>(); }
public void Init() { _serverChannel = new TcpServerChannel(); _server = new Server.Server(new ServerConfig()) { Channel = _serverChannel }; _serverPort = _serverChannel.Init(); _serverChannel.Start(); _server.Start(); Thread.Sleep(500); //be sure the server is started _client = NewClient(); _client.RegisterTypeIfNeeded(typeof(CacheableTypeOk)); }
public bool Start(string instance) { try { var configFile = Constants.NodeConfigFileName; if (instance != null) { var baseName = configFile.Split('.').FirstOrDefault(); configFile = $"{baseName}_{instance}.json"; } var nodeConfig = new NodeConfig {TcpPort = Constants.DefaultPort, IsPersistent = true}; if (File.Exists(configFile)) { try { var configFromFile = SerializationHelper.FormattedSerializer.Deserialize<NodeConfig>( new JsonTextReader(new StringReader(File.ReadAllText(configFile)))); nodeConfig = configFromFile; HostServices.HostServices.Start(configFromFile.DataPath); Log.LogInfo("----------------------------------------------------------"); Log.LogInfo($"Reading configuration file {configFile} "); } catch (Exception e) { Log.LogError($"Error reading configuration file {configFile} : {e.Message}"); } } else { HostServices.HostServices.Start(nodeConfig.DataPath); Log.LogWarning($"Configuration file {configFile} not found. Using defaults"); } _cacheServer = new global::Server.Server(nodeConfig); _listener = new TcpServerChannel(); _cacheServer.Channel = _listener; _listener.Init(nodeConfig.TcpPort); _listener.Start(); var fullDataPath = Path.GetFullPath(nodeConfig.DataPath ?? Constants.DataPath); var persistentDescription = nodeConfig.IsPersistent ? fullDataPath : " NO"; try { Console.Title = $"Cachalot Core on port {nodeConfig.TcpPort} persistent = {persistentDescription}"; } catch (Exception ) { //ignore this may throw an exception when run in service mode } Log.LogInfo( $"Starting hosted service on port {nodeConfig.TcpPort} persistent = {persistentDescription}"); _cacheServer.StopRequired += (sender, args) => { HostServices.HostServices.Stop(); Stop(); _stopEvent.Set(); }; _cacheServer.Start(); } catch (Exception e) { Log.LogError($"Failed to start host: {e}"); return false; } Log.LogInfo("Host started successfully"); return true; }
public bool Start(HostControl hostControl) { HostServices.HostServices.Start(); Log.LogInfo("----------------------------------------------------------"); try { var nodeConfig = new NodeConfig { TcpPort = Constants.DefaultPort, IsPersistent = true }; if (File.Exists(Constants.NodeConfigFileName)) { try { var configFromFile = SerializationHelper.FormattedSerializer.Deserialize <NodeConfig>( new JsonTextReader(new StringReader(File.ReadAllText(Constants.NodeConfigFileName)))); nodeConfig = configFromFile; } catch (Exception e) { Log.LogError($"Error reading configuration file {Constants.NodeConfigFileName} : {e.Message}"); } } else { Log.LogWarning($"Configuration file {Constants.NodeConfigFileName} not found. Using defaults"); } _cacheServer = new Server.Server(nodeConfig); _listener = new TcpServerChannel(); _cacheServer.Channel = _listener; _listener.Init(nodeConfig.TcpPort); _listener.Start(); var fullDataPath = Path.GetFullPath(nodeConfig.DataPath ?? Constants.DataPath); var persistentDescription = nodeConfig.IsPersistent ? fullDataPath : " NO"; Log.LogInfo( $"Starting Cachalot server on port {nodeConfig.TcpPort} persistent {persistentDescription}"); Console.Title = $"Cachalot server on port {nodeConfig.TcpPort} persistent = {persistentDescription}"; _cacheServer.Start(); } catch (Exception e) { Log.LogError($"Failed to start host: {e}"); return(false); } Log.LogInfo("Host started successfully"); return(true); }
//[PermissionSet(SecurityAction.Assert, Unrestricted = true)] private void InternalStart() { try { //System.Security.SecurityRules(RuleSet=System.Security.SecurityRuleSet.Level2) //using (FileStream fs = new FileStream(@"D:\Nistec\Services\Logs\qlog.log", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)) //{ // StreamWriter w = new StreamWriter(fs); // create a Char writer // w.BaseStream.Seek(0, SeekOrigin.End); // set the file pointer to the end // w.Write("log test" + "\r\n"); // w.Flush(); // update underlying file //} Netlog.Debug(serviceName + " start..."); //m_enableQueueController = AgentManager.Settings.EnableQueueController; //m_enableTopicController = AgentManager.Settings.EnableTopicController; AgentManager.Start();// m_enableQueueController, m_enableTopicController); if (AgentManager.Settings.EnablePipeProducer) { m_PipeServerProducer = new PipeServerChannel(QueueChannel.Producer, QueueSettings.DefaultQueueProducer); m_PipeServerProducer.Start(); //QLogger.Info("PipeServerChannel started..."); } if (AgentManager.Settings.EnablePipeConsumer) { m_PipeServerConsumer = new PipeServerChannel(QueueChannel.Consumer, QueueSettings.DefaultQueueConsumer); m_PipeServerConsumer.Start(); //QLogger.Info("PipeServerListener started..."); } //m_ServerDequeue = new PipeServerDequeue(); //m_ServerDequeue.Start(false); if (AgentManager.Settings.EnableTcpProducer) { m_TcpServerProducer = new TcpServerChannel(QueueChannel.Producer, QueueSettings.DefaultQueueProducer); m_TcpServerProducer.Start(); //QLogger.Info("TcpServerChannel started..."); } if (AgentManager.Settings.EnableTcpConsumer) { m_TcpServerConsumer = new TcpServerChannel(QueueChannel.Consumer, QueueSettings.DefaultQueueConsumer); m_TcpServerConsumer.Start(); //QLogger.Info("TcpServerListener started..."); } if (AgentManager.Settings.EnableHttpProducer) { m_HttpServerProducer = new HttpServerChannel(QueueChannel.Producer, QueueSettings.DefaultQueueProducer); m_HttpServerProducer.Start(); //QLogger.Info("HttpServerChannel started..."); } if (AgentManager.Settings.EnableHttpConsumer) { m_HttpServerConsumer = new HttpServerChannel(QueueChannel.Consumer, QueueSettings.DefaultQueueConsumer); m_HttpServerConsumer.Start(); //QLogger.Info("HttpServerListener started..."); } if (AgentManager.Settings.EnableQueueManager) { m_ServerQueueManager = new PipeServerChannel(QueueChannel.Manager, QueueSettings.DefaultQueueManager); m_ServerQueueManager.IsAsync = false; m_ServerQueueManager.Start();// (false); //QLogger.Info("ServerQueueManager started..."); } //if (AgentManager.Settings.EnableFolderListener) //{ // m_FolderServer = new FolderServerListener(); // m_FolderServer.Start(); //} //if (AgentManager.Settings.EnableDbListener) //{ // m_DbServer = new DbServerListener(); // m_DbServer.Start(); //} //svr.Start();//McLock.Lock.ValidateLock(), true); //host_serviceStart(); Netlog.Debug(serviceName + " started!"); } catch (Exception ex) { Netlog.Exception(serviceName + " InternalStart error ", ex, true, true); //File.AppendAllText(@"D:\Nistec\Services\MQueue.Agent\error.log", "error: " + ex.Message); } }