我有一个在任务调度程序下运行的exe,并计划每周运行一次。此exe存在于2个不同的克隆服务器上[负载平衡],两者都计划在同一个日期时间执行。
这个exe检查数据库中某个表中的一个标志并执行.....问题是在任何情况下只有1个服务器必须执行exe而不是两个....
所以服务器1检查标志并且必须设置它然后执行exe .....这样当服务器2轮询标志时,它意识到第一个已经执行并退出。
现在我的问题是,如何确保检查数据库中的标志的服务器设置它,以便第二个服务器不会获取未设置的值....
类似数据库中的关键部分问题
答案 0 :(得分:0)
SQL Server具有专门针对此类问题设计的应用锁:http://msdn.microsoft.com/en-us/library/ms189823.aspx
如果您确实想要使用您的值更新表,您可以进行测试并设置一个(隐式)事务:
更新flagstable set flag ='server1',其中flag为null