A mensagem "O registro número X do Arquivo X encontra-se Bloqueado por outro usuário" indica que a rotina tentou acessar um registro, porém ele está reservado por algum processamento de outro usuário:
Esta mensagem pode ser apresentada nas situações abaixo:
1º Registro Bloqueado por uso de outro Usuário / instância presa
Para identificar se outro usuário está utilizando esse registro é possível analisar a ferramenta DBACCESS Monitor (DBAccess - Monitor > Aba Usuários > Locks), ela possui uma opção de rastrear os locks a partir do usuário e rotina acessados:
Aviso |
---|
|
- Caso o registro esteja travado, ou seja, o usuário que está mantendo o registro em Lock não consegue liberar o registro, mesmo saindo do sistema, uma opção paliativa rápida é reiniciar o servidor (parando os serviços do TOP, Banco de dados e Server).
- Em algumas situações, a reserva de registros pode ocorrer devido a utilização de serviços que ficam executando operações em seu ambiente (JOBs), neste caso recomendamos que desative esses serviços e refaça os testes verificando se eles são os causadores do incidente.
|
2º Configuração de Parâmetros que auxiliam na reserva de registros
- MV_GNRENF: Caso esteja desabilitado, recomendamos habilita-lo (.T.), para não exibir a tela para alteração dos dados da GNRE/DIFAL (https://tdn.totvs.com/x/FvIGDg);
- MV_FATTRAV: O parâmetro MV_FATTRAV otimiza os Locks de registros das tabelas SA1 (Clientes), SA2 (Fornecedores) e SB2 (Saldos). Por exemplo, na emissão de um Documento de Saída, com dez itens, o MV_FATTRAV vazio, o sistema realizou 28 Locks na transação. Ao configurar o MV_FATTRAV como 4, o número de Locks cai para 19.
3º Customizações / Personalizações em seu ambiente.
- Personalização por Ponto de Entrada:
Algumas personalizações utilizam os comandos dbSeek, MsSeek, dbGoTo, etc, que desposicionam os registros de tabelas utilizadas nas rotinas do produto padrão causando o problema de "EOF Stack em MSRLock". Para este caso recomendamos que utilize um RPO limpo sem customizações para verificar se o problema é causado por alguma personalização.
- Personalização por Dicionário de Dados:
Verificar se há customizações na Estrutura do Protheus, como por exemplo, Índices (SIX) ou gatilhos (SX7).
Realizar backup dos arquivos na Pasta System e recriar com um dicionário de dados padrão a atualizado. Refazer o processo.
Dica |
---|
|
Existem pontos de entrada que permitem a manutenção dos Locks nas tabelas SA1 (Clientes), SA2 (Fornecedores) e SB2 (Saldos): Porém o uso dos pontos de entrada acima deve ser avaliado criteriosamente por um analista especialista, uma vez que o mau uso deles pode ocasionar em problemas de gravação das informações no banco de dados. Caso tenha dúvidas no uso dos pontos de entrada, solicite a alocação de um Consultor TOTVS ao seu Gerente de Atendimento.
|