WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:アクセスログのデータが消えてしまう

0:[投稿] Gグリッド [2004/11/26 05:29 ][環境:IE6,WIN XP perl]

よろしくお願いします。

自分のHPでアクセスログをとっているのですが、まれにデータファイルが消えてしまいます。
ファイルロックはflockで、プロバイダーはニフティですが、掲示板で調べたところ、flockは使えるとされていました。

実際のコードは、読み込みが
open(FILE, "<$LOGNAME.dat") or printErrorPage("記事ファイルが開けません。");
eval{ flock(FILE, 1) };
@DATA = <FILE>;
close FILE;

書き込みが
open(FILE, ">$LOGNAME.dat") or printErrorPage("記事ファイルが開けません。");
eval{ flock(FILE, 2) };
print FILE @DATA;
close FILE;

です。

いろいろ調べて、ロックとは別なところでデータファイルがトラブッているような気もするのですが、よく分かりません。
コード全文を載せるのはどうかと思うのですが、もし仮にロック以外が原因だとすると、まずどのようなところをチェックすればいいのでしょうか。
アクセスログ以外のCGI(カウンター、掲示板、チャット等)でデータが消えたてことは、今のところありません。
また、コードを何度も読み直したので、コードの進行中にバグで配列がとんでしまうことはないと思います。

お手数ですが、ご指導をお願いします。


1:[回答] 森田 [2004/11/26 07:24 ]

ぱっと見、flockできなかった時の処理が書かれていない気がします。
あと、アクセスログのようなものは、一度配列に入れたりせずに、
追記でopenした方が良いと思います。


2:[回答] 森田 [2004/11/26 07:40 ]

間違いました。
http://tohoho.wakusei.ne.jp/wwwperl2.htm#flock
多分、ここの説明にある1つ目の間違いではないかと。

読み込みと書き込みのロックを分けずに、全体にロックをかけた方が良いように思いました。


3:[保留] Gグリッド [2004/11/27 14:40 ]

森田さん、ありがとうございます。

http://tohoho.wakusei.ne.jp/wwwperl2.htm#flock

昨日からアクセスしようとしているのですが、つながりません。
googleで「とほほ」を検索してみたのですが、http://tohoho.wakusei.ne.jpでもだめです。

サイト自体がトラブッているようなので、少し待ってみます。

とりあえず、途中経過をご報告して、回答状態を「保留」にします。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World