Árvore de páginas

FAQ: Lock Progress X Programas persistentes
Produto:Datasul
Ambiente:Unspecified
Versão:2
Sintoma

Os registros ficam travados (locked) mesmo depois que a execução de determinado programa for fechada.
Quando um programa está executando de forma persistente e trava os registros de uma tabela, aparentemente estes registros não são liberados quando o programa fecha. A não ser que seja colocado um DELETE PROCEDURE THIS-PROCEDURE no fim do programa.
Este procedimento foi verificado nos estilos de relatório do EMS 5. Ao fechar um programa de relatório, a tabela DWB_RPT_PARAM continuava travada, até que o “menu dash” fosse fechado, quando é feito o delete procedure.

Causa

Um evento que pode causar esse travamento é o acesso a registros com EXCLUSIVE-LOCK em programas persistentes.
Nestes programas, o LOCK permanece até que o programa seja eliminado da memória, o que é feito pelo comando DELETE PROCEDURE.

Solução

Certificar-se de que, depois que o programa termine a execução, ele seja eliminado pelo DELETE PROCEDURE. O ideal é que o próprio programa se “autodestrua” no fim de sua execução, garantindo que sempre seja eliminado. Isso se consegue com o comando DELETE PROCEDURE THIS-PROCEDURE e geralmente pode ser feito no evento de ON CLOSE do programa.