ExecAuto MATA241

Boa tarde pessoa, tudo bom?

Estou desenvolvendo uma rotina automática que dispara a inclusão de 2 novos produtos a cada apontamento realizado na rotina MATA681, porém ao finalizar o apontamento está demorando muito para finaliza-lo realmente, cerca de 10 minutos, inclui um log para medir esse tempo e aparentemente o problema está após inserir o meu primeiro ExecAuto. Conforme segue o log em anexo.

Outro erro e que sempre quando vou estornar essa movimentação na rotina MATA241 ele alega que o registro ja está ocupado.

Podem me auxiliar por gentileza?

Segue em anexo o meu fonte, o log e o print do registro bloqueado.

compartilhar
  • Olá, se o registro está bloqueado, a rotina pode ficar presa até ele ser liberado e isso vai gerar lentidão. Fora essa situação, gere um logprofiler e anexe aqui para verificar os tempos e quais os pontos de lentidão gerados.

    Daniel Mendes   19 de Oct de 2022
  • Ola Daniel tudo bom? O log está no meu arquivo zipado ja anexado o nome do log é teste de velocidade.txt. Existe alguma forma de evitar que o registro fique preso Daniel?

    kaolox   19 de Oct de 2022
  • Oi, isso não é um logprofiler... LogProfiler vai auditar tudo que foi chamado, cada função, sendo ADVPL ou binário, verificando tempo, quantidade de chamadas etc. É acredito que a principal ferramenta para verificar performance. Quanto ao registro, provável que não exista nada que possa ser feito, uma vez que um registro seja alocado, a única coisa que resta é esperar ele ser desalocado... Efetuar locks de muitos registros, segurar transação, abrir dialog dentro de transação são práticas que você deve evitar para melhorar esses cenários, mas eles sempre vão existir.

    Daniel Mendes   19 de Oct de 2022
  • Ola Daniel, realmente fiz um teste na area de testes com dois usuarios logados e o bloqueio ocorre após finalização do apontamento na MATA681 e apresentado a pergunta em anexo caso o usuario nao finalize ele mantém o outro apontamento, até que o primeiro seja finalizado.

    Em anexo segue o logprofiler e print da pergunta de finalização.

    kaolox   20 de Oct de 2022
  • Olha, parece que grande parte dessa lentidão está por conta de efetuar o lock de todos os registros necessários. Tem muito tempo gasto na função MultLock.

    Daniel Mendes   20 de Oct de 2022
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags execauto ou faça a sua própria pergunta.