DAブラックホール, 日記

エラーといえば、サポートに上がってくるDAブラックホールの「致命的なエラー」の上位2つが
データベースエラー
である。

  1. 「データベースの不具合があります。- n  サポートにご相談ください。」
    nには -2147467259 が入るケースが多い。その場合はデータベース損傷である。ファイルが壊れているため、システムを再起動したとしても改善することは少ない。
    破損の場所によっては、DAブラックホールの起動そのものができなくなることもある。
  2. 「解析結果のデータベース記録に異常が発生しました。( n ) 解析を中止しますか?」
    nには -2147024882 が入るケースが多い。その場合はメモリ不足またはストレージ不足(HDD/SSD)である。

この2つのエラーは、どちらか一方というよりは、「どっちが先に出やすいか」みたいなところがある。

背景と原因

2000年代前半のDAブラックホールでは、これらのエラーはよく出た。
Jetエンジンを使用していたということもあるが、解析結果の記録に必要なマシンリソースが足りなければ、容易にOSが処理を中断してアプリケーションを強制終了させていたからである。そうなると、何割かの頻度でデータベースファイルに不整合が生じ、結果としてファイルが開けなくなった。
あるいは、処理に必要なメモリが足りなくなって頻繁にスワップが生じ、タイムアウトして強制終了したときは、メモリ不足を表示した後、再起動すると、ファイルまで壊れている、開かないといった順序。
いずれも、必要な処理量に対してPCのマシンリソースが追い付いていないときに、よく起きていた。

これも、2000年代後半になると、PCの価格に対する性能(価格性能比)が向上してきて、標準的なPCであれば、データベースエラーはめったに起きなくなった。
起きたとすれば、旧式なPCでのリソース不足か、ノートPCの排熱不足などシビアコンディションにあるかのどちらかであることが大半だった。

ところが2015年以降から、じわりとではあるがデータベースエラーの報告が増え始めてきた。
当社では再現しない(もう起きない)ので、ユーザーのイベンログを送ってもらったところWindows (8/8.1)/10の Windows Update による強制再起動が原因のひとつとなっていた。

また、「SSDが原因」というケースも見受けられた。
データベースファイルの処理落ちを防ぐためにSSDを用いる、という この一見 優等生的な環境で起きていたのは「肥大したデータベースファイルの放置」によって、データのロード時にメインメモリが足りなくなりエラー停止、あるいはSSDの小柄な領域を圧迫していたということもあった。こちらは、どちらかというと完璧ゆえの油断といえるのかもしれない。


予防方法

Windows Update については防ぎようがないこともあるが、シビアコンディションについては予測や予防が可能であることが多い。

たとえばdablack.accdb のファイルサイズが メインメモリの1/2(半分)を超えないようにすると、ある程度 有効に防げることがわかっている。
とはいえども、いちいち監視はできないと思うので、数カ月から1年に1回程度、ファイルサイズを確認してメインメモリの1/2を超えていないか確認する、というペースで 多くの人は大丈夫なんじゃないかと思う。
もしオーバーしていた(またはオーバーに近づいていた)ときは、DAブラックホールと同時インストールされている
DABHREFL.exe
を使って、余分な領域を削ぎ落すといい。

復旧方法

もしDAブラックホールの起動ができるなら、最も容易な復旧方法は「最新版アップデート」で、データベースごとシステムを再構成することである。この方法であれば、もともとの解析データは
rollback*
というバックアップフォルダに入るので、Microsoft Office Access 2007 以上を用いて開くことができれば、解析データもムダにならないかもしれない。

もしDAブラックホールの起動ができない場合は、残念ながらアンイストール後に再インストールを行うのが一般的である。その際のインストールメディアは、当社ダウンロードサイトから取得した最新のインストーラーを用いることをおすすめする。(最新版で運用していたところに旧式のCDからインストールすると、環境によっては必要なファイルがインストールされないおそれがあるため)

DAブラックホール, 日記

DAブラックホールで連続解析(シーケンサーやインクルード)を前日からまわして、結果を翌日に見よう、という運用はよくある。
だけど、翌日の朝 開いてみたら、昨夜9時ぐらいにエラー停止して、1割ぐらいしか解析終わってなくてアタマをかかえてしまうことがある。

「なんでエラーなんだよ!」と。

でも、これね。

エラーが起きたときはちゃんと停止させないと、解析事故(課金)が 恐い。
仮に課金事故でなくても、エラー停止する以上は 回線かTAに瞬間的にでも「問題」が発生したということである。そのまま解析を続行したとしても「取得したデータの信頼性が損なわれているおそれ」があるんだよね。
そういったこともあって、エラーについては「発生させないセッティング」が第一であることには変わりない。(エラーに至った機序についてはイベントログにも吐き出されているので、読める人はぜひ読んだほうがいい)

とはいえ、切断時間を切り詰め ATコマンドも工夫してカリカリにチューニングしている環境だと、1/10,000の程度のTAのエラーは スルーしてほしいこともある。

そういうとき、リスクや細かい背景は承知の上でなら、解析中に発生するエラーメッセージを表示させない方法はある。

解析する電話番号に 6101 を入れて、その下のDAブラックホールのエンブレムをクリックする。

6101と入力する

すると Yes/Noダイアログが表示される。
エラーメッセージを非表示にする場合は、[はい(Y)]を選択する。

この操作によって、解析で発生するWarning/Nortice/Information レベルのエラーメッセージは表示されなくなる。(表示されないというだけで 問題そのものは存在している点には留意)

一方 CriticalやEmergencyレベルのエラーメッセージは 引き続き表示される。
つまりDAブラックホールが掌握しているレベルのエラーは表示しなくなるけれど、OSが表示するエラー(データベース損傷など)は引き続き表示される、という理解を持ってもらえるといい。

この操作は「通常の解析」(連続解析を含む)のエラーメッセージを対象としており、マルチタップや他の機能のエラーメッセージには影響しない。
もしマルチタップによって発生するエラーメッセージも非表示にする場合は「6102」で同様の操作を行う。

いずれも本来はユーザーサポートから指示があった場合に限って使ってほしい機能ではあるので、使用する場合はある程度の覚悟をもって行ってほしい。


なお、元に戻す方法は、

設定(P)→出荷時の設定に戻す

である。