冗長環境 (メインおよびバックアップ) で動作する winform アプリケーションを設計しています。
どちらのアプリケーションも 7/7 24/24 で実行する必要があり、バックエンドで ODATA サービスに接続してオブジェクトのリストを取得します。
私が達成したいのは、処理するオブジェクトエントリをロックしてから、1つのアプリケーション(最初のコマンドを送信する順序を取得)だけがそれを処理し、プロセスを続行することです。
ここで私が推測していること。
処理するオブジェクトに次のいずれかの値を与える設計メソッド AcquireLock : AcquireLock_Attempt = AcquireLock メソッドのコードの最初の行で設定します。AcquireLock_ACK = オブジェクトが並行アプリケーションによってロックされていない場合。AcquireLock_NAK = オブジェクトが既にロックされているか、エラーが発生しました。
すでに同様のシナリオに直面している場合は、遠慮なく経験を共有してください。
NB : 1 - 私のサービスは呼び出しごとに構成されています。2- ロックの取得と新しい状態の設定 (Cmd_Send_OK、Failed_Transaction など) の間の処理は、ミリ秒から秒の範囲にすることができます)。