Beispiel #1
0
        public bool RecoveryInterval(string channelID, int seqNumIni, int seqNumFin)
        {
            /**
             * Todo o codigo abaixo eh apenas para atender ao roteiro de certificacao do puma 2.0
             * Item D3.30
             */
            if (!_dctCanais.ContainsKey(channelID))
            {
                logger.Error("ChannelID[" + channelID + "] não existente na configuração!");
                return(false);
            }

            ChannelUDMF canal = _dctCanais[channelID];

            if (canal.isPaused)
            {
                logger.Error("ChannelID[" + channelID + "] já pausado!");
                return(false);
            }

            canal.RecoveryInterval(seqNumIni, seqNumFin);

            logger.Info("Pausado ChannelID[" + channelID + "]");
            return(true);
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="channelID"></param>
        /// <returns></returns>
        public bool PauseChannelIncremental(string channelID)
        {
            if (!_dctCanais.ContainsKey(channelID))
            {
                logger.Error("ChannelID[" + channelID + "] não existente na configuração!");
                return(false);
            }

            ChannelUDMF canal = _dctCanais[channelID];

            if (canal.isPaused)
            {
                logger.Error("ChannelID[" + channelID + "] já pausado!");
                return(false);
            }

            canal.PauseIncremental();
            logger.Info("Pausado ChannelID[" + channelID + "]");
            return(true);
        }
Beispiel #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="channelID"></param>
        /// <returns></returns>
        public bool DesativarChannel(string channelID)
        {
            if (!_dctCanais.ContainsKey(channelID))
            {
                logger.Error("ChannelID[" + channelID + "] não existente na configuração!");
                return(false);
            }

            ChannelUDMF canal = _dctCanais[channelID];

            if (!canal.isRunning)
            {
                logger.Error("ChannelID[" + channelID + "] já desativado!");
                return(false);
            }

            canal.Stop();
            logger.Info("Desativado ChannelID[" + channelID + "]");
            return(true);
        }
Beispiel #4
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);
            }
        }