Exemple #1
0
        public void IniciarServico()
        {
            try
            {
                logger.Info("**********************************************************************");
                logger.Info("**********************************************************************");
                logger.Info("*** IniciarServico(): DropCopyServer....");
                // Carrega configurações a partir do banco de dados
                DbDropCopy dbDropCopy = new DbDropCopy();

                string strExecFile = Process.GetCurrentProcess().MainModule.FileName;
                strExecFile = strExecFile.Substring(strExecFile.LastIndexOf(Path.DirectorySeparatorChar) + 1);
                logger.Info("ExecFile: " + strExecFile);
                _lstCfg = dbDropCopy.BuscarSessoesFIXServer(strExecFile);
                List <FixSessionItem> lstDropCopyInit = new List <FixSessionItem>();

                //logger.Info("Iniciando Gerenciador de Limites");
                //LimiteManager.GetInstance().Start();
                string strServerName = System.Net.Dns.GetHostName() + "." + System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName;
                logger.Info("Atualizando 'server names' das sessoes fix");
                foreach (FixSessionItem item in _lstCfg)
                {
                    if (item.ConnectionType.ToLower().Equals(FixConnectionType.DROPCOPY_INITIATOR))
                    {
                        lstDropCopyInit.Add(item);
                    }

                    // Atualizar o nome do servidor para definir a "origem" das sessoes
                    dbDropCopy.AtualizarServerName(item.IdSessaoFix, strServerName);
                }

                //Inicia Thread de tratamento de callbacks
                DropCopyCallbackManager.Instance.Start();

                if (lstDropCopyInit.Count == 0)
                {
                    logger.Info("Configurações de FixDropCopy Initiator não encontradas. Não criará o SocketInitator DropCopy");
                }
                else
                {
                    foreach (FixSessionItem item in lstDropCopyInit)
                    {
                        FixInitiatorDropCopy aux = new FixInitiatorDropCopy(item);
                        _lstfixInitiatorDC.Add(aux);
                        logger.Info("IniciarServico(): iniciando SocketInitiator DropCopy");
                        aux.Start();
                    }
                }
                logger.Info("*** IniciarServico(): DropCopyServer inicializado...");
                dbDropCopy = null;
                _status    = ServicoStatus.EmExecucao;
            }
            catch (Exception ex)
            {
                logger.Error("Problemas na inicializacao do servico: " + ex.Message, ex);
                _status = ServicoStatus.Erro;
                throw ex;
            }
        }
Exemple #2
0
        public void PararServico()
        {
            try
            {
                logger.Info("*** Parando DropCopyServer...");

                if (_lstfixInitiatorDC != null)
                {
                    int length = _lstfixInitiatorDC.Count;
                    for (int i = 0; i < length; i++)
                    {
                        logger.Info("Parando Fix SocketInitiator");
                        _lstfixInitiatorDC[i].Stop();
                        _lstfixInitiatorDC[i] = null;
                    }
                    _lstfixInitiatorDC.Clear();
                    _lstfixInitiatorDC = null;
                }

                DbDropCopy dbDropCopy = new DbDropCopy();
                logger.Info("Atualizando 'server names' das sessoes fix");
                foreach (FixSessionItem item in _lstCfg)
                {
                    dbDropCopy.AtualizarServerName(item.IdSessaoFix, null);
                }
                _lstCfg.Clear();
                _lstCfg    = null;
                dbDropCopy = null;

                logger.Info("Finalizando DropCopyCallbackManager");
                DropCopyCallbackManager.Instance.Stop();

                _status = ServicoStatus.Parado;
                logger.Info("*** DropCopyServer finalizado");
            }
            catch (Exception ex)
            {
                logger.Error("Problemas no stop do servico: " + ex.Message, ex);
            }
        }
Exemple #3
0
 public MessageProcessor()
 {
     _db = new DbDropCopy();
 }