/// <summary> /// /// </summary> public void IniciarServico() { try { _monitorConfig = new MonitorConfig(); logger.Info("Iniciando servidor MDS"); logger.Info("Inicializando NEsper"); //NesperManager.Instance.Configure(); logger.Info("Inicializando gerenciador de filas de eventos"); EventQueueManager.Instance.Start(); logger.Info("Carregando configuracao dos canais UMDF"); _umdfconfig = GerenciadorConfig.ReceberConfig <UMDFConfig>(); logger.Info("Criando instancias dos canais UMDF"); foreach (ChannelUMDFConfig cfgcanal in _umdfconfig.CanaisUMDF) { cfgcanal.Segment = cfgcanal.Segment.ToUpperInvariant(); cfgcanal.TCPConfig = _umdfconfig.TCPConfig; ChannelUDMF canal = new ChannelUDMF(cfgcanal, _monitorConfig); canal.startup = cfgcanal.Startup; logger.Info("Configurado ChannelID[" + cfgcanal.ChannelID + "]: SecurityList[" + cfgcanal.SecurityListHost + ":" + cfgcanal.SecurityListPorta + "] Snapshot[" + cfgcanal.MDRecoveryHost + ":" + cfgcanal.MDRecoveryPorta + "] Incremental[" + cfgcanal.MDIncrementalHost + ":" + cfgcanal.MDIncrementalPorta + "]"); _dctCanais.Add(cfgcanal.ChannelID, canal); _monitorConfig.AddChannel(cfgcanal.ChannelID, cfgcanal.Startup); } logger.Info("Iniciando canais TCPConflated"); _conflatedConfig = GerenciadorConfig.ReceberConfig <TCPConflatedConfig>(); if (_conflatedConfig != null) { ChannelTcpConflated tcpConflated = new ChannelTcpConflated(_conflatedConfig); _dctConflated.Add(_conflatedConfig.SenderCompID, tcpConflated); } if (ConfigurationManager.AppSettings["AnaliseGraficaListenPort"] != null) { string portaANG = ConfigurationManager.AppSettings["AnaliseGraficaListenPort"].ToString(); logger.Info("Iniciando servidor sinal AnaliseGrafica na porta [" + portaANG + "]"); servidorANG = new ServidorConexaoANG(); servidorANG.ListenPortNumber = Int32.Parse(portaANG); servidorANG.Start(); } logger.Info("Iniciando threads de tratamento dos sinais"); ContainerManager.Instance.Start(_dctCanais); logger.Info("Iniciando threads dos Canais UMDF"); foreach (ChannelUDMF canal in _dctCanais.Values) { if (canal.startup) { canal.Start(); logger.Info("Ativado ChannelID[" + canal.channelConfig.ChannelID + "]"); } } Parallel.Invoke(() => { Thread.Sleep(15000); if (ConfigurationManager.AppSettings["StreamerListenPort"] != null) { string portaStreamer = ConfigurationManager.AppSettings["StreamerListenPort"].ToString(); logger.Info("Iniciando servidor Streaming na porta [" + portaStreamer + "]"); servidorStreamer = new ServidorConexaoStreamer(); servidorStreamer.ListenPortNumber = Int32.Parse(portaStreamer); servidorStreamer.Start(); } }, () => { Thread.Sleep(15000); if (ConfigurationManager.AppSettings["CotacaoListenPort"] != null) { string portaCotacao = ConfigurationManager.AppSettings["CotacaoListenPort"].ToString(); logger.Info("Iniciando servidor cotacoes HB na porta [" + portaCotacao + "]"); servidorCotacao = new ServidorConexaoHB(); servidorCotacao.ListenPortNumber = Int32.Parse(portaCotacao); servidorCotacao.Start(); } } ); _serviceStatus = ServicoStatus.EmExecucao; logger.Info("Servidor MDS iniciado"); } catch (Exception ex) { logger.Error("IniciarServico(): " + ex.Message, ex); } }