お客さんのところへ直出。昨日、障害が発生したということで、その対応。ハードコピーを見た限りでは、DB接続のロックがまずいっぽい。予想としては、共有ロック→排他ロックの変更でいけるはず。


いざ現地に着き、環境を再現して、ステップ実行。これができるからVBは楽でいい。VBはダメとかいってる奴は、生産性の向上という観点を全く無視してると思う。それはさておき、手順を進めていると見事に再現。これはラッキー。ちゃんと再現してくれれば、対処は楽なものだ。


まずはロック方法を変更してみる。ところが、全くダメ。ではカーソルセットを変えてみる。これもダメ。組み合わせてみたり、処理のの順序を変えたりするが、やはりダメ。困った。


そのうち、エラーが発生するのは特定のタイミングであることに気づく。データが悪いのかも知れないと思って調べると、ビンゴ。全く同じ内容のデータが2件入っていた。主キーはオートナンバーで振られるので、同一内容でも登録されてしまうが、その後の処理で重複してこけてしまっていた。修正しようとすると規模が大きくなるので、特に対処はせず。そもそも、そういったデータは本来絶対入ってこないはず。さらにその後に判明したのだが、どうやら人為的ミスで重複データが混入したらしい。やれやれだぜ。


それから飯食ってのんびり会社に帰ると、もうあんまり時間が無い。実は先日、事業部のグループウェアが切り替わり、タイムカード機能がなくなって困っていた。そこで、ちょっと勤怠管理のVBSでも作ることにする。その日最初の実行だったら、日付と時間をテキストに書き込む。2度目以降の実行だったら(テキスト内に今日の日付がなければ)時間を書き込む。小一時間ぐらいで完成。よくわからない部分があったのでロジックがちょっとかっこ悪い。テキストを読みながら書き込むってできないんだろうか?読み取りモードで開いて、閉じてから追記モードにするってスマートじゃないな。動いてるからまあいっか。


定時に脱出して、久しぶりにゲーセンに行くと、レバーがダメダメでムカつく。それに輪をかけて自分の動きがダメダメでさらにムカつく。ちょっと間あけるとほんとに動けなくなるなぁ。