Bom dia Senhores. Estou com o seguinte problema, dentro de um programa rodo uma procedure persistente para atualizar os dados na minha base. O problema é que, quando outro usuário tenta acessar os registros atualizados pela api, diz que estes registros ainda estão presos com o usuário que fez as alterações via api. Já tentei separar o código em blocos e dar release nos registros das tabelas. Sem sucesso. Notei agora que deixo a procedure rodando persistente sempre, está no local-initialize do .w, será que pode ser este o problema? Se eu der um run persistente no inicio da onde preciso alterar os programa e der um release no final, isto irá liberar os registros? Obrigado Att, Anderson.
Seu banco é oracle ? Já me deparei com alguns desses casos e já resolvi situações utilizando as opções abaixo - Utilizar o comando RELEASE para forçar a gravação ou ainda o ROWID(<TABELA>). - Se tiver ocorrendo alguma mensagem para o segundo programa ficar parado deve-se gravar a mensagem e fazer a leitura fora da transação. - Incluir os registros com as chaves sequencialmente para evitar gravar registros iguais.
Opa É banco progress mesmo... Várias vezes já consegui contornar com release, ou alterando o tipo de lock após a gravação, mas neste caso não está dando certo.
Cara, vc já tentou deletar a procedure??? Segue: Código: IF VALID-HANDLE(hSessionParams) THEN DELETE PROCEDURE (hSessionParams). Att,
Opa, cara tentei sim. Mas mesmo assim não liberou o registro, tem uma coisa bem sinistra ai no meio da brincadeira, mas vou ter que "re-escrever" o programa mesmo (a api), por outros motivos de regra de negócio e performance. Dai devo matar o problema consequentemente. Obrigado pela ajuda....