a.6. 2000年問題 其の陸 |
不要プログラムの検索で、孤児となったファイルの検索をしていて、気づいたこと。 以下は、ツールでは、「孤児」と判定されたが、実は親がいたか、そもそも「孤児」でいいものでした。
大体は、目論見どおりに、いくのですが(8割くらい)、上記のような例外(2割くらい)が出てきて、完全ではありませんでした。でも、その他多くは、確かに使用されていないものでした。 また、FNDSTRPDMでは、コメントの消し忘れで、ヒットしてしまうコメント内のファイル名があった。 上に出てきたものは、多分、ああそういえば、と皆さんも思い当たることがあるでしょう? ソースやオブジェクトの整理方法は、結局次のようにしました。
そして、不要なオブジェクトやソースメンバーは、NOTUSED(ソースの上書きに注意)に、また、一時使用のオブジェクトやソースメンバーはTMPUSEDに移しました。オブジェクトはMOVOBJ、ソースはCPYSRCFとRMVMの複合です。これをPDMのオプションにセットして、要らないものを2つのライブラリーにまとめました。不要なものでも、いきなり消さないほうが、安全です。また次に、気をつけるべきは、オブジェクト記述内のソースファイルやソースメンバー名を使うときです。今存在するファイルをリネームして、新しくファイルを作成したら、その古いファイルも、新しいファイルも、同じソースファイル、同じソースメンバー名です。オブジェクト記述内のソースの変更日付が、ソースメンバーの変更日付と違うだけです。うっかり、私は不要オブジェクトを整理するとき、オブジェクト記述から変更日付を検査しないで、ソースファイル、ソースメンバー名を取り出したので、本番ソースまで不要対象となってしまい、慌てました。 それから、「無いよな」と思いつつも、ソースが見つからないオブジェクトを、オブジェクト記述から検索しました。中には、テストライブラリーのソースもあり(ないと思ったのだが)、仕方なく、オブジェクト記述からソースファイル、ソースメンバー名を取り出し、ありうるソースライブラリーを片っ端から(といっても4つくらい)で、CHKOBJをして、すべてCPF9815でおかしいものを、DSPOBJDでOUTFILEに書き出し(もちろん*ADDで)、あとでそのファイルを、QRYで出しました。結構ソースメンバーが見つからないオブジェクトがあることに驚きました。元々System38からAS/400への移行のとき、全リコンパイルしたので、ソースの無い物はないはずなのですが(自分が全リコンパイルをしたので、自信があった)、6年もたつと出てくるのですね。実際は、もう不要なものばかりでした。消し忘れにご注意!テストで使って、使用回数をあげておきながら、実際はソースだけ消して、プログラムだけ残ったようです。 この、プログラムの整理が完了したら、次には、日付フィールドを持つファイルを探し出します。これも、ボリュームとの戦いとなります。フィールド名が、標準化されていれば、まだしも、自分がこの会社に入る前の古いシステムでは、フィールドを数字の連番にしているものがあります。自分は、ニーモニックに、フィールド名に意味を持たせています。みんな共通ならいいのに。 続く... |
You are at K's tips-n-kicks of AS/400
|
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||