コード例 #1
0
ファイル: FixServer.cs プロジェクト: radtek/Gradual
 public FixServer()
 {
     _status      = ServicoStatus.Indefinido;
     _fixAcceptor = null;
     //_fixDropCopy = null;
     _lstfixInitiator = new List <FixInitiator>();
     //_lstfixDropCopy = new List<FixDropCopy>();
     _tasks = GeneralTasks.GetInstance();
     _cron  = new Gradual.Core.OMS.FixServerLowLatency.Util.CronStyleScheduler();
 }
コード例 #2
0
ファイル: FixServer.cs プロジェクト: radtek/Gradual
        public void PararServico()
        {
            try
            {
                logger.Info("*** Parando FixServer");
                if (_fixAcceptor != null)
                {
                    logger.Info("Parando Fix SocketAcceptor");
                    _fixAcceptor.Stop();
                    _fixAcceptor = null;
                }

                if (_fixDropCopy != null)
                {
                    logger.Info("Parando Fix SocketAcceptor - Drop Copy");
                    _fixDropCopy.Stop();
                    _fixDropCopy = null;
                }

                if (_lstfixInitiator != null)
                {
                    int length = _lstfixInitiator.Count;
                    for (int i = 0; i < length; i++)
                    {
                        logger.Info("Parando Fix SocketInitiator");
                        _lstfixInitiator[i].Stop();
                        _lstfixInitiator[i] = null;
                    }
                    _lstfixInitiator.Clear();
                    _lstfixInitiator = null;
                }
                _tasks = null;
                DbFix dbFix = new DbFix();
                logger.Info("Atualizando 'server names' das sessoes fix");
                foreach (FixSessionItem item in _lstCfg)
                {
                    dbFix.AtualizarServerName(item.IdSessaoFix, null);
                }
                _lstCfg.Clear();
                _lstCfg = null;
                dbFix   = null;
                //logger.Info("Parando Gerenciador de Limites");
                //LimiteManager.GetInstance().Stop();
                //logger.Info("Parando Cron Tab Scheduler");

                if (null != _cron)
                {
                    _cron.Stop();
                    _cron = null;
                }

                _status = ServicoStatus.Parado;


                logger.Info("*** FixServer finalizado");

                // Forcar queda do executavel
            }
            catch (Exception ex)
            {
                logger.Error("*** Erro na parada do servico: " + ex.Message, ex);
            }
        }