do transaction

Discussão em 'Progress 4GL' iniciado por felix, Dezembro 17, 2009.

  1. felix

    felix Membro Participativo

    Boa tarde.

    estou precisando de uma ajuda, quando uso do transaction e termino este processo a tabela fica locada, exemplo:

    do transaction:

    for each tabela exclusive-lock:
    tabela.tt = 10.
    end.

    end.

    release tabela.

    update alguma coisa.

    se outro usuario precisa usar a tabela acima, o mesmo fica travado até o primeiro usuario sair do programa.

    Eu uso o progress 8.2, alguem saberia me dizer o que posso fazer para resolver isso?

    []'s
  2. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Felix,

    As vezes existe uma transação maior, e por isso existe a necessidade de fechar o programa.
    Já passei por algumas situações colocando transações dentro de outras por acidente. E só liberava os registros quando a transação principal era encerrada.

    Verifique onde sua transação é executada, se é executada a partir de outro programa.

    Antes de executar o do transaction tenta verificar se já existe alguma transação ativa com uma mensagem, se não em engano o código é este:
    Código:
    message transaction view-as alert-box.
    
    do transaction:
    ...
    

    Posta mais detalhes relacionado ao procedimento de execução.

    T+
  3. felix

    felix Membro Participativo

    Eu já estava achando que era isso mesmo. o problema é que tenho do transaction no programa principal, que chama outro programa que tbém tem do transaction e a tabela só esta sendo liberada quando sai do primeiro do transaction.

    Valeu, Obrigado
  4. felix

    felix Membro Participativo

    Só voltando um pouco este assunto.

    Andei fazendo umas pesquisas e encontrei um documento que diz que a melhor maneira de usar o do transaction é a cada ação de atualização de dados e logo apos a utilização dar o release na tabela. O programa no qual estou tendo problema é grande e atualiza dados em partes bem diferentes uma da outra, sendo assim, tenho a preocupação de colocar o do transaction a cada atualização e no meio do programa acontecer de cair a conexão e ter dados que ficam atulizados e otros que ainda não foram. Alguem teria alguma ideia de como posso fazer para resolver este problema?

    []'s
  5. mepossamai

    mepossamai Sem Pontuação

    Olá Felix...

    cara, enfrentamos o mesmo problema na minha empresa, no qual tivemos que colocar um bloco enorme com transaction nos itens de Nota Fiscal... se ocorrer qualquer erro nos itens, toda a NF é eliminada... o usuario tem que fazer do zero.
    Assim conseguimos garantir a fidelidade dos itens para aquela NF e evitamos lixos nas duas tabelas (NotaFiscal e ItensDaNota).

Compartilhe esta Página