timeout - SQL Server Compact 等待锁超时

标签 timeout locking sql-server-ce

我有一个应用程序,我将 Sql Compact 3.5 与 VS2008 一起使用。我在应用程序中运行多个线程来联系紧凑数据库并访问行。它以某种方式选择并删除这些行,即选择并向应用程序提供 5 行,然后从表中删除这些行。它在单线程中工作得很好,但如果我使用多个线程,即如果有 3 个或更多线程正在运行,我经常会收到超时错误!我增加了连接字符串中的超时属性,但它没有给我预期的结果。错误日志如下:

SQL Server Compact 等待锁超时。设备的默认锁定时间为 2000 毫秒,台式机的默认锁定时间为 5000 毫秒。可以使用 ssce:default lock timeout 属性在连接字符串中增加默认锁定超时。 [ session id=5,线程id=4204,进程id=4808,表名=XXX,冲突类型=x锁(s block ),资源=TAB]

我用来检索的查询如下:

” select Top(5) * from TableName order by id; 从 TableName where id in 中删除(从 TableName order by id 中选择 top(5) id); ”

有什么办法可以避免这个超时异常吗??????

上面的查询我在 VS2008 中作为事务使用,一个使用 SQLCECommand,另一个使用 SqlCEDataAdapter。

有什么想法吗!!!!!! 回复

最佳答案

我也遇到过同样的问题。我知道这是一个老问题,但对于任何在谷歌上搜索答案的人来说,当我完成它时,我通过在我的 dataReader 上调用 Reader.Close() 来修复它。

该应用程序是单线程的,但如果我太快发出太多请求,我就会一直收到此消息。

希望对您有所帮助!

关于timeout - SQL Server Compact 等待锁超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1420582/

相关文章:

java - 用于自定义超时设置的 java.net.URL 的替代方案

Javascript:从主窗口中的图像弹出电影

java - 持有两个对象的锁

c# - 如何在 C# (.NET) 中将 DateTimeKind.Unspecified 类型的 DateTime 转换为 DateTime.Kind.Utc

c# - SQL Server Compact 3.5 如何使应用程序自增 id?

ruby - 在 Watir 中出现超时错误后重试测试站点

c# - 为什么 C# 锁不应该用于长时间操作?

java - 合并锁会降低性能吗?

language-agnostic - 如何有效地在数据库中存储大量行

C++:如何设置超时(不读取输入,不线程化)?