RPG-CGIでweb化しているのですが、デバッグする際WRKACTJOBでみたとき下記のように表示されているものをオプション5でみて番号をみてAPACHEDFT QTMHHTTP BCI .0 PGM-QZSRCGI TIMW STRSRVJOB JOB(xxxxxx/QTMHHTTP/APACHEDFT)などとうってからSTRDBGしています。それが毎回面倒なのでCLを作成してコマンド化できればとおもってるのですがCLでRTVJOBAでとれそうなかんじはしたのですが、PGM-QZSRCGIの番号まで指定してとることはできるのでしょうか
残念ながらできません。一般の HTTPサーバー(Apache も含めて) では、CGI がどのプロセスで起動されるかは、全く、不定です。従って動作させてみて初めて、起動プロセスのJOB番号を知ることができます。IBM 解説書では JOB番号を予め特定するためには子プロセスの数を 1個だけに限定して HTTPサーバーを起動するように解説されていますが、これは次の理由によって適切ではありません。 ・本稼動の子プロセスを一個だけに絞ることは実用上できない。 ・ブラウザは、必ずしも1対1 で子プロセスと会話するのではなく、 フレームや画像ファイルが含まれている場合は、複数(2個) の Socket を使って、複数(2個) の子プロセスと通信する仕様となっている。上記のように、この解説者はブラウザや HTTPプロトコルの仕様を理解できていません。しかしAlaska では、この問題は解決されています。開発者は、JOB番号を特定することなく、いつでも任意にソース・ディバッガーを使用することもできます。また仮想端末として起動しているJOB もディバッグすることができます。これは Alaska に、その機能を持たせているからです。ただし一般のHTTPサーバーのユーザーでも、この問題には非常に不便を感じているはずですので何らかの方法を現在、検討しているところです。とり急ぎの回避策としては CGI に DSPLY 命令を入れるのも,ひとつの手です。CGI はバッチとして動作していますので DSPLY 命令は QSYSOPR に表示されます。この方法もお試しください。