DLLの処理の中で、ログファイルにログを出力している部分があるのですが、
そのDLLが複数同時に呼ばれてもいいように、
ログの出力に排他処理をかけるように頼まれたのですが、
どうやればいいのかわかりません。調べてみたのですが、
DBアクセスの排他しか見つからなくて。
どなたかご教授願えませんでしょうか。
ちなみに、
ログの出力の一連の動作としては、
ログファイルをオープン(Appendモード)して、
Printステートメントで書き込み、
クローズする、
ということをその都度しています。
Open ステートメントで Lock Write を指定すれば良いと思います。
誰かがファイルを Lock Write で Openしている最中に、
他の人が Open ステートメントを実行しようとした場合は、
どうなるのでしょうか?(もちろん開きたいファイルは同じです)
後から開こうとした人は待たされるのでしょうか。
それとも、エラーになってしまうのでしょうか?
実行すれば分かる事だと思いますが・・・
エラーになるので、
後の人も書き込む必要があるのなら、
Open出来るまでリトライすれば良いと思います。
すみません、他にやることがあって、時間が取れなかったので。
先ほど自分でやってみたところ、エラーになりました。
少し時間が取れたので、もう少しいろいろ試してみます。
Lock ステートメントを見つけたので、これも試してみようと思います。
やれば分かることまで質問してしまい申し訳ありませんでした。
ツイート | ![]() |