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,
o qual porém ele está reservado por algum processamento de outro usuário
.:
Image Added
Esta inconsistência mensagem pode acontecer ser apresentada nas situações abaixo:
1º Registro Bloqueado por outros Usuários (possivelmente com instância presa)
Obs: Em caso de ruso 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:
Image Added
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,
|
egistro bloqueado por outro usuário, - uma opção paliativa rápida é reiniciar o servidor (parando os serviços do TOP, Banco de dados e Server)
|
Para identificação de causa da ocorrência é necessário identificar qual o usuário está segurando a reserva do registro através da ferramenta DBACCESS MonitorDBAccess - Monitor > Aba Usuários > Locks
Image Removed - 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
|
afim de verificar se o causador - verificando se eles são os causadores do incidente.
- Dentro do processo de Faturamento, uma forma para trabalhar o uso da tabela SB2 e evitar seu travamento é efetuar a atualização do estoque posterior a geração da nota com a opção de atualização de estoque tardia através de JOB, maiores informações, acesse: MP - FAT - Atualização de Estoque tardia na geração da NF de Saída MV_NFS_JOB
|
2º Configuração de Parâmetros que auxiliam na resolução da reserva de registros
- Caso habilitado- desabilitado, recomendamos
desabilita: MV_GNRENF = .F. (Ver DOC0033_Bloqueio_Pedido_de_Venda_x_Tela_GNRE_Documento_de_Saída)MV_FATTRAV - (Nossa recomendação é utilizar esse parâmetro): Configurar conforme: TUPKT5_DT_Criação do Parâmetro MV_FATTRAV- (.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 e , etc. , que desposicionam os registros de tabelas utilizadas nas rotina 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 esta sendo é causado por alguma personalização. Caso não seja possível utilizar um repositório limpo para o teste, é necessário habilitar em seu ambiente a chave IXBLOG=NORUN (Para informações acesse: http://www.tdn.totvs.com.br/display/public/mp/Chave+IXBLOG)
Registrar a linha de comando IXBLOG=NORUN no ini do server dentro da sessão do ambiente
Simular o processo e verificar se a inconsistência permanece!
Após a execução do procedimento a linha criada no *.INI do server deve ser removida, pois pode causar baixa performance no sistema se mantida.
OBS: Caso ainda assim permaneça, é gravado um arquivo de log denominado msrlock.eof na pasta system.
Para a correta conferência, deve-se realizar o processo com a ocorrência em ambiente de homologação onde ocorra o problema, após apagar o arquivo já gravado no diretório (para eliminar dados gravados anteriormente).
- 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.
OBSERVAÇÃO: Pontos de Entrada que permitem desativar o LOCK de registros das tabelas:
Ao desligar o LOCK de registros das tabelas poderá permitir divergências dos campos de controle devido movimentar o registro durante o processamento. Avalie criteriosamente o uso de Pontos de Entrada com esta finalidade.
Dica |
---|
|
Existem pontos de entrada que permitem a manutenção dos Locks nas tabelas SA1 (Clientes), SA2 (Fornecedores) e SB2 (Saldos): |
Caso esteja com problemas de Locks nas tabelas SB2 e SA1 recomendamos a leitura da documentação: DOC0033_Bloqueio_Pedido_de_Venda_x_Tela_GNRE_Documento_de_Saída
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.
|