示例#1
0
        //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);
            }
        }
示例#2
0
        /// <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);
            }
        }