Just nu i M3-nätverket
Gå till innehåll

Your transaction was deadlocked


J Sundberg

Rekommendera Poster

Tjena!

 

Jag får emellanåt detta felmeddelande när jag försöker lista upp ett RS ur min MSSQL-databas. Jag har byggt allt kring ASP.

 

 

Microsoft OLE DB Provider for SQL Server error '80004005' . Your transaction (process ID #11) was deadlocked with another process and has been chosen as the deadlock victim. Rerun your transaction.

 

Jag fattar ju vad problemet är men undrar om det finns ett enkelt och bra sätt att få reda på att just detta fel har uppstått och helt enkelt köra om frågan. Jag vill ju helst inte ha en ren on error resume next-grej påkopplad.

 

Sundberg

 

Länk till kommentar
Dela på andra webbplatser

Det finns inget annat sätt att fånga upp fel utom att köra med On Error Resume Next och fånga upp felen.

 

Du måste också försöka ta reda på vilket exakt felnummer detta fel orsakar, antingen genom att du skriver ut det eller söker på MS sajt.

 

Koden skulle kunna se ut ungefär så här:

 

[color="#0000ff"]On Error Resume[/color] [color="#0000ff"]Next[/color]

iRecovery = 3
[color="#0000ff"]Do[/color]
Err.Clear
rs.Open sSQL, conn, 1, 3
iRecovery = iRecovery - 1
[color="#0000ff"]Loop[/color] [color="#0000ff"]While[/color] iRecovery > 0 [color="#0000ff"]And[/color] ( Err.Number = -2147217871 )

[color="#0000ff"]If[/color] Err.Number <> 0 [color="#0000ff"]Then[/color]
[b]Response[/b].Write [GRÅ]"Error: "[/GRÅ] & Err.Description 
[b]Response[/b].[color="#0000ff"]End[/color]
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]

 

Saxat från ett av mina egna scripts, använder som du ser ett recordset objekt och felnummeret är i detta fall för time or deadlock error vid koppling till databasen, kanske är det samma felnummer som du behöver till och med.

 

[inlägget ändrat 2005-01-11 16:39:14 av Meme]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...