Consultor Eletrônico



Kbase 88910: Como identificar locks no banco OpenEdge
Autor   Patric Schaffner - CAT
Acesso   Público
Publicação   10/24/2018
Criado KCS - https://centraldeatendimento.totvs.com/hc/pt-br/articles/360024378551



Acessar o banco de dados pela ferramenta PROMON através do atalho PROENV, exemplo:
PROMON sports

Acessar a opção "1. User Control"
Identificar dentre as sessões existentes àquela que que está aguardando para locar um registro.
A coluna "Wait" irá apresentar um valor diferente de "--".
Geralmente locks de registros apresentam o valor "REC".
Na coluna "Table" ou "Table:Part" será apresentado o ID da tabela.
Na coluna "DbKey" será apresentado o recid do registro em questão.

Voltar a tela principal do promon, escolher a opção "4. Record Locking Table"
Identificar dentre as sessões listadas quais delas estão locando a mesma tabela e o mesmo registro.
Isso é possível pelos valores das colunas "Table" ou "Table:Part" e a coluna "Rowid", respectivamente.
A flag "Q" na coluna "Flags" indicam as sessões que estão aguardando pelo lock (fila - queue).
Aquela sessão que não estiver com esta flag é a sessão que está prendendo o registro.

Se for uma sessão de usuário é possível conversar com ele para saber qual rotina ele está executando.
Para descobrir qual programa está sendo executado, siga os procedimentos descritos nas referências deste kbase:

WHAT IS CLIENT DATABASE-REQUEST STATEMENT CACHING?
https://knowledgebase.progress.com/articles/Article/P150383

Obs.: como o produto Datasul utiliza vários bancos, repetir o procedimento acima em todos os bancos até encontrar em qual deles está ocorrendo o lock.
Referências

P150383 - What is Client Database-Request Statement Caching?