A lentidão na rotina de Recálculo do Custo Médio (MATA330) no TOTVS Protheus pode ser causada por fontes desatualizadas, artefatos desatualizados, configurações incorretas de DBAPI.DLL, compartilhamento inadequado de tabelas contábeis, parâmetros de multi-thread mal configurados, processamento de produtos obsoletos, entre outros. É recomendado atualizar fontes, procedures, bibliotecas, revisar parâmetros e, se necessário, coletar logs para análise detalhada.
Tempo aproximado para leitura: 00:05:30 min
Ocorrência
O processamento da rotina de Recálculo do Custo Médio (MATA330) apresenta lentidão. O que avaliar para resolver este problema?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - Estoque/Custos - Todas as versões.
Solução
A lentidão na rotina de Recálculo de Custo Médio (MATA330) pode ocorrer por diversos motivos. Desta forma, listaremos abaixo os motivos mais comuns que geram a lentidão e como resolvê-los.
Observações: Verifique primeiramente se o ambiente esta com o pacote Acumulado Backoffice mais atualizado. Clique aqui para acesso ao link para a página direcionadora aos pacotes.
- 1 - Identificar se as rotinas e as procedures estão atualizadas. Ao pressionar as teclas SHIFT + F6 na rotina Custo Médio (MATA330) é possível avaliar a data do fonte. E, em seguida, comparar com a data do fonte disponível no portal de suporte. Para facilitar a localização, segue abaixo o link dos artefatos do Custo Médio, dentre eles o link da Stored Procedure e Fonte:
Já para visualizar se a Procedure está ou não atualizada, basta acessar ao Configurador (SIGACFG) -> Base de Dados -> Dicionário -> Stored Procedure. Ao abrir, selecione a operação "Consulta" e clique em OK.
Na coluna "Status" será possível visualizar se a Stored Procedure está OK, Desinstalada ou Desatualizada. Nesse link apresenta um passo a passo sobre como atualizar as STORED PROCEDURES.
OBS: Em caso de atualização da rotina e Stored Procedure, é necessário que a rotina MATA320 e a Procedure 20 também sejam atualizadas.
- 2 - É necessário que os artefatos de LIB, Binários e DBAcess estejam com as últimas atualizações do portal do Cliente, nesse link você tem acesso direto:
- 3 - É necessário verificar o arquivo DBAPI.DLL se estão com a mesma data de modificação nos diretórios AppServer e DBAcess.
Para analisar, é preciso ter acesso às pasta do AppServer e DBAcess. Localize o arquivo "dbapi.dll" e analise as datas de modificação. Elas precisam estar iguais.
Caso tenha alguma dúvida referente ao compartilhamento do arquivo, clique aqui.
- 4 - Verificar o compartilhamento das tabelas do módulo Contábil.
Outro fator que pode impactar é o compartilhamento das tabelas do módulo Contábil. Se elas não estiverem com o mesma configuração, pode apresentar lentidão. Clique aqui e veja como fazer o compartilhamento.
- 5 - Verificar os parâmetros de Multi Thread, onde auxiliam no processamento e ganho de performance:
MV_M330THR: Quantidade Threads para execução da rotina.
Define o numero de threads que serão utilizadas na rotina de recalculo do custo médio (informar os números de 1 a 99 threads).
IMPORTANTE: Ao aumentar o numero de threads o administrador de infraestrutura deverá verificar durante a execução da rotina se a quantidade de threads está de acordo com a capacidade de seu ambiente.
MV_M330JCM:
Define se utiliza threads no processamento dos movimentos de ordem 100/300/500 na rotina de custo médio (MATA330).
MV_THRSEQ = .F.
Informa se na geração do arquivo TRB da rotina de recalculo do custo médio será utilizado o controle de Jobs por .T. = Sequencial ou .F. = Paralelo.
IMPORTANTE: Para melhor performance o parâmetro deve estar configurado com .F. = Paralelo.
- 6 - Avaliar o parâmetro MV_A330GRV para processar ou não o Recálculo de produtos obsoletos
MV_A330GRV = .T (True/Verdadeiro): com este conteúdo (padrão) todos os produtos e armazéns terão seus saldos iniciais recálculos independentes de serem ou não obsoletos. Este é o processo utilizado.
MV_A330GRV = .F.(False/ Falso): com este novo conceito somente os produtos e armazéns que possuem movimentação de estoque dentro do período de processamento e que possuem quantidades e custos diferentes de zero, terão seus saldos iniciais recalculados. Os produtos que não se enquadram nesta regra (obsoletos) não são recalculados pela rotina.
- 7 - Verifique se a lentidão ocorre quando esta contabilizando, revise os parâmetros MV_PROCCV3 e MV_A330190.
- 8 - Utilizar (opcional) a ferramenta MALLOC-IO (onde aloca a memoria para ganho de performance):
Para obter mais informações sobre o programa e como utilizar, clique aqui. Também veja nesse link o vídeo com instruções sobre a ferramenta MALLOC-IO
- 9 - Ativar a chave DBPulse no DbAcess (Caso tenha ambiente Cloud). Veja detalhes de como ativar clicando aqui
- 10 - Caso o problema de lentidão persista, mesmo com os passos acima já revisado, segue as ações para avaliação (Serve tanto para cliente Cloud quanto cliente com ambiente Standard), ou mesmo nesse link dessa FAQ consta as instruções sobre configuração e coleta de logs para avaliação da performance no recalculo de custo médio:
- 10.1 - Solicitar o apoio de um DBA para acompanhar a execução da rotina e verificar os possíveis pontos de manutenção no data-base para otimizar o processamento.
- 10.2 -Habilitar o mecanismo de LogProfiler para gerar uma auditoria dos tempos de processamento. Deve ser criada a chave ConsoleMaxsize com conteudo 104857600 no appserver.ini, vide ConsoleMaxSize -- 29343, reduzindo o risco do logprofiler ficar incompleto.
Para saber como habilitar e gerar o LogProfiler veja a documentação disponibilizada no link http://tdn.totvs.com/pages/viewpage.action?pageId=243638663
IMPORTANTE: Não acionar por <SHIFT>+<F6>, pois sua apresentação envolve somente a thread corrente. A rotina faz uso de varias threads que serão apresentadas somente no console.log/console.bak, sendo acionado através da chave LogProfiler=1 inserido no appserver.ini
- 10.3 -Após a geração do LogProfiler realizar a abertura de um novo ticket para equipe de Suporte Técnico atraves do portal do cliente ( www.suporte.totvs.com.br ), anexando os seguintes itens:
Uma evidencia em vídeo com todas as configurações utilizadas em seu ambiente
Arquivo de console.log
Arquivo de console.bak
Arquivo de error.log
Arquivo de dbaccess.log
Arquivo de dbconsole.log
Uma cópia completa da tabela CV8, de preferencia no formato CTREE(.DTC)
Envie em .dtc ou .sdb a tabela CV8 filtrada para o campo CV8_PROC=MATA330 se processado pela rotina MATA330;
Envie em .dtc ou .sdb as tabelas D3X, D3Y e D3W completas se processado pela rotina Acompanha Custos MATA038;
Saiba mais:
Dicas para melhor performance no Recálculo do Custo Médio
MP - SIGAEST - Rotina MATA330 - Perguntas do Recálculo do Custo Médio
0 Comentários