Consultor Eletrônico



Kbase 89067: Localizando programas presos em memória causando locks inesperados de registros
Autor   Eloi Rene Pscheidt - CAT
Acesso   Público
Publicação   11/7/2018
O procedimento a seguir visa identificar qual programa, seja ele uma BO ou API, que tenham sido esquecidos na memória da sessão client do OpenEdge e ficaram prendendo o lock de algum registro.
Por exemplo, usuário abriu uma sessão, executou um programa, alterou um registro, e voltou para a tela principal do programa.
Outra sessão tentou realizar a mesma tarefa, ou alterar os mesmos registros, e recebeu mensagem dizendo que o registro está em lock pela sessão anterior.
O lock apenas é liberado quando a primeira sessão é encerrada.

Para este tipo de caso o procedimento a seguir pode ser útil para identificar qual programa ficou prendendo o lock do registro:

1) na primeira sessão, com o programa em questão já fechado, abra o 'procedure editor', clicando em 'executar programas', '_edit.p'
2) acesse o menu 'tools', em seguida 'pro*tools';
3) na barra de ferramentas que se abre, clique no oitavo ícone (se deixar o mouse parado sobre o mesmo, vai mostrar o nome 'procedures';
4) será aberto o programa 'Procedure Object Viewer';
5) Nesta tela, no lado esquerdo haverá a sessão 'procedure objects';
6) procure pelos objetos com o nome de 'bo', ou 'api', e vá fechando uma a uma;
7) para fechar, selecione o objeto e clique em "apply close", ou "delete";
8) para cada objeto que você encerrar, verifique na outra sessão se a mensagem de lock sumiu;
9) aquele que liberar o lock quando encerrado, será o objeto que o programa deixou de eliminar, que estava causando o lock.