Árvore de páginas

Versões comparadas

Chave

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

Índice

Índice
maxLevel4
outlinetrue
exclude.*ndice
stylenone

Ocorrência

Problemas de lentidão no fluig podem acontecer por diversos motivos, englobamos nesta FAQ algumas formas para identificar e analisar as formas de detectar as possíveis causas de lentidão.

Análise inicial

Conforme o Guia de Performance e Analise do Servidor, a análise inicial deve ser realizada para identificar o ponto exato de lentidão com base na reclamação do cliente.

...

Devemos também, como análise inicial, verificar se o dimensionamento do ambiente do usuário está de acordo com as especificações do fluig.
 

Cenários comuns

Dentro da nossa experiência de atendimento à diversos clientes, identificamos alguns cenários como os mais comuns quando relacionados à lentidão do fluig. Abaixo, temos a descrição de cada um deles, bem como as medidas normalmente utilizadas para identificar os fatores que levam a percepção de lentidão.

 

Na página inicial

...


Na tela de inicialização de processos

Normalmente identificamos que a percepção de lentidão nesta tela ocorre devido aos mecanismos de atribuição relacionados às atividades iniciais dos processos. Como o fluig precisa resolver cada um dos mecanismos para então exibir a lista dos processos aos quais o usuário possui permissão para iniciar, pode haver lentidão neste ponto.


Na abertura da tela de movimentação de processo 

Nesta tela, quando o processo está sendo aberto para que usuário possa preencher o formulário, anexar arquivos, etc., normalmente iniciamos a avaliação pelo tempo de execução das requisições através do console do navegador para identificar quais recursos estão demorando para responder. Assim, podemos identificar se o motivo da percepção de lentidão são recursos externos, como bibliotecas javascript utilizadas no formulário, ou requisições internas do próprio fluig. 

Caso identificado que são requisições internas, passamos a avaliar o log do servidor em busca da execução de customizações como eventos de processos do tipo before e de eventos de formulário (displayFields, enableFields, etc.), consultas à dataset e/ou consultas a serviços externos. Caso a lentidão seja causada pela execução de eventos, sugerimos a revisão dos mesmos para reduzir ao máximo o processamento necessário para execução. Caso a lentidão seja em consultas à datasets, podemos avaliar se o dataset em questão foi desenvolvido utilizando as boas práticas e também recursos como a sincronização de datasets.

 

Na movimentação de processo

Quando temos situações onde o envio da solicitação está levando muito tempo, procedemos com uma análise bastante parecida com a analise descrita no item acima porém agora, devemos avaliar eventos de processos do tipo after e de eventos de validação de formulários (validateForm, etc.). Em muitos casos, na movimentação de solicitações são utilizadas integrações com aplicativos externos que podem causar a percepção de lentidão para o usuário. Para estes casos, recomendamos a utilização da Atividade de Serviço. Mais informações sobre esta atividade e exemplo de utilização estão disponíveis no guia Integração assíncrona via processos workflow.

 

Informações
titlePara saber mais

Desenvolvimento de dataset

Sincronização de datasets

Desenvolvimento de processos

Desenvolvimento de formulários

Integração assíncrona via processo

Desenvolvimento de eventos

Desenvolvimento de widgets

 

Ferramentas para análise do server.log:

Ferramentas Glogg e Baretail:

...

Para avaliar os tempos das customizações é necessário a analise do log.
Fluig > Analise inicial > log1.png


Procure pela String "JSChronos" no server.log. Todos os pontos de customização dos clientes são logados com a informação do tempo de execução.Image Removed

Bloco de código
languagetext
titleExemplo de execução de customizações
11:13:01,280 INFO [com.totvs.technology.foundation.common.JSChronos] (http-pool-threads - 95) CustomizationManagerImpl.invokeFunction.validateForm executou por 1 segundo

 

Bloco de código
languagetext
titleExemplo de execução de dataset
11:02:22,499 INFO [com.totvs.technology.foundation.common.JSChronos] (http-pool-threads - 77) DatasetFactory.getDataset.dsCargosSalariosAtv executou por 1 segundo