HTTPサーバーとWeb開発

56. V5R3M0 で CGI の動作が挙動不審に陥ったら ?

OS400リリース V5R3M0 で CGI を何回も動作させているうちに
いきなりあたかも最初のときの操作結果と同じ動作になってしまった。
つまり最初に実行した動作がキャッシュされているかのような挙動をとるようになった。
HTTPサーバーがおかしいのではないかと思う前にDSPPGM コマンドによって
CGI の活動化グループを調べてみよう。

もし活動化グループが 「QILE」などの見慣れない名前になっていたとしたらこれが原因である。
つまり活動化グループが名前つきの活動化グループとなっているためにCGI は、
いわゆるパーシスタント CGI として動作して終了後もメモリ内に留まり続けていたのである。
なぜこのような結果になったというと犯人は IBMである。

V5R3M0 からの CRTPGM コマンドの活動化グループ・パラメータの初期値は
従前の *NEW から *ENTMOD に変更されてしまった。
*ENTMOD のまま気づかずに CRTPGM で CGI を作成すると活動化グループは 「QILE」となってしまう。
V5R3M0 では活動化グループは明示的に *NEW を指定しなければならない。
これは CGI に関してのみならず一般の適用業務についても同じである。
気づかずにそのままコンパイルしていると深刻な事態となる可能性もあるので注意されたい。
IBM にしてもコマンドの省略値を変更することは厳に止めてもらいたいものである。