ネットワーク上で実行されるデスクトップ アプリケーションがあり、すべてのインスタンスが同じデータベースに接続しています。
では、この状況で、同じデータベースに接続されている実行中のすべてのインスタンスで機能するミューテックスを実装するにはどうすればよいでしょうか?
言い換えれば、2 つ以上のインスタンスで同じ関数を同時に実行したくありません。1 つの関数が既に実行されている場合、他のインスタンスはその関数にアクセスできません。
PS: ミューテックスしたくない関数がデータベースを使用しないため、データベース トランザクションは解決しません。データベースについて言及したのは、実行中のインスタンス間で情報を交換するために使用できるからです。
PS2: 関数が完了するまでに約 30 分かかるため、2 番目のインスタンスが同じ関数を実行しようとした場合、コンピューター 'X' が既にその関数を実行しているため、現在実行できないというメッセージを表示したいと考えています。 .
PS3: 関数はクライアント マシンで処理する必要があるため、ストアド プロシージャを使用できません。