Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

01. INFORMAÇÕES GERAIS

O Serviço de monitoramento monitoração da saúde da integração tem como finalidade garantir a disponibilidade/execução do processo que executa a integração (ConTotvsAppExecutorProcess).


Aviso
titleAtenção

É necessário que o ambiente possua ao menos um JobServer Distribuído no ambiente para que a integração seja habilitada. TDN : https://tdn.totvs.com/x/Gy8ZE


02. SITUAÇÃO/REQUISITO

Ao ativar a integração RM x TOTVS App o processo ConTotvsAppExecutorProcess  deve ser executado respeitando a configuração de periodicidade da  integração, independentemente da arquitetura utilizada pelo sistema ( Local / 3 Camadas ). 

Este processo não pode deixar de ser executado, pela quantidade de volume que informação que ele pode gerar e também pela criticidade das informações que são integradas.

...

Pensando neste cenário precisamos que caso o processo seja desabilitado/parado por motivos diversos, o processo precisa ser reagendado imediatamente, para garantir que as informações sempre estejam sendo enviadas para a Carol. (Respeitando a configuração de recursividade da integração)

Ambiente Local

Em um ambiente Local o cenário é bastante diferente, um novo processo precisa ser gerado o mais próximo da configuração de recursividade da integração.


Informações
titleAtenção

É necessário garantir que o processo ConTotvsAppExecutorProcess  não seja executado simultaneamente por mais de um serviço.

03. SOLUÇÃO

Foi criado um serviço que executa de 10 em 10 minutos que executa a rotina de verificação do processo ConTotvsAppExecutorProcess.

...

...

Quando utilizado o ambiente Local o tempo de execução do processo é próximo ao configurado e não o tempo exato igual em um ambiente 3 Camadas.

O Serviço faz a verificação se precisa executar o processo de 10 em 10 minutos.

Exemplo:

Levando em consideração que a configuração da periodicidade da integração de 10 minutos.

O processo Acabou de executar as 10:10, mas o serviço fez a verificação as 10:09 e o processo estava em execução, não sendo necessário disparar o processo novamente.

O serviço só voltará a verificar se precisa executar o processo as 10:19, onde caso o processo não esteja executando o mesmo será executado.

04. COMO HABILITAR O SERVIÇO

Ao Habilitar a integração através do Wizard de configuração o serviço será inicializado em todos os ambientes RM.Host , RM.Host.Service utilizados pelo sistema, somente para o Alias atual.

...

Aviso
titleAtenção

Este serviço tem como o comportamento ser registrado durante a subida do serviço RM.Host / RM.Host.Service para cada Alias configurado no ambiente. 

Exemplo: 

1 Host + 1 Alias = 1 Serviço

2 Host's + 1 Alias = 2 Serviços

2 Host's + 2 Alias = 4 Serviços

Caso a integração não esteja configurada/habilitada o mesmo será finalizado, não consumindo recursos da máquina.


05. COMO FUNCIONA O SERVIÇO

Existe um serviço no Host que é responsável por executar a rotina que controlar a execução do processo da Integração. Este serviço chamamos de Responsável pelo Job.

Apenas um único Host possui esta responsabilidade.

É possível identificar o Responsável pelo Job através da tabela GTOTVSAPP, o campo SERVIDOR representa quem é o Responsável pelo Job do serviço, registrado com HOSTNAME:PORTA.

O Responsável pelo Job pode ser assumido por qualquer Host do parque de máquinas, que esteja com um JobServer Distribuido Habilitado.


Como funciona o mecanismo de ser ou não o Responsável pelo Job:


Aviso
titleAtenção

Todas as informações significantes do processo serão escritas no arquivo de Log do sistema. (TraceFile)

draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNameControlador
simpleViewerfalse
width
diagramWidth1061
revision7


Como Funciona a Rotina que verifica a Saúde do processo:

draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNameRoutine
simpleViewerfalse
width
diagramWidth1199
revision11

Aviso
titleAtenção

Este fluxo da saúde do processo, server para as seguintes classes de processos.

Campo - JOBID → Classe de Processos: ConTotvsAppExecutorProcess (DataSharing)

Campo - JOBIDTLC → Classe de Processos: ConTotvsAppExecutorTLCProcess (BeheviorSharing)