terça-feira, 1 de julho de 2014

Eliminando Processos Travados no Schedule

Boa tarde Galera,
Este post tem como objetivo auxiliar vocês a eliminar aqueles processos que ficam com erro de retorno no schedule e que a cada inicialização do server o Protheus tenta executa-lo novamente.

Vamos lá:

Os processos do WorkFlow são controlados pelas tabelas WF1, WF2 e WF3 onde:

WF1: São os Processos do WorkFlow
WF2: É o Status do WorkFlow
WF3: Controla a Rastreabilidade do WorkFlow

Temos também os registros da tabelas WFA que é onde conseguimos identificar processos que tiveram problemas na execução da função de retorno através do campo WFA_TIPO quando estão com o valor  "0" .

Este processos estão pendentes de execução e sempre que o server for reiniciado, o WF enviará uma mensagem para lista de endereços dos administradores se forem informados na janela de parâmetros do workflow (configurador) e exibirão no console.log que estão sendo reativados.

REATIVAÇÃO DE PROCESSOS NO WF?



A reativação de processos é a forma em que o WF consegue tentar executar novamente os processos pendentes (que houveram erro de execução de retorno em uma primeira ou mais tentativas).

A reativação é feita sempre que o server  for reiniciado e que o Scheduler estiver sido informado na seção [OnStart] do appserver.ini e que na tabela WFA houver registros que no campo WFA_TIPO contenha o valor igual a "0".

[OnStart]
jobs=Scheduler

[Scheduler]
main=WFOnStart
environment=PRODUCAO
NPARMS=4
PARM1=99
PARM2=01
PARM3=ENVTOP
PARM4=T <<-- Aqui diz para o WF 'REATIVAR OS PROCESSOS'. Troque para F se não quiser.

Outra forma em que a reativação e realizada automaticamente é sempre que causar erro na execução da função de retorno e que a opção "reativar automaticamente" estiver habilitada na janela de parâmetros do workflow (configurador), conforme imagem abaixo:





É importante que na janela de parâmetros do workflow (configurador) você desabilite a opção "reativar automaticamente".

Outra forma considerada 'drástica' de resolver o problema é apagar os registros da tabela WFA que contenham o valor "0" no campo WFA_TIPO. Ou apenas modificam o valor para uma letra. Exemplo: "A". 

Espero que tenha ajudado!


Nenhum comentário:

Postar um comentário