Pular para o conteúdo
  • Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 7 anos atrás por Avatar de Ricardo RodriguesRicardo Rodrigues.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #108954
    Avatar de Ricardo RodriguesRicardo Rodrigues
    Participante

      Versão Oracle 10G.

      Um grid da aplicação java que utiliza pool de conexões, ao alterar uma linha a transação entra em lock por que existe uma atualização na mesma linha da tabela ocorrendo e depois de 60 segundos esta transação é finalizada.

      Alterar o parâmetro DISTRIBUTED_LOCK_TIMEOUT para um tempo maior resolve.

      Gostaria de saber se alguém já passou por esta situação e a ação foi a mesma?

      #108955
      Avatar photoJosé Laurindo Chiappa
      Moderador

        Blz ? Então, a minha Recomendação é *** sempre *** simplesmente CHECAR se o registro está lockado/em uso antes de fazer o DML, simples assim – EVIDENTEMENTE, se vc Checar se o rrgistro está em uso antes de tentar o DML nele vc Não terá espera por locks… O método pra isso varia muito de acordo com a ferramenta/linguagem de desenvolvimento mas muitas vezes isso se faz com um SELECT FOR UPDATE NOWAIT para reservar o registro se ninguém tá usando… Eu ** sempre prefiro EVITAR ** qquer wait se possível…

        Apenas SE e SOMENTE SE teu ambiente/linguagem/tool de desenvolvimento não permite isso (por exemplo, a tool de desenvolvimento que vc usa executa CADA SQL isoladamente numa sessão diferente, digamos) aí é que se pode apelar pra settings do tipo, que farão com que o LOCK WAIT inevitável se duas sessões querem acessar o mesmo registro demore mais para cair em timeout…

        []s

        Chiappa

        #108956
        Avatar de Ricardo RodriguesRicardo Rodrigues
        Participante

          Maravilha!

          Agradeço a sugestão, mas fizemos alguns testes e de acordo com a operação do ERP que é de varejo o mais adequado foi diminuir o tempo de lock de linha da operação que concorre em paralelo com o tuning dos objetos/sqls e apenas aumentar um pouco o tempo do parâmetro do banco de dados.

          Obrigado!

        Visualizando 3 posts - 1 até 3 (de 3 do total)
        • Você deve fazer login para responder a este tópico.
        plugins premium WordPress