Histórico da Página
Tentativa de reservar registro no Alias em EOF Stack de chamadas em MSRLOCK.eof Controle de transaçoes Habilitado
Produto: | Microsiga Protheus® |
Ocorrência: | Mensagem: Tentativa de reservar registro no Alias |
X em EOF Stack de chamadas em MSRLOCK.eof Controle de transaçoes Habilitado Tenta novamente ? Essa mensagem sera fechada em 5 segundos |
O registro encontra-se Bloqueado por outro usuário.
Ambiente:
SIGAFAT - Faturamento
Passo a passo:
Conceito: | O controle de transação é uma ferramenta importante que garante a integridade de dados quando uma determinada operação é realizada no Banco de Dados.O Protheus possui o parâmetro MV_TTS que quando ativado garante que este processo exista nos processos críticos de transação de arquivos
As alternativas existentes quando da atualização de tabelas são:
A mensagem "EOF Stack em MSRLOCK" indica que a rotina tentou reservar um registro |
Esta inconsistência pode acontecer nas situações abaixo:
1º Customizações / Personalizações em seu ambiente.para ser manipulado no processamento; mas o ponteiro da tabela estava em |
FIM DE ARQUIVO (MODO EOF) pois não localizou o dado procurado na Tabela. É gravado um arquivo de log denominado msrlock.eof na pasta system. Para uma correta conferência, deve-se realizar o processo com a ocorrência em ambiente de homologação onde ocorra o problema, após apagar este registro (para eliminar dados gravados anteriormente).
Exemplo: | |||||||||||||||||||||||||||||||||||||
Procedimentos: |
|
|
|
|
2º Incidentes em sua base de dados
Para: 'Uso do registro por outro usuário' é possível identificar qual o usuário, analisando os locks de cada usuário conectado, na ferramenta:
DBAccess - Monitor > Aba Usuários > Locks
Para: 'Customização / processo que iniciou indevidamente o tratamento e unlock do registro' segue sequência de verificações / procedimentos a realizar:
1º - reiniciar o servidor (parando os serviços do TOP, Banco de dados e Server) e realizar novos testes.
Se erro persistir, seguir o segundo procedimento:
2º - verificar se o arquivo msrlock.eof gravado na pasta system existe alguma customização no sistema que envolva o alias apresentado na mensagem. Realizar este procedimento de teste em ambiente de homologação onde ocorra o problema ou em ambiente exclusivo (logo em seguida de ter reiniciado o servidor - antes da primeira reprodução do erro):
A) Anexar o arquivo criado pelo comando IXBLOG:
No arquivo *.INI do Server, no ambiente que fará o teste, adicionar a linha: IXBLOG=LOGRUN ao final das configurações do ambiente e salvar.
Ao entrar no sistema será apresentada a mensagem "USER FUNCTION debug is active, you will have performance cost", isso significa que o sistema está rodando o IXBLOG. Caso a mensagem não seja apresentada revise o processo no *.INI, e posteriormente baixe e suba o Server.
Simular o processo até que gere a inconsistência citada.
Na pasta Protheus_Data será criada a pasta IXBLOG e, dentro desta, um arquivo *.LOG com seu nome de usuário e registro de Pontos de entrada/Customizações identificadas no processo, para análise.
B) Testar retirando influencia de Customizações e Pontos de Entrada:
Alterar a linha de comando IXBLOG=LOGRUN para IXBLOG=NORUN
|
|
Se erro persistir mesmo no teste "B", seguir o terceiro procedimento:
3º - dropar o alias e os arquivos *.cdx (realizando backup, deixando a tabela ser recriada e appendando os registros do bakcup) e realizar novos testes.
Se erro persistir, seguir o próximo procedimento:
4º - certificar-se de estar com últimas atualizações do Portal do Cliente. Caso não, em ambiente de homologação, aplicar último RPO e verificar se corrige o problema.
Se erro persistir, seguir o próximo procedimento:
5º -
|
|
Importante: Os procedimentos indicados são utilizados para rastrear a possível causa da reserva do Alias. Caso ainda ocorra reserva indevida, apesar dos procedimentos, será necessário solicitar auxilio de Consultoria Totvs para que acesse remotamente a sua base, visando avaliação/ debug da rotina para investigá-la e identificar a origem do problema.
Observações:
|
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.
MT410TRV - Liberação da trava de registros para as tabelas SA1/SA2/SB2
M461TRV - Libera a trava dos registros da tabela SB2
|