Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migrar jobs finalizados para tabela de histórico

CONTEÚDO

  1. Visão Geral
  2. Atualização da gjobserver
  3. Tratamento para finalização do job quando o host que está executando-o não responde mais
  4. Armazenamento do histórico de execução de jobs na tabela GJOBXEXECUCAOHST

Índice

01. VISÃO GERAL

Neste documento serão citadas as melhorias que estão sendo feitas no funcionamento do Job, com o intuito de melhorar a sua performance.  

...

  • Qual é o servidor controlador, que distribui os processos da fila (gjobserver.controlador)
  • Quantos Jobs são executados simultaneamente pelo Host (gjobserver.maxjobs ou alias.dat:<JobServerMaxThreads>) 
  • Qual o intervalo de leitura da fila de processos (gjobserver.tempopool ou alias.dat: <JobServerPollingInterval>)

  • Quantos Jobs estão sendo executados (gjobserver.numjobs)  (Em Tempo de execução)

Buscando melhorar a performance, o campo gjobserver.numjobs não mostrará mais quantos jobs estão sendo executados. E o campo gjobserver.fulljobs será preenchido com a regra:


Informações
titleATENÇÃO

Para saber o numJobs em tempo de execução é necessário executar a seguinte consulta SQL:

Bloco de código
languagesql
titleSQL
collapsetrue
WITH CTE_GJOBXEXECUCAO (NUMJOBS, SERVIDOR) AS

(

SELECT COUNT(GJOBXEXECUCAO.STATUS) AS NUMJOBS,

GJOBXEXECUCAO.SERVIDOR

FROM GJOBXEXECUCAO

WHERE (GJOBXEXECUCAO.STATUS IN (0,1)

OR GJOBXEXECUCAO.STATUS IS NULL)

AND PRIORITY <> 1

GROUP BY GJOBXEXECUCAO.SERVIDOR

)

SELECT GJOBSERVER.NOMESERVIDOR,

GJOBSERVER.DATAULTATIV,

GJOBSERVER.MAXJOBS,

GJOBSERVER.TEMPOPOOL,

GJOBSERVER.CONTROLADOR,

GJOBSERVER.FULLJOBS,

CTE_GJOBXEXECUCAO.NUMJOBS

FROM GJOBSERVER

LEFT JOIN CTE_GJOBXEXECUCAO

ON (GJOBSERVER.NOMESERVIDOR = CTE_GJOBXEXECUCAO.SERVIDOR)


0 - quando a quantidade de jobs em execução por aquele servidor forem igual a zero ou menor que a quantidade máxima que aquele server puder executar (maxjobs).

...

A partir da versão 12.1.31, em ambiente 3 camadas, o histórico de execução de jobs ficará armazenado na tabela GJOBXEXECUCAOHST.

...

  • No atualizador da versão 12.1.31 será criada a tabela GJOBXEXECUCAOHST e ao executá-lo grande parte dos jobs finalizados serão migrados da tabela GJOBXEXECUCAO e deletados da mesma. Por esse motivo, o atualizador pode demorar um tempo maior para ser executado, dependendo da quantidade de registros a serem migrados.
  • [LEGADO → Ver tópico 06] Após a atualização da base e migração dos registros, os próximos jobs finalizados serão migrados para a tabela de histórico em até 1 dia após sua execução. Foi criada uma rotina no sistema onde são escolhidos 3 horários do dia que normalmente existe o menor número de execução de jobs. E durante essas 3 horas os jobs finalizados podem ser migrados da tabela GJOBXEXECUCAO para a tabela GJOBXEXECUCAOHST.

...

Em ambiente 3 camadas = false, os registros serão migrados para a GJOBXEXECUCAOHST pelo atualizador, mas a rotina que continua executando a migração dos jobs não será executada. Nesse cenário os jobs finalizados posteriormente continuarão na tabela GJOBXEXECUCAO..


Novidades do atualizador da 12.1.31: 

  • Ao atualizar a base, os jobs que estiverem sendo executados no momento da atualização serão encerrados da seguinte forma:
    • Quando a data de início de execução do job for mais antiga que 1 dia à execução do atualizador, o job será cancelado. Nesse cenário se o job for recorrente ele não será reagendado. 
    • Quando a data de início de execução do job for de até 1 dia à execução do atualizador, o status do job será falha. Nesse cenário se o job for recorrente ele será reagendado. 
  • Em bases inconsistentes, jobs que apresentarem registro apenas na tabela GJOBXEXECUCAO e não tiver registro na tabela GJOBX serão excluídos.  


05. LIMPEZA DE JOB SERVERS DA TABELA GKNOWNJOBSERVER

A partir da versão 12.1.2306, foi adicionado um mecanismo para realizar a limpeza de JobServers da tabela GKNOWNJOBSERVER, mantendo a saúde e sanitização.

Para que um JobServer seja removido, será seguida a seguinte regra:

    • Não deve estar presente a tabela GJOBSERVER.
    • Não deve estar em GKNOWNJOBSERVERAPPSERVERRULES, ser definido como um Servidor de Aplicação.
    • Não deve estar em GKNOWNJOBSERVERRULE, ter afinidade com um processo.


06. MIGRAR JOBS FINALIZADOS PARA A TABELA DE HISTÓRICO

A partir das versões 12.1.2406.232, 12.1.2410.165 e 12.1.2502.100, foi adicionada uma forma manual de se migrar jobs finalizados para a tabela de histórico.

Este processo é de extrema importância para o ambiente pois um acumulo de registros na tabela GJOBXEXECUCAO pode deixar a execução de processos cada vez mais lenta.

É recomendado o agendamento deste processo para uma execução regular, com o intuito de manter a saúde do ambiente.

Segue a documentação: Migrar jobs finalizados para tabela de histórico