//private ServidorConexaoTCPReplay servidorTcpReplay = null; public void IniciarServico() { try { _monitorConfig = new MonitorConfig(); logger.Info("*** Iniciando Servico TCPReplay"); logger.Info("Carregando configuracao dos canais"); _umdfconfig = GerenciadorConfig.ReceberConfig <UMDFConfig>(); // Carrega configuracao e ativa as threads das sessoes FIX foreach (TCPReplayConfig tcpReplayConfig in _umdfconfig.TCPReplay) { if (tcpReplayConfig.ConnectionType.Equals(QUICKFIX_CONNECTION_TYPE_ACCEPTOR)) { logger.Info("Iniciando ACCEPTOR SenderCompID[" + tcpReplayConfig.SenderCompID + "] TargetCompID[" + tcpReplayConfig.TargetCompID + "] Aguardando na porta [" + tcpReplayConfig.SocketAcceptPort + "]"); tcpReplayConfig.ChannelID = QUICKFIX_CONNECTION_TYPE_ACCEPTOR.ToUpper(); fixServerAcceptor = new FixServerAcceptor( tcpReplayConfig, _dctSessionsFixClients, _dctSessionsFixChannels); } else { string channelsID = tcpReplayConfig.ChannelID; if (tcpReplayConfig.IsPuma) { tcpReplayConfig.ChannelID = ConstantesUMDF.UMDF_CHANNEL_ID_PUMA_1_6; } else if (tcpReplayConfig.IsPuma20) { tcpReplayConfig.ChannelID = ConstantesUMDF.UMDF_CHANNEL_ID_PUMA_2_0; } logger.Info("Iniciando thread ChannelID[" + tcpReplayConfig.ChannelID + "]: SenderCompID[" + tcpReplayConfig.SenderCompID + "] TargetCompID[" + tcpReplayConfig.TargetCompID + "] Host[" + tcpReplayConfig.SocketConnectHost + "] Port[" + tcpReplayConfig.SocketConnectPort + "] TemplateFile[" + tcpReplayConfig.TemplateFile + "]"); FixServerInitiator fixServerInitiator = new FixServerInitiator( channelsID, tcpReplayConfig, _dctSessionsFixClients, _dctSessionsFixChannels); _dctFixServerInitiator.Add(tcpReplayConfig.ChannelID, fixServerInitiator); } } _serviceStatus = ServicoStatus.EmExecucao; logger.Info("Servico TcpReplay iniciado"); } catch (Exception ex) { logger.Error("IniciarServico(): " + ex.Message, ex); } }
/// <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); } }