タイガー!タイガー!じれったいぞー!(SE編)

AS400,WAS,GlassFish,Java,JavaEE,JSF等の開発における日々の気づきをまとめたブログ(備忘録)。

【AS400】スタートアップ・プログラム

前回は、クリーンアップに関して書きましたが、今回は、スタートアップの話です。
つながりは、まったくありません。しいて言えば「アップ」つながりです。。。

始動プログラムの確認

まずは、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                                            

始動プログラムの変更

たとえば、WASなどの立ち上げを始動時に実施したいケースなどが想定されます。
下記の手順で独自の始動プログラムへ変更可能です。

①復元したCLソースにやりたいことを追加する
②コンパイル(ex:QGPL/QSTRUP)
③WRKSYSVAL QSTRUPPGM にて始動PGMを変更(ex:QSYS/QSTRUP => QGPL/QSTRUP)