Blocking transactions i MSSQL via ADO
Jeg har netop kæmpet med at få en kunde op igen fordi der var Blocking Transactions på deres SQL2005 database. Antager den situation er en Deadlock, men at det i MS' regi kaldes Blocking transactions.Programmet kører for en stor del via stored procedurer, men der e r også direkte SQL-skrivninger.
Hvor der er er flere felter/tabeller der skal opdateres, bruger pakkes det ind i transaktioner. Ved enkeltopdatering og i SPROC's gør jeg ikke noget aktivt (stoler på ADO og MSSQL gør det for mig)
Transaktionerne køres via ADOConnection.BeginTrans, ..CommitTrans og RollbackTrans. Disse kommandoer har jeg pakket ind i metoder under det TDataModul som TADOConnection ligger i.
Jeg vil gerne gerne BeginTrans giver en exception hvis der er en blokade. Så kan jeg lave et lille loop (max 10) hvor den forsøger igen i tilfældige intervaller. Kan man det?
Hvordan håndterer I andre deadlocks?
