private BSMonitoramento InternalExecuteProcedure(SituacaoMonitoramento SituacaoSolicitada, bool concatenarOcorrencias, string ocorrencia) { using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew)) { using (var session = SessionHelper.SessionFactory.OpenSession()) { var procedureInvoker = new ProcedureInvoker(session); var bsMonitoramento = BSMonitoramento.Executar(procedureInvoker, logger, (long?)SituacaoSolicitada, HandleRegistro, Descricao, UsuarioExecucao, HostExecucao, ProgressoAtual, ProgressoMaximo, HostAbortar, UsuarioAbortar, MensagemAtual, ocorrencia, HandleRotina, TabelaRotina, LocalChamada, ArquivoLogs, "-", concatenarOcorrencias ? 1 : 0, ChaveCorrelacao, HandleProcessoPai, BooleanHelper.getBuilderBooleanToString(ProgressoAutomatico), BooleanHelper.getBuilderBooleanToString(GerouCriticas)); scope.Complete(); return(bsMonitoramento); } } }
internal static void ChecarTimeout() { try { lock (lockObject) { var elapsed = new TimeSpan(DateTime.Now.Ticks - ultimaChecagemTimeout); if ((elapsed.TotalMinutes > 60) || (ultimaChecagemTimeout == 0)) { using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew)) { using (var session = SessionHelper.SessionFactory.OpenSession()) { var procedureInvoker = new ProcedureInvoker(session); BSMonitoramentoTimeout.Executar(procedureInvoker, logger); ultimaChecagemTimeout = DateTime.Now.Ticks; scope.Complete(); } } } } } catch (Exception e) { logger.WarnFormat("Erro ao checar timeout de monitoramentos: {0}", e); } }
/// <summary> /// Realiza a associação de um dado com o monitoramento /// </summary> /// <param name="dadoAssociar">Instância do dado que está sendo associado</param> public void AssociarDado(Entidade dadoAssociar) { if (dadoAssociar == null) { return; } using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew)) { using (var session = SessionHelper.SessionFactory.OpenSession()) { var procedureInvoker = new ProcedureInvoker(session); BSMonitoramentoAssociarDado.Executar(procedureInvoker, logger, HandleRegistro, dadoAssociar.GetType().ToString(), dadoAssociar.Handle); } scope.Complete(); } }