Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

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

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.

Image Removed

Ambiente:

SIGAFAT - Faturamento

Passo a passo:

A mensagem referente a

Image Added

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:

  • Efetivar a transação - quando realizada com sucesso
  • Voltar a status anterior (rollback) - desfaz toda a transação iniciada quando o final da transação não foi concluído com sucesso. Isto garante a total integridade dos dados.


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).

FIM DE ARQUIVO (MODO EOF) pois não localizou o dado procurado na Tabela.
Ou seja, algum dado (relacionado a este registro que está sendo processado) está inválido / não foi localizado, apresentando quebra de integridade.

É 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).


Dica
titleEXEMPLO

Suponhamos que a mensagem ocorre ao tentar gerar / excluir um Doc. de Saída.


Então algum dado relacionado com esse Doc de Saída está inválido / não foi localizado, apresentando quebra de integridade.
Pode por exemplo ser algo inválido no cadastro do TES utilizado no Pedido de Vendas; pode ser o código do Cliente / Fornecedor / Loja estar registrado um código inválido, que não existe; pode conter um código de Produto no grid, ou um código de condição de Pgto, ou o código do Item, ou outro dado qualquer o qual não existe/ não é válido etc.

Exemplo:

Procedimentos:

Aviso
titleOBSERVAÇÃO

Caso o ambiente esteja armazenado no Cloud Data Center da TOTVS, será necessário acionar pontualmente o Suporte Cloud mencionando os itens específicos que necessitam de intervenção do Cloud, para que forneçam os dados mencionados para análise.

Deck of Cards
startHiddenfalse
effectDuration0.5
idCusto Médio
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idEtapa 1
labelEtapa 1 - Rastreamento do dado incorreto relacionado ao registro

É necessário rastrear especificamente no ambiente para identificar qual registro da base está com o problema.
Deste modo, a primeira análise é avaliar se os registros que está tentando processar possuem dados válidos no Banco, principalmente para a Tabela apontada no alerta e as relacionadas ao processo executado.


Recomenda-se realizar simulações para isolar o problema / o registro.
Exemplo, inserir um registro idêntico na base de dados e verificar se o registro é gravado nas tabelas com os mesmos dados e se o problema também ocorre.


Este tipo de informação incorreta pode ter sido incluído ou por manipulação de dados no Banco (procedimento este não indicado) ou pela própria rotina sem ter ocorrido a validação adequada (possivelmente devido à uma das causas mencionadas abaixo).



Card
defaulttrue
idEtapa 1
labelEtapa 2 - Ver 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 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.
(ideia)

  • Caso não seja possível utilizar um repositório limpo
o cliente poderá
Alterar

  • Registrar a linha de comando IXBLOG=
LOGRUN para IXBLOG=NORUN
  • 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.

2º Registro Bloqueado por outros Usuários

É possível identificar qual o usuário esta segurando a reserva do registro através da ferramenta DBACCESS Monitor.

DBAccess - Monitor > Aba Usuários > Locks

Image Removed

(ideia) 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 do incidente.

3º Configurações e Parametros que auxiliam na resolução da reserva de registros

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):

Se erro persistir mesmo no teste "B", seguir o terceiro procedimento:

 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º -

  • 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.

Card
defaulttrue
idEtapa 1
labelEtapa 3 - Inconsistência na rotina possivelmente causada por atualizações incompatíveis no ambiente
  • Certificar-se de estar com últimas atualizações do Portal do Cliente. Em ambiente homologação testar com último RPO, Binarios, DBACCESS, LIB e pacote quinzenal de atualizações. Verificar se neste cenário ocorre o problema.



Aviso
titleAVISO IMPORTANTE

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.

PorObservações:

Há procedimentos incisivos ao sistema em alguns dos processos mencionados, que devem ser realizados por sua Equipe de TI e, aconselhamos que caso tenha alguma dúvida no processo, solicite acompanhamento de um consultor

Totvs!

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

TOTVS.

Os procedimentos indicados são utilizados para rastrear a possível causa da ocorrência.

Caso ainda ocorra apesar da devida realização dos procedimentos, será necessário solicitar auxilio da equipe de Suporte Investigativo TOTVS para que acesse remotamente a sua base, visando avaliação/ debug da rotina para investigá-la e identificar a origem do problema.