雑記

思ったこと、あれこれ・・・

2003-02-04

排他制御

うちのサイト内に設置してある『トレセン』というCGIゲームですが、(昨年の今頃に)突然『ユーザリストが飛ぶ』というハプニングが頻発するようになりました。
突然頻発し始めた理由は不明ですが、CGIのログファイル(データファイル)が飛ぶ原因は『ファイルへの複数同時書き込み』に他なりません。
『トレセン』の場合IDとパスの認証を『各プレイヤーのデータファイル』では無く『ユーザリストファイル』の読み込みによって行っている為、ユーザリストが飛ぶと誰もログインできなくなり、かなり『致命的』なのです。

通常CGIプログラムのスクリプトにはこの『同時書き込み』を防ぐ為の『ファイルロック(排他制御)』というプログラムが組み込まれています。
排他制御とはつまり、複数が同時に同じファイルにアクセスしようとした場合に『これから私が書き込むから、他の誰も読んだり書いたりしないでね!』と宣言し、一人が書き込んでいる間は他の誰も書き込みができないようにするプログラムです。
ユーザリストが飛ぶというのは、この『排他制御』に問題があるということ。

そこで調査に乗り出しました。
続きを読む

02:30:00 ‖ 1 comment 0 ‖ Category: PC Work