跨机器同步执行

时间:2009-06-10 15:36:15

标签: c# .net synchronization

我在负载均衡器后面的两台机器上运行了一个C#ASP.NET Web应用程序。我们使用粘性会话,因此我们没有共享的进程外会话状态。我们的代码使用SQL数据库,我们处理信用卡。

我们需要同步执行检查数据库中条件的代码块,并尝试对信用卡收费。检查条件和执行信用卡交易必须在同一个同步块中进行。

我们提出的唯一解决方案是将此代码块移动到Web服务中,并从计算机调用该Web服务。这提出了两个问题..

1)必须由Web服务管理和返回相当复杂的数据 2)Web服务将成为另一个无法实现多余的故障点。

有哪些工具或框架可以帮助同步在不同机器上运行的代码?

2 个答案:

答案 0 :(得分:1)

使用应用程序锁定:sp_getapplock

将您的'资源'以适当的模式(X)锁定适当的长度(从条件检查开始直到插入结束)。

答案 1 :(得分:0)

在所涉及的数据库行上放置显式锁是不够的?