SQL Server Compact timed out waiting for a lock

Ich habe eine Applikation, die ich Sql Compact 3.5 mit VS2008. Ich bin mit mehreren threads in meiner Anwendung, welche Kontakte die kompakte Datenbank und greift auf die Zeile. Es wählt und löscht die Zeilen in einer Weise ich.e Auswahl geben, um die Anwendung zu 5 Zeilen, und löschen Sie die Zeilen aus der Tabelle. Es funktioniert hervorragend mit einem einzelnen thread, aber wenn ich mit mehreren threads, die ich.e wenn 3 oder mehr threads läuft, bekomme ich sehr oft einen TimeOut-Fehler!!! Ich konnte die Time-out-Eigenschaft in der Verbindungszeichenfolge, aber es mir nicht das erwartete Ergebnis. Der error log ist wie folgt:

SQL Server Compact timed out waiting for a lock. Die Standard-lock-Zeit ist 2000ms für Geräte und 5000ms für desktops. Die Standard-lock-timeout erhöht werden kann in der Verbindungszeichenfolge mit der ssce: Standard-lock-timeout-Eigenschaft. [ Sitzungs-id = 5,Thread-id = 4204,Prozess-id = 4808,Table name = XXX -, Konflikt-type = x-Sperre (s-Blöcke),Ressource = TAB ]

Die Abfrage, die ich verwenden, um abzurufen, ist wie folgt:

"
wählen Sie Top(5) * from TableName order by id;
delete from TableName where id in(select top(5) id from TableName order by id");
"

Gibt es eine Möglichkeit, durch die wir vermeiden können, dieses Mal Aus Ausnahme???????

Den obigen Abfrage, die ich der UNO als eine Transaktion in VS2008 man mit SQLCECommand und die andere über SqlCEDataAdapter.

Jede Idee!!!!!!
Antwort

InformationsquelleAutor | 2009-09-14
Schreibe einen Kommentar