Tempo aproximado para leitura: 00:03:00 min
Dúvida
Como são executados os processos em ambiente N camadas com mais de um servidor de job?
Ambiente
Framework - Linha RM - Frame - Todas as versões do sistema RM
Solução
Para o exemplo usaremos um ambiente com 3 servidores de job's (job1, job2 e job3) cada um com configuração de 2 execuções simultâneas:
Em determinado momento do dia, um usuário executa um processo, este processo será encaminhado para a fila de execução, o servidor controlador (Saiba mais) verificará a fila de execução e distribuirá aleatoriamente o processo para um dos JobServers com maior disponibilidade.
A disponibilidade de um JobServer é definida pela subtração do valor da coluna NUMJOBS do valor da coluna MAXJOBS da tabela GJOBSERVER.
No print acima, o servidor com maior disponibilidade é o job2, pois ainda possuí 3 posições (MAXJOBS) para execução dos processos. Assim, caso dispararmos mais um processo, ele será executado pelo servidor job2.
Importante
A coluna DISPONIBILIDADE (print acima), foi crida somente para ilustrar o funcionamento do processo, segue query executada:
SELECT NOMESERVIDOR, NUMJOBS, MAXJOBS, (MAXJOBS - NUMJOBS) AS DISPONIBILIDADE FROM GJOBSERVER
A coluna NUMJOBS trás o número de processos em execução no JobServer, assim que a execução do processo é finalizada, seu registro é subtraído da coluna NUMJOBS.
A coluna MAXJOBS trás o número máximo de processo paralelos, seu valor é definido pela campo Execuções simultâneas do RM.AliasManager (UNIDADE:\totvs\CorporeRM\RM.net).
Saiba mais
Para informações sobre configuração de ambientes N camadas acesse o artigo Framework - Linha RM - Frame - Configuração N camadas
0 Comentários