Fórum Q Q ta errado? #41603

16/01/2004

0

começo 2 transações com BDE usando tiReadCommitted.
disparo a 1 e disparo a 2 em seguinda.

cada uma realiza as operações necessárias, qdo chega no ponto de
[b:9b8013f509]ATUALIZAR O SALDO[/b:9b8013f509] de um produto da Deadlock!!!

a transação 1 atualiza o saldo p/ x

em seguida a tra...2 atualiza p/ y, nesse exato momento da deadlock.

já tentei com os outros 2 tipos de isolamento possíveis e não teve mudança.

Alguma solução?

forte abraço.

Ricardo


Rfpsatin

Rfpsatin

Responder

Posts

17/01/2004

Sremulador

Bem amigo eu estou trabalhando com sub-estoques atualmente mas eu dou somente um commit nos casos de trasferencias, se você der mais detalhes poderei lhe ajudar melhor


Responder

Gostei + 0

17/01/2004

Rfpsatin

Bem amigo eu estou trabalhando com sub-estoques atualmente mas eu dou somente um commit nos casos de trasferencias, se você der mais detalhes poderei lhe ajudar melhor


Salve povo é o seguinte.

2 usuários em máquinas distintas começam a realizar uma mesma tarefa.

qdo o user 1 começa, inicio a transação
o mesmo ocorre com o user 2.

qdo o user um termina o q esta fazendo e da commit, tudo blz, contudo qdo o user 2 faz o mesmo da deadlock.

to ligado q q é deadlock e pq ocorre, agora não to conseguindo me livrar disso mudando os tipos de isolamento transacional.

dicasssss???????????


Responder

Gostei + 0

21/01/2004

Afarias

Provavelmente o primeiro q gravou ainda não deu um commit!

O registro só fica bloqueado no espaço de tempo entre o POST e o COMMIT -- após o commit não há mais bloqueio.


T+


Responder

Gostei + 0

21/01/2004

Rfpsatin

Provavelmente o primeiro q gravou ainda não deu um commit! O registro só fica bloqueado no espaço de tempo entre o POST e o COMMIT -- após o commit não há mais bloqueio. T+


Oi tio, blz?

deu o commit sim, to controlando e da p/ ver isso claramente,
qdo o segundo da o commit via aplicação o 1o. ainda não consegue enxergar as mudanças, estranho neh?!
to contornando via try...


Responder

Gostei + 0

21/01/2004

Afarias

|Oi tio, blz?

hahahahahahahahahahahahahahaha... :roll:


|deu o commit sim, to controlando e da p/ ver isso claramente,

então, o outro usuário na rede já poderá alterar o registro sem problema

|qdo o segundo da o commit via aplicação o 1o. ainda não consegue
|enxergar as mudanças, estranho neh?!

o 1º deve ter a transação configurada para READ COMMITED -- e é claro, refazer a consulta (re-executar o SELECT)


|to contornando via try...

Blz.


T+


Responder

Gostei + 0

21/01/2004

Rfpsatin

Ow tio :D

Então, falando claramente...

Vamos dizer assim, a única forma de tratar deadlock seria com try e tratar desta forma?!


Responder

Gostei + 0

21/01/2004

Afarias

|Vamos dizer assim, a única forma de tratar deadlock seria com try e
|tratar desta forma?!

É... a forma de ´tratar´ os deadlocks é com TRY/EXCEPT (quando a transação está em NOWAIT)

Mas o melhor mesmo é procurar sempre evitá-los (os deadlocks) procurando manter tuas transações curtas.


T+


Responder

Gostei + 0

21/01/2004

Rfpsatin

Caramba, q falta faz o [b:b958b32358]select for update[/b:b958b32358] do oracle :roll: :oops:


Responder

Gostei + 0

22/01/2004

Afarias

|Caramba, q falta faz o select for update do oracle

Vc tem esta opção no FB 1.5


T+


Responder

Gostei + 0

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

Aceitar