我们有一个流程,需要针对Web应用程序使用的DB进行所有这样的软化处理,并且在此流程执行期间,我们需要阻止所有其他更新。是否有任何全局方法可以通过nHibernate,.NET或直接在Oracle中进行?
最初的想法是拥有一个单记录的DB表来指示该进程是否正在运行,但是与此相关的是,我们将需要返回到每个保存/更新方法并进行更改以验证该记录是否存在或者不在保存/更新调用之前。
答案 0 :(得分:1)
我对这种要求的反应是审查设计,因为在进行应用程序升级之外这是非常不寻常的。除此之外,还有几个选择:
关闭数据库,以独占模式打开它,进行更改,然后为所有人打开它。
尝试使用LOCK TABLE锁定所有必需的表。根据执行锁定的顺序,这可能会产生死锁异常。