Erro: quot;Transaction was deadlocked... quot;

18/01/2005

0

Pessoal, tenho uma aplicação rodando em SQL Server a + de 2 anos e nas ultimas semanas um cliente me reportou o seguinte erro:

Transaction (Process ID 55) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.


+ detalhes do erro: [url]www.vipcomputadores.com.br/erro.html[/url]

alguem saberia me dizer oq significa, e como foi ocasionado??

Grato
Ermindo



[b:c5a2880d89]Título removido: ´Aos DBAs de Plantao - ERRO Estranho´[/b:c5a2880d89]
Sandra/Moderação


Ermindo

Ermindo

Responder

Posts

18/01/2005

Gandalf.nho

[b:f929d05ac4][color=red:f929d05ac4]Notificação de Infração às Regras de Conduta :[/color:f929d05ac4][/b:f929d05ac4]

Título desafiador e não descritivo

Para maiores esclarecimentos pode mandar-me uma [url=http://delphiforum.icft.com.br/forum/privmsg.php?mode=post&u=8378]Mensagem Particular[/url].


Responder

18/01/2005

Marcus.magalhaes

Boa tarde.

Um dead lock ocorre qdo dois processos concorrentes necessitam de recursos bloqueados entre eles, ex.:
[color=red:0a9e3583ad]
Processo A inicia transação
Processo B inicia transação
Processo A atualiza tabela A (ocasiona lock exclusivo)
Processo B atualiza tabela B (ocasiona lock exclusivo)
Processo A tenta atualizar tabela B (fica aguardando até que o lock seja terminado)
Processo B tenta atualizar tabela A (fica aguardando até que o lock seja terminado)[/color:0a9e3583ad]

[color=blue:0a9e3583ad]Como o lock nunca será terminado, pois para isso ocorrer, um processo necessita ser cancelado, [b:0a9e3583ad]o SS identifica qual processo tem menos tempo de CPU (visando gerar o mínimo de rollback)[/b:0a9e3583ad] e o mata liberando a tabela para o outro processo ser finalizado.[/color:0a9e3583ad]

No exemplo acima o processo B seria finalizado.

Para evitar que ocorram Dead Locks é ideal que os processos tentem usar as tabelas sempre na mesma sequencia. Ex.:
[color=red:0a9e3583ad]
Processo A inicia transação
Processo B inicia transação
Processo A atualiza tabela A (ocasiona lock exclusivo)
Processo B atualiza tabela A (fica aguardando até que o lock seja terminado)
Processo A atualiza tabela B (ocasiona lock exclusivo)
Processo A termina a transação
Processo B consegue atualizar tabela A (ocasiona lock exclusivo)
Processo B atualiza tabela B (ocasiona lock exclusivo)
Processo B termina a transação[/color:0a9e3583ad]

Espero ter ajudado.

Att,


Responder

30/08/2005

Flavio Sanches

Seguinte: Administro uma base de dados de cerca de 60 GB (SQLServer 2000). Meus HDs tem 70 Gb e minha base não pode crescer muito por absoluta falta de espaço. Acontece que ultimamente, quando eu executo o shrink (preciso fazer isso toda semana pra evitar um crescimento muito grande) ele retorna esse erro. Entrei em contato com outros profissionais e eles levantaram a possibilidade de ser por causa do pouco espaço do HD então eu tirei o LDF desse HD, liberando assim 13 gb, só que ainda dá o mesmo erro. Queria saber por que isso acontece e como eu faço pra resolver o problema.

abraço


Responder

03/09/2005

Marcus.magalhaes

bom dia.

Utilize [b:4c05d064f8]dbcc shrinkfile(´nome do arquivo´, tam_desejado)[/b:4c05d064f8]

Porém receber erro de deadlock durante um shrink eu nunca vi.

Quais são os tamanhos dos seus discos e a distribuição dos seus arquivos?

Att,


Responder

05/09/2005

Flavio Sanches

Dados 50 GB e log 15 Gb
Ambos num raid 1 de 2 HD´s scsi de 70 Gb.

O que eu já fiz? Fiz o seguinte: Renomeei o arquivo de log e atachei o banco dinovo e ele criou assim, um arquivo novo.

Agora, o erro no srhink que acontecia 100¬ das vezes, agora acontece 50¬ das vezes.

grato pela dica!

Flávio Sanches


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar