- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Web 应用程序,许多用户在任何给定时刻都在使用它。从数据库的角度来看,他们在系统中移动时不断地从任意数量的表中写入和读取数据。此外,我们还有许多将数据导入该系统的流程。
今天,在调试导入过程时,我的代码在事务处理过程中因异常而停止。我几乎立即开始收到系统用户查询失败的报告。我以某种方式将我的操作与它相关联,点击继续,突然间查询又开始工作了。
简而言之,我认为我设置交易的方式是造成这种情况的原因,但我不太了解它的影响,无法解决它。
我需要一个事务,以便在出现任何问题时将其回滚,但它似乎在作用域处于事件状态或“挂起”时锁定了数据库。有什么方法可以更改此设置以防止出现我遇到的问题?
using (TransactionScope scope = new TransactionScope(
TransactionScopeOption.Required,
System.TimeSpan.MaxValue))
{
using (var context = new EntityContext())
{
//lots of write operations in here
}
}
最佳答案
it appears to be locking the database while the scope is active or "hung"
给定范围内的线程是否正在运行并不重要。不过,您是正确的,因为事件事务可以持有锁。
持有什么锁完全取决于您的工作负载和 RDBMS。没有神奇的“不锁定”选项。锁在那里是有原因的。
鉴于问题没有关于正在运行的查询、架构和 RDBMS 的信息,我只能鼓励您熟悉 RDBMS 中的锁定。没有简单的解决方案。
如果您使用的是 SQL Server,您可能应该研究使用 SNAPSHOT
隔离来读取事务。这可以快速全面地解决阻塞问题。
关于c# - TransactionScope 无意中锁定了部分数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21998174/
这个问题已经有答案了: Why do I get "AttributeError: NoneType object has no attribute" using Tkinter? Where did
我有一个列表,我想从中删除没有出现在另一个列表中的项目。我试过以下方法: for w in common: for i in range(1,n): if no
我遇到了一些自定义管理页面触发 Django 管理站点而不是显示我的自定义页面的问题。 我的 urls.py 如下: urlpatterns = patterns('', # ... trim
我尝试使用 href 方法下载 CSV 文件,但是将其设置为 href 标记时数据似乎被 chop 。对于 IE,我使用了 msSaveBlob,它似乎工作正常并且所有数据都已正确下载。
我是一名优秀的程序员,十分优秀!