2009-06-10 4 views
2

ロードバランサの背後にある2台のマシンでC#ASP.NET Webアプリケーションを実行しています。スティッキーセッションを使用するため、プロセス外セッションの状態を共有しません。私たちのコードはSQLデータベースを利用し、私たちはクレジットカードを処理します。複数のマシン間で同期実行

データベースの状態をチェックするコードブロックの実行を同期させ、クレジットカードの請求を試みる必要があります。条件の確認とクレジットカード取引の実行は、同じ同期ブロックで行う必要があります。

この唯一の解決策は、このコードブロックをWebサービスに移動し、そのWebサービスをマシンから呼び出すことです。これにより、2つの問題が発生します。

1)かなり複雑なデータは、Webサービス によって管理され、返されなければなりません。2)Webサービスは、冗長化できない別の障害ポイントになります。

さまざまなマシンで実行されているコードの同期に役立つツールやフレームワークはありますか?

答えて

0

関連するデータベース行にexplictitロックを入れることは十分ではありませんか?

1

は、アプリケーションロックを使用します。sp_getapplock

は(条件チェックの開始からあなたのインサートの終わりまで)適切な長さのために適切なモード(X)であなたの「リソース」をロックします。

関連する問題