CL

91. CLPのコンパイルは権限 *ALL で実行

<CRTCLPGM, CRTBNDCL, CRTCLMOD, … コンパイルのためのコマンドはたくさんあるが
いずれの場合でも

    権限 ............. *ALL

に変更してからコンパイルすることをお勧めする。
AUTパラメータの省略時は *LIBCRTAUT であるが、弊社では数十年前よりコンパイルは
すべて 権限(AUT) を *ALL に変更してコンパイルしている。
あまりにも当たり前になっているのでテクニックとは思えなかったほどである。

これは製品である以上、ユーザーの制限を行わないことはもちろんのことであるが
何故だか S/38 のころより *ALL でコンパイルするように、あるIBM SE から
強く勧められていたせいもある。

最近、非常に影響のあることが判明したのでここに紹介する。
それはシステム値

QALWOBJRST オブジェクト復元可能オプション

である。

ある海外輸入ソフトウェア製品は、この値を *ALL に変更してから導入するようにガイドがあった。
自分のソフトウェアを導入させるのにシステム値の変更が必要だとは、
けしからん製品であると感じたのだが、その QALWOBJRST*ALL 以外に設定しておくと
AUT: *ALL 以外でコンパイルしたプログラムはオブジェクトの復元(RSTLIB, RSTOBJ , …) からは
除去されてしまうようである。

それは確かに大問題になってしまう。
AUT : *ALL でコンパイルしていれば、このような問題は発生しない。
逆にシステム値を変更してくれ、という海外製品は開発グループがこのことを知らないということになる。
となれば危うい製品である。

このような不用意なトラブルを避けるためにも

コンパイルは *ALL で !!