先週末の開発-問題点の検証- ~システム開発研究室~


 こんにちは!
 ナビゲータのEVEです。
ソフトウェア開発.jpg
 先週末は、開発中心に活動をしていてそれぞれの実施項目に問題点があったということを前回話しました。今回は、同問題点を整理します。
①Knowlegeシステム
②PHP8におけるバッチ開発検証
③crontabコントロールファイル作成処理

[外部キーを設定する]
 ①のKnowlegeシステムですが、正常に動作させることさえあきらめようかと思いましたが、土曜日に修正を開始したらさほど時間をかけずに、正常(?)に動作させることができました。そこで、早速、外部キーをつけようとしたのですが、できない・・・。理由は、以下の2点です。
①子テーブルの当該項目には、親テーブルの当該項目に対応する値が存在していなければならない
②子テーブルの当該項目がセカンダリキーであるため、同じ値を複数の行で許容します。そのため、外部キー制約のためには子テーブルの当該項目において、同じ値が複数の行で存在している必要があります
まっ、どちらかなのか、両方なのか分かりませんが、データに不整合が発生しているようです。実は、Prototype EVEでは、整合性確認ツールを作って、日々確認していた時期がありました。それは、インターネット上に公開している時期で、公開をやめたぐらいから停止してしまいました。多分ですが、インターネットに公開している時期においては、不整合は確認していないので、それ以降に不整合が発生したのだと思います。
 PHP8になった現在、整合性確認ツールの信頼性が微妙です。一応修正はしたのですが、それを使うのか、新たに以上のバグを検出するため専用のプログラムを作るのか思案中です。
 次期システム、EVEシステムでは、外部キーはデフォルトでつけていく予定です。つけすぎると遅くなるという話もあるので、最低限ということになりますが、この段階で以上のようなことが分かってラッキーだったかもしれません。

[PHP8におけるバッチ開発検証]
 現在外部キーの設定ができないことを確認後、方向性については、じっくり考えるとして、時間がもったいないので、PHP8の環境で、PHPをバッチ処理で動かすことを検討しました。簡単かと思いきや動かない・・・。今まで見たことがないエラーがたくさん出てきます。
①crontabに空白行は入れることができない。
②最終行の後に改行コードを入れないとエラーになる
しかも、動いていない・・・。今まで何本もバッチ処理を作ってきましたが、こんなことはありませんでした。つい最近では、PHP8での環境ですが、XServer上にウイルスソフトを導入し、それをバッチ処理で動かした実績があります。
 原因を調べるために、ログを見ても何も出力されてません。実はこの調査に10時間以上費やしています。

[あとがき]
 近頃、何か問題があると気力がなえる傾向があります。今回のバッチ処理の検証試験でも同様でした。調査に10時間といっていますが、調査というより悶々としている時間って言ったらいいでしょうか?
 ただ、悶々としながらうだうだして、パットひらめいたアイディアで問題は解決しました。続きは明日書くのですが、まっ、単純な話です。気づけばなんだ~ってことになりますが、判明後はショックです・・・。しばらく、動けませんでした
 という続きは明日書きます。
 では、また!!!

コメント