如何锁定除一个(管理员)之外的所有用户的所有数据库更新?



我们有一个进程需要针对 Web 应用程序使用的数据库每隔一段时间运行一次软化,并且我们需要在此过程执行期间阻止所有其他更新。有没有全局方法可以通过nHibernate,.NET或直接在Oracle中做到这一点?

最初的想法是有一个单记录数据库表来指示进程是否正在运行,但是有了这个,我们需要回到每个保存/更新方法并进行更改以验证该记录是否存在在保存/更新调用之前。

我对这种要求的反应是审查设计,因为它在进行应用程序升级之外是非常不寻常的。 除此之外,还有几个选项:

关闭数据库,以独占模式打开它,进行更改,然后向所有人开放。

尝试使用锁定表锁定所有必需的表。 这可能会生成死锁异常,具体取决于执行锁定的顺序。

相关内容

  • 没有找到相关文章

最新更新