none
Como fazer para dar um deadlock? RRS feed

  • Pergunta

  • Pessoal estou tentando dar um erro de deadlock sem sucesso e não entendo porque. Meu objetivo é dar um erro de deadlock e monitorar através do profile. Alguém conheçe algum outro aplicativo que monitore deadlock???

    O código que estou usando é o seguinte

    1 Conexao

    use prova
    go
    declare @X integer
    set @X =1
    begin tran
    while 1 < 2
    Begin
     update T1 set Descricao = 'dasdlkra' + CAST(@X as varchar)
     update T2 set Descricao = 'moubds'+ CAST(@X as varchar)
     
     set @X = @X + 1
    End
    commit tran

    Segunda conexão

    use prova
    go
    declare @X integer
    set @X =1
    begin tran
    while 1 < 2
    Begin
     update T2 set Descricao = 'mnydaiuys'+ CAST(@X as varchar)
     update T1 set Descricao = 'poposa'+ CAST(@X as varchar)
     set @X = @X + 1
    End
    commit tran

    Porque não dá o erro?

    quarta-feira, 11 de agosto de 2010 12:27

Respostas

  • Bom Dia,

    Nunca irá dar erro, pois, até você mudar a janela 1 para a janela 2, a janela 1 já terá obtido os locks nas tabelas T1 e T2 e portanto T1 bloqueará T2 e o contrário não será verdadeiro. Tente colocar o WAITFOR DELAY '00:00:10' entre os UPDATEs que deve funcionar (é o tempo de trocar de janela)

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 11 de agosto de 2010 14:01
    • Marcado como Resposta Thiago, Moura quinta-feira, 12 de agosto de 2010 11:03
    quarta-feira, 11 de agosto de 2010 14:00

Todas as Respostas

  • Bom Dia,

    Nunca irá dar erro, pois, até você mudar a janela 1 para a janela 2, a janela 1 já terá obtido os locks nas tabelas T1 e T2 e portanto T1 bloqueará T2 e o contrário não será verdadeiro. Tente colocar o WAITFOR DELAY '00:00:10' entre os UPDATEs que deve funcionar (é o tempo de trocar de janela)

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 11 de agosto de 2010 14:01
    • Marcado como Resposta Thiago, Moura quinta-feira, 12 de agosto de 2010 11:03
    quarta-feira, 11 de agosto de 2010 14:00
  • Coloquei deu certo. Deu certo também do meu jeito, porém tive que esperar árduos 6 minutos.
    quinta-feira, 12 de agosto de 2010 11:02