THREAD E TRANSA?ÃO NO BANCO DE DADOS

JP.RAMOS 30/11/2015 14:55:18
#454602
Pessoal

Fiz uma aplicação no vb.net para rodar como serviço e com uma thread da seguinte forma:
Private accessLock As New Object
SyncLock accessLock
[ô] grava no banco de dados com transação
gravarBD
End SyncLock

De vez enquando dá o erro de deadlock na hora de grava no banco de dados, será que este erro é por causa do synclock ou por estar usando transação?

NICKOSOFT 30/11/2015 19:29:54
#454619
vamos entender, o q seria erro de deadlock?
Um deadlock acontece quando duas ou mais tarefas bloqueiam uma à outra permanentemente, sendo que cada uma tem o bloqueio de um recurso, que a outra tarefa está tentando bloquear. Por exemplo:
•A transação A adquire um bloqueio compartilhado da linha 1.
•A transação B adquire um bloqueio compartilhado da linha 2.
•A transação A agora solicita um bloqueio exclusivo na linha 2 e é bloqueado até que a transação B termine e libere o bloqueio compartilhado que tem na linha 2.
•A transação B agora solicita um bloqueio exclusivo na linha 1 e é bloqueado até que a transação A termine e libere o bloqueio compartilhado que tem na linha 1.
A transação A não pode terminar até que a transação B termine, mas a transação B está bloqueada pela transação A. Essa condição é também chamada de dependência cíclica: a transação A tem uma dependência da transação B, e a transação B fecha o círculo tendo uma dependência da transação A.

então depende das operações q vc esta tentando, vc já sabe o q acontece e pq...
Tópico encerrado , respostas não são mais permitidas