問題タブ [filelock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1697 参照

c - CのNFSv4を介したファイルロックリース

NFS v4の派手なファイルロック機能の使い方を知っている人はいますか?(たとえば、NFSプロトコルについて(下にスクロール)で説明されています)。おそらくNFSv4は、45秒のライフタイムでファイルロックリースをサポートしています。Linuxカーネル(私はgentoo 2.6.30を使用しています)がこれらの詳細を問題なく処理していると信じたいのですが、私は使用できfcntl()、すべてが洗い流されています。しかし、ロックリースを取得、維持、解放するには、なんらかの特別なことをしなければならないと思います。すべての助けに感謝します。

0 投票する
5 に答える
1499 参照

c# - C# - ブラウザーが閉じられるか、ユーザーがページから移動するか、セッションが期限切れになるまでファイルをロックする

ブラウザが閉じられるか、ユーザーが現在のページを離れるか、セッションが期限切れになるまでファイルをロックする方法はありますか?

テキストファイルから注釈を読み取り、ユーザーがJavaアプリを介してpdfに注釈を変更または追加できるJavaアプリがあります。完了したら、[保存] をクリックすると、完全な注釈ファイルが元のデータ ファイルに戻ります。

問題は、2 人のユーザーが同じ注釈ファイルを開いて、異なる更新を実行できることです。次に、それぞれが保存するときに既存のファイルを上書きして、2 番目のユーザーの変更のみが保存されるようにします。

理想的な解決策は、編集のために 1 人のユーザーがファイルを「チェックアウト」し、ウィンドウを閉じるか、ページから移動するか、セッションが期限切れになるまで変更を加えると、ファイルが自動的に「チェックイン」されるようにすることです。C#でこれを行う方法はありますか? ありがとう!

0 投票する
3 に答える
37953 参照

java - 読み取りおよび書き込み用のJavaFileLock

特定の移動関連コマンドが含まれているファイルを読み取るために、cronからかなり頻繁に呼び出されるプロセスがあります。私のプロセスは、このデータファイルの読み取りと書き込みを行う必要があります。また、この間、他のプロセスがこのデータファイルにアクセスしないように、プロセスをロックしたままにしておく必要があります。ユーザーは完全に別のプロセスを実行して、この同じデータファイルに(潜在的に)書き込み/追加することができます。これらの2つのプロセスを適切に実行し、一度に1つのファイルにのみアクセスするようにします。

nio FileLockは私が必要としていたもののようでした(自分のセマフォタイプのファイルを書くことはできませんでした)が、読み取るためにロックするのに問題があります。ロックと書き込みは問題なく実行できますが、読み取り時にロックを作成しようとすると、NonWritableChannelExceptionが発生します。読み取りのためにファイルをロックすることさえ可能ですか?RandomAccessFileは私が必要としているものに近いようですが、それを実装する方法がわかりません。

失敗するコードは次のとおりです。

例外はFileLock行でスローされます。

JavaDocsを見ると、

元々書き込み用に開かれていなかったチャネルに書き込もうとしたときにスローされるチェックされていない例外。

しかし、私は必ずしもそれに書き込む必要はありません。書き込み目的でFileOutpuStreamなどを作成しようとすると、同じファイルでFileInputStreamを開こうとするまでは問題ありません。

0 投票する
4 に答える
311 参照

perl - Linux デーモンは、SAMBA 経由でアクセスするファイルへの書き込みを Windows プログラムが停止したことをどのように知ることができますか?

私は、Dazzle と呼ばれる USPS 配送パッケージと連動するシステムを開発しています。このシステムの一部には、タブ区切りの値ファイルを取得し、それらを Dazzle が認識する XML に変換し、ラベル生成のために Dazzle に渡すことを目的とする監視デーモンが含まれています。そして、この部分はうまく機能します。ただし、私がやりたいことは、Dazzle が生成する出力ファイルを解析してデータベースにインポートすることです。

ここで、Dazzle は Windows 上で動作することに注意してください。私の監視デーモンは Perl で書かれており、Linux で動作します。私の Linux システムには、Samba 経由でマウントされた Dazzle の入力および出力ディレクトリがあります。

Dazzle が出力ファイルの書き込みを開始してから完了するまでには、かなりの遅延があります。私が知りたいのは、Dazzle が出力ファイルの書き込みを完了するのをどのように待つことができるかということです。ファイルを開いて実行しようとしましflock($fh, LOCK_SH)たが、うまくいかなかったようです。

編集:以下の「mobrule」のコメントに基づいたアイデアがあります。Dazzle は出力ファイルを XML で書き込みます。出荷の各パッケージはタグで囲まれ、ドキュメント全体がタグで囲まれています。そのため、ファイルが完了する前に読み取りを開始した場合は、適切な終了タグが表示されるのを待ってからアクションを実行できます。

また、私が現在行っていることについても言及する必要があります。出力 XML ファイルが作成されたことを検出すると、それを解析しようとします。その解析が失敗した場合は、スリープして再試行します。それが失敗した場合、私は 2 倍長く寝てから、もう一度やり直します。これは、64 秒のタイムアウトでのテストでかなりうまく機能しました。

0 投票する
2 に答える
3682 参照

c# - c# で file.move を使用するとファイルがロックされる...これを停止または修正するにはどうすればよいですか

コード:

pending.txt ファイルが存在しない場合は、プログラムの起動時に作成されます。このコードは、ファイルの最初の行を削除します。コードをデバッグすると、

ファイルをロックし、もう書き込めません。

0 投票する
2 に答える
1547 参照

c# - .NET 分離ストレージ ファイルのロックで NRE がスローされる

そのため、アプリケーションの複数のコピーが同時にアクセスできないように、C# クライアント アプリケーションで分離ストレージ ファイルをロックしようとしています。次の構文を使用しています。

このコードにより、アプリケーションはフレームワークの FileStream.Lock メソッド内から NullReferenceException をスローします。長さにゼロ以外の値を使用してみました。ファイルにバイトを書き込んでから、そのバイトだけをロックしようとしました。私が何をしても、同じ NullReferenceException が私を悩ませ続けます。これが分離ストレージで可能かどうかは誰にもわかりませんか?

また、Silverlight アプリケーションでもこの手法を使用することを検討していますが、Silverlight はファイル ロックをサポートしていますか? MSDN のドキュメントではそうではないと示されているようですが、C# MVP からのこの投稿を見たことがあります。

更新: Microsoft は私が Connect に提出したバグを修正しましたが、フレームワークのバージョン 4 ではリリースされませんでした。うまくいけば、次の SP またはフル リリースで利用できるようになるはずです。

0 投票する
1 に答える
4631 参照

java - Java ファイル ロック メカニズムの問題 (FileLock など)

xml ファイルを開いて編集するための簡単なアプリケーションを作成しています。これらのファイルは、アプリケーションの複数のインスタンスによってアクセスされるローカル フォルダーにあります。私がやりたいことは、アプリのインスタンスによって開かれた各ファイルをロックして、他のインスタンスがアクセスできないようにすることです。

これを実現するために、次のコードを使用します。

function void readFile(){

}

その間、編集中のファイルのロックを維持したいので、raf を閉じたり、fl を解放したりしません。

この時点で、ロックされたファイルにアクセスしようとするアプリの他のインスタンスはアクセスに失敗します。ここまでは順調ですね。

私は次の奇妙なことを観察しました:

ファイルのロックを取得した後、同じファイルで FileInputStream を開くと、FileLock オブジェクトが有効なままである (isValid が true を返す) 場合でも、アプリの他のインスタンスが編集中のファイルにアクセスできるようになります。

この振る舞いは奇妙だと思います。なぜこれが起こるのか誰か説明できますか?

上記が理にかなっていることを願っています。前もって感謝します!

0 投票する
4 に答える
11531 参照

java - Java:ファイルをロックせずに開いて読み取る

Javaで「tail-f」を模倣できる必要があります。別のプロセスによって書き込まれているログファイルを読み取ろうとしていますが、ファイルを開いて読み取ると、ファイルがロックされ、他のプロセスはそれを書き込めなくなります。どんな助けでも大歓迎です!

現在使用しているコードは次のとおりです。

0 投票する
3 に答える
173 参照

pdf-generation - ファイルをコピーする最も安全な方法

2 つの PDF ファイルをマージする必要があります。ただし、ファイルがロックされる場合があります

私はこのコードを書きましたが、それが最も賢い解決策ではないかどうか疑問に思っています:

0 投票する
6 に答える
16463 参照

c# - FileStreamを使用してファイルを保存し、すぐに.NETでロックを解除しますか?

私はPDFファイルを保存するこのコードを持っています。

正常に動作します。ただし、ロックがすぐに解放されない場合があります。そのため、この1回の実行後に関数が実行されると、ファイルロックの例外が発生します。

fs.Close()直後にファイルロックを解除する理想的な方法はありますか?