前回は、クリーンアップに関して書きましたが、今回は、スタートアップの話です。
つながりは、まったくありません。しいて言えば「アップ」つながりです。。。
始動プログラムの確認
まずは、AS400(V7R1)の始動プログラム設定を確認してみました。システム値「QSTRUPPGM」にて設定されているようです。
DSPSYSVAL SYSVAL(QSTRUPPGM)
DSPSYSVAL結果
システム値の表示 システム値 . . . . . . : QSTRUPPGM 記述 . . . . . . . . . : 始動プログラム 始動プログラム . . . . . . . : QSTRUP 名前, *NONE ライブラリー . . . . . . . : QSYS 名前 続行するには,実行キーを押してください。 F3= 終了 F12= 取り消し
上記の QSYS/QSTRUP は、デフォルトの始動プログラムのようで、実際にはServerセットアップ時にカスタマイズされるケースが多いようです。
始動プログラムのソース
それでは、始動プログラムでは何をやっているのだろう?という話になります。
RTVCLSRCコマンドにて、CLのソースを復元できるようです。CLPソースの復元を参考にさせていただきました。
RTVCLSRC PGM(QSYS/QSTRUP) SRCFILE(QGPL/QCLSRC)
QGPL/QCLSRC QSTRUP
PGM DCL VAR(&STRWTRS) TYPE(*CHAR) LEN(1) DCL VAR(&CTLSBSD) TYPE(*CHAR) LEN(20) DCL VAR(&CPYR) TYPE(*CHAR) LEN(90) VALUE('5770-SS1 (C) COPYRIGHT- IBM CORP 1980, 2009. LICENSED MATERIAL - PROGRAM PROPERTY OF IBM') QSYS/STRSBS SBSD(QSERVER) MONMSG MSGID(CPF0000) QSYS/STRSBS SBSD(QUSRWRK) MONMSG MSGID(CPF0000) QSYS/RLSJOBQ JOBQ(QGPL/QS36MRT) MONMSG MSGID(CPF0000) QSYS/RLSJOBQ JOBQ(QGPL/QS36EVOKE) MONMSG MSGID(CPF0000) QSYS/STRCLNUP MONMSG MSGID(CPF0000) QSYS/RTVSYSVAL SYSVAL(QCTLSBSD) RTNVAR(&CTLSBSD) IF COND((&CTLSBSD *NE 'QCTL QSYS ') *AND (&CTLSBSD *NE- 'QCTL QGPL ')) THEN(GOTO CMDLBL(DONE)) QSYS/STRSBS SBSD(QINTER) MONMSG MSGID(CPF0000) QSYS/STRSBS SBSD(QBATCH) MONMSG MSGID(CPF0000) QSYS/STRSBS SBSD(QCMN) MONMSG MSGID(CPF0000) DONE: QSYS/STRSBS SBSD(QSPL) MONMSG MSGID(CPF0000) QSYS/RTVSYSVAL SYSVAL(QSTRPRTWTR) RTNVAR(&STRWTRS) IF COND(&STRWTRS = '0') THEN(GOTO CMDLBL(NOWTRS)) CALL PGM(QSYS/QWCSWTRS) MONMSG MSGID(CPF0000) NOWTRS: RETURN CHGVAR VAR(&CPYR) VALUE(&CPYR) ENDPGM
- IBM Infomation Centerを確認しましたが、ほぼ同一のソースとなっていました。
始動プログラムの変更
たとえば、WASなどの立ち上げを始動時に実施したいケースなどが想定されます。
下記の手順で独自の始動プログラムへ変更可能です。
①復元したCLソースにやりたいことを追加する ②コンパイル(ex:QGPL/QSTRUP) ③WRKSYSVAL QSTRUPPGM にて始動PGMを変更(ex:QSYS/QSTRUP => QGPL/QSTRUP)