トップ
>
サポート
>
設置ガイド
> ファイルロックについて
〜 同時アクセスによるデータファイル破損を防止するファイルロック機能の設定について 〜
(ダウンロードページから移動されてきた方は、「
前のページへ
」で続きをご覧いただけます。)
■ファイルロックとは?
掲示板などのCGIスクリプトは、
複数の訪問者がまったく同時にアクセスする性質
を持っています。例えば、掲示板CGIスクリプトで、「Aさん」という人と、「Bさん」という人とが、まったく同時に掲示板へ書込みをした場合に、掲示板の記録データが壊れてしまう場合があります。
このような問題を防ぐためには、「Aさん」という人が掲示板へ書込みをしている間、「Bさん」のアクセスを一時的に待ってもらう仕組みが必要です。このような仕組みを使い、
記録データが壊れるのを防ぐ処理がファイルロックの役割
です。
■ファイルロック方法について
一般に、「
flock関数によるファイルロック
」と「
mkdir関数によるファイルロック
」のどちらかが使われていますが、現在一般的で信頼性が高いのは、flock関数によるファイルロックです。
当サイトでは、flock関数によるファイルロックを推奨
していますが、一部のサーバではflock関数が使えない場合があります。この場合にはmkdir関数によるファイルロックを使ってください。不明な場合には、サーバ管理者へ問い合わせてください。
なお、flock関数によるファイルロックと、mkdir関数によるファイルロックは次の様な違いがあります。
flock関数によるファイルロックの特徴
ファイルロック処理が早い
信頼性が高い
共有ロックによる効率の良い処理もできる
ごく一部のサーバでは機能しない
mkdir関数によるファイルロックの特徴
ファイルロック処理が遅い
ある程度の信頼性がある
一時的にロックされた状態が続いてしまう場合がある(混雑状態が続いてしまう場合がある)
どんなサーバでも機能する
■ファイルロックの設定が分からない場合は?
できればflock関数が望ましいのですが、不明な場合には、mkdir関数によるファイルロックを設定してください。
■ファイルロックの設定が分からない場合は?
サーバ管理者へ問い合わせていただくか、または当サイトで配布している「
flock検査
」を使って調べることもできます。
flock関数が使えるサーバでは、次の様に表示されます。
■flock関数実行検査結果
◎このサーバは、flock関数が使えます。
■flock関数の引数検査結果
◎flock関数引数の検査に成功しました。
このサーバで有効なflock関数の引数
引数の名前
引数の値
説明
LOCK_SH
1
共有ロック
LOCK_EX
2
排他ロック
LOCK_NB
4
非ブロック
LOCK_UN
8
アンロック
(ダウンロードページから移動されてきた方は、「
前のページへ
」で続きをご覧いただけます。)