私はDelphiで書かれたコマンドラインツールを持っています。このツールは、ノードをXMLファイルに挿入してすぐに終了することです。私はツールのいくつかのインスタンスを同時に実行し、ノードを同じXMLに挿入することを可能にする必要があります。Delphiを使用して、EXEの複数のインスタンスからXMLファイルへの同時入出力アクセスを管理する方法。
この目的を達成するために、単純なファイル「mutex」を導入しました。このツールは、XMLに書き込む前に1つの一時ファイルを作成し、終了後に一時ファイルを削除します。したがって、別のインスタンスが実行されると、この一時ファイルの存在を確認し、削除されるまで待機します。その後、再び一時ファイルを作成し、XMLに書き込み、一時ファイルを削除します。
問題は、2-3のインスタンスが同時にXMLファイルに書き込もうとしたときにうまく動作することです。より多くのインスタンスがある場合、それらのインスタンスのいくつかは永遠に待機し、ノードをXMLに追加することはありません。
同時に実行してXMLに書き込む多数のインスタンスで動作させるより良い方法がありますか?
これまでの回答はありがとうございます。まずコード内に論理的な誤りがあり、私はそれを修正しましたが、私が使用する方法はまだ良くありません。 次の小規模なツールで私は続行します。そして、ここで更新を書いて、最も適切な答えを受け入れます。 –
クライアント/サーバーソリューションのように見えます。 –