【Perl】ファイルロック(排他処理)について語ろうat PHP【Perl】ファイルロック(排他処理)について語ろう - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト245:nobodyさん 02/08/04 22:48 >>244 一度flock以外のロックで試してみれば? こういうのが問題を切り分けるって事じゃないのか。 246:230 02/08/05 01:30 データのどこで切れるかが重要。 1.flockが利かない場合は、まるっと新規発言が記録されないか、書 き込みの後のtruncateで半端な位置で切られるわけで、それぞれの 発言内容の量にさほど違いが無いなら、48~50発言目くらいの後ろ の方で切れるはず。 2.新規発言の処理に問題あるなら、unshiftで入れた1発言目(あとで 気が付いたなら数発言目)で切れるが、その後ろの発言まで消える事 は無い。 3.書き込みが全面的に失敗し、書き込まれて無いのに切り詰めれば ログ丸ごと消える。(ずっとあとになって気が付けば36発言目になっ てたりするが) というわけで、36発言目で切れるなら問題は 1.読み込み(my @lines=<DB>) 2.書き込み(print DB @lines) 3.切り詰め(truncate(DB, tell(DB))) の3個のどれかが失敗してると考えられるよね。それぞれ失敗時には エラーにしないと。で、これらが失敗する原因は、メモリ使用量や ディスク容量の制限、あるいはサーバの混雑にありそう。 途中まで書き込んでprintが失敗してるんなら、tempファイル式にす るしか無いけど、まずは上記の対策してから。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch