質問: accessのロック 以前も質問したことがあるのですが、再度質問させていただきます。 accessのロックについてです。 windows2003sever + microsoft sql serverのマシンにあるmdbファイルを置いてあります。 これに社内lanでつながっているwindowsxp+access2000マシン10数台が それぞれwindows2003サーバマシンのmdbファイルのテーブルにリンクしているmdbファイル持っていて日々データの閲覧と更新をしています。 その際時々access2000が以下のような以下のようなwindowメッセージを出します。 「現在ロックされているので、更新できませんでした。」 この件で困っております。 いくつか、わかっていることがあります。 ◎windows2003serverのこのmdbにアクセスしている人が多い時にこのメッセージが出るわけではない。使用者が2人でも出るときがある。 ◎同じフィールドへの同時書き込みの場合は他のユーザによって変更されています。。。のようなメッセージが出るので同時書き込みの問題ではなさそうだ。 ◎ロックがかかった場合、接続ユーザーみんなが開いているmdbを閉じて再度開くとロックは解除されている。 ここで質問なのですが、 ・ロックはなぜかかるのでしょうか? ・ロックの回避方法はありますか? 以上、どうかよろしくお願いいたします。
回答: なるほど、少々ややこしいことになっているようですね。 >正確に言うと「現在ロックされているので、更新できませんでした。」 >という表示を出してロックがかかることはありませんでした ここの表現が曖昧なのですが、更新ができてしまっているということですか? 更新ができていなければ、それはロックがかかっているので正常です。 ロックがかからないということは更新できてしまい、 トランザクションの処理がザルということで、これはこれで問題なのですが・・・ >接続ユーザーみんなが開いているmdbを閉じて再度開くとロックは解除されている これはデッドロックが発生しているかもしれませんね。 ロックのかけ方が悪い可能性もあります。 詳細はソフトを作っているところに連絡してテストしてもらって下さい。