事の深刻さを伝えられないもどかしさ

先日、Office Access 2007 でファイルが消えた事件について報告した。
http://kzworks.at.webry.info/200810/article_22.html

そして、今日の朝一番で、会社のシステム管理者にこの件を伝えておいた。
例の Microsoft のサイトの URL もセットにして。

そしてそして、今日の夕方になって、例のファイルを失った知人から内線電話が入った。
「おい、今日一日、放置プレイをくらったぞ」
システム管理者なんて、色んな仕事を抱えて優先順位もわけが分からなくなっていることが多いから督促しろよと返事をしてさらに小一時間。今度は
「システム管理者の子分が来て、ファイルが消えていると言っているのに聞かずに、一生懸命ファイル検索をして、結局見つけられずに帰っていったぞ」
とあきれ気味の内線電話が入った。

システム管理者の側に、「データベースソフトというものは間違ってもファイルを消すような設計にはなっていない」という先入観があり、そのせいで例の Microsoft の警告文をよく読まずに子分に指示を出したらしい。
というか、accdb が消えるという重大な問題なのに、今日一日、何もせずに放置していたのだから、事の深刻さがまったく管理者に伝わっていなかったらしい。実際にファイルを失った当人だけでなく、予防的な意味で、社の他のユーザーにも何らかの手段で警告を出すべき案件なのだが。

とりあえず身近の人には、「ファイルを閉じる際に最適化するオプション」を使わないようにと口頭で指示をしておいたが、明日以降どうしたものか。
口の利き方を間違えてシステム管理者のご機嫌を損ねるとかえって面倒だし、かといって、自分のファイルだけ無事ならいいやで済む問題でもなし。

とりあえず、大事なことなので、今回の Access 2007 の問題を Microsoft ナレッジベースの kb950812 を元にもう一度ここで説明しておく。

---- ここから ----

Access 2007 で accdb 形式のデータベースを最適化しようとすると、次のようなエラーメッセージが表示されることがある。

Microsoft Office Access can't delete database name.accdb after compacting it. The compacted database has been named Database.mdb.

If you compact a database using the same name, Microsoft Access creates a new compacted database and then deletes the original database. In this case, however, the original database wasn't deleted because it is read-only.

If you can, remove the read-only status, delete the original database, and then rename the new database using the original name.
If you can't remove the read-only status, inform your workgroup administrator.

(今、手元に Access 2007 がないので、このメッセージが日本語でどう表示されるのか分からない。「Microsoft Office Access は~.accdb を最適化しようとしましたが云々」というメッセージになるのだろうか。)

そして、ここで OK をクリックすると、次のようなエラーメッセージが表示される。

Could not find file 'database name.accdb'

(これも、日本語ではどうなるのだろうか。「database name.accdb」が見つかりませんでした」というメッセージだろうか)

そして、元の.accdb と、一時的に作成された最適化済みのデータベース Databasex.mdb がいきなり削除される。

---- ここまで ----

一般的に考えられるデータベースソフトの動作ならば、最適化の途中にエラーが生じた場合、元の .accdb が残って、最適化作業用の Databasex.mdb だけが削除されるはずだ。
それが、元の DB ファイルも、作業中のファイルも両方消えてしまう。それが、今回の問題の肝なのだ。

うちのシステム管理者は、一般的な考えがあったので、逆にまさか .accdb も作業中のファイルも両方消えるとは思っておらず、.accdb が消えても作業中のファイルが残っているだろうと一人で決め付けていたのだろう。

常識に反して、ファイルが両方とも消えてしまう。それが今回の Access 2007 のバグの怖さだ。
そして、忘れてはいけない。この不具合はすでに発見、修正されており、2008年4月16日付のホットフィックスを適用することで回避できる。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

過去3回発生しました。
2009年01月10日 15:23
2003で開発したDB(.mdb)を2007で動作させている時に過去3回同様の事象を確認しています。
この際、まったくメッセージダイアログは出ずに、いきなりPC上から跡形もなく消えました。
かなりCriticalなバグですよね。
kazuzyoshikakihara
2009年01月13日 23:08
ホットフィックスを適用すればいいという話ではあるのですが、色々な事情でそれができない職場もあるのですよね。
...うちもまだだな。困った。

この記事へのトラックバック