Árvore de páginas

Índice


Plataforma

Produto:  TOTVS Fluig Plataforma

Versão: 1.8.1 ou superior

Ocorrência

Duplicação dos jobs de tarefas intermediárias no Agendador de tarefas devido a uma inconsistência de concorrência específica de fluxos similares ao exemplificado abaixo:

Sobre o fluxo:

1 - A intermediária adiciona um agendamento.

2 - O agendamento é executado e envia para o gateway. Depois disso, o agendamento é removido.

3 - A condição do gateway volta para a intermediária.


Causa

Ocorre uma inconsistência de concorrência ao tentar adicionar e remover um mesmo agendamento quando feito em múltiplas threads e com múltiplas instâncias do Fluig quando existem solicitações sendo executadas paralelamente.


Solução

Existem duas possibilidades de solução para esse caso.

→ Alterar o processo.

  • Em vez de adicionar uma condição no gateway para retornar para a atividade intermediária, adicione a mesma condição na intermediária e utilize o "return false;" para reagendar o agendamento sem que o sistema precise removê-lo.


→ Limitar o agendamento para executar em apenas uma thread e uma instância.

  • Para isso, acesse o diretório [diretório_instalação]\repository\wcmdir\config e verifique se existe o arquivo configuration.properties.
  • Se existir, abra-o com um editor de texto e adicione os parâmetros abaixo com seus respectivos valores. Se os parâmetros já existirem, verifique se os valores são os indicados abaixo. Se não forem, é necessário alterá-los.

    configuration.properties
    fluig.schedule.thread.poolsize=1
    fluig.schedule.single.instance=true
  • Se o arquivo de configurações não existir, é necessário criá-lo manualmente com o nome configuration e a extensão .properties. Adicione os parâmetros acima e seus respectivos valores.

  • Em seguida, reinicie os serviços do Fluig.

    Nota:

    Não se preocupe se o arquivo for excluído, pois a plataforma faz a leitura dele, atualiza a tabela "fdn_paramgeral" e, em seguida, remove o arquivo automaticamente.

Dica!

Se desejar voltar o valor dos parâmetros para o padrão:

  • Basta alterá-los para os indicados abaixo no arquivo configuration.properties.

    configuration.properties
    fluig.schedule.thread.poolsize=5
    fluig.schedule.single.instance=false
  • Reinicie os serviços do Fluig.