Árvore de páginas

Versões comparadas

Chave

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

...

Produto:

Microsiga Protheus®

Ambiente:SIGAFAT - Faturamento

Ocorrência:

Mensagem: Tentativa de reservar registro no Alias Xem EOF Stack de chamadas em MSRLOCK.eof Controle de transaçoes Habilitado

Tenta novamente ? Essa mensagem sera fechada em 5 segundos

EOF Stack em MSRLOCK


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. Detalhes: Controle de Transação - MV_TTS

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 para ser manipulado, mas o ponteiro da tabela estava em fim de arquivo (MODO EOF) pois não localizou o dado procurado.

É 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 este registro (para eliminar dados gravados anteriormente).


Esta inconsistência pode acontecer nas situações detalhadas abaixo.

Observaçã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 atendimento, para fornecer os dados mencionados na análise.


1º Dado incorreto relacionado ao registro

Pode ocorrer de o registro que está tentando manipular possuir um código inválido amarrado a ele. Por exemplo, se for um Pedido de Venda / de Compra pode ocorrer de o código do Cliente / Fornecedor / Loja estar apontando um código inválido, que não existe. Ou conter um código de Produto no grid, ou um código de condição de Pgto, ou outro dado qualquer o qual não existe.

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.

Esta é a principal causa da ocorrência (falta de integridade nos registros do banco). 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 devida validação (possivelmente devido à uma das causas mencionadas abaixo).


2º 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 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:
    (ideia)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.


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.


Importante:

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!

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.