6.21.WRKSYSSTSの情報を取り出す | |||||||||
ある日気が付けば、ディスクの使用率が95%になっている。ひええええ。監視するソフトはないかなぁ。で、このプログラムです。うまく利用してください。コマンドではなく、CLPになっています。 コメント:
使用API:QWCRSSTS テキストファイル:chksysstsc.txt PGM
DCL &RCV_DTA *CHAR 68
DCL &RCV_LEN *CHAR 4
DCL &FORMAT *CHAR 8 'SSTS0200'
DCL &RESET *CHAR 10 '*YES '
DCL &ERR_BYT *CHAR 4
DCL &ERR_AVA *CHAR 4
DCL &ERR_ID *CHAR 7
DCL &ERR_RSV *CHAR 1
DCL &ERR_MSG *CHAR 100
DCL &ERRDTA *CHAR 116
DCL &AVA_BYTS *DEC (9 0) /*使用可能バイト数 */
DCL &RTN_BYTS *DEC (9 0) /*返されたバイト数 */
DCL &CURDATTIM *CHAR 8 /* 現在の日時 */
DCL &SYSNAM *CHAR 8 /* システム名 */
DCL &ELAPSED *CHAR 6 /* 経過時間 */
DCL &RESTRCT *CHAR 1 /* 制限状態フラグ */
DCL &RESERVE *CHAR 1 /* 予約済み */
DCL &CPUUSED *DEC (9 0) /*使用された処理装置の % 999.9 */
DCL &JOBSNBR *DEC (9 0) /*システム中のジョブ数 */
DCL &ADRPRM *DEC (9 0) /*永続アドレスの % 999.999 */
DCL &ADRTMP *DEC (9 0) /*一時アドレスの % 999.999 */
DCL &SYSASP *DEC (9 0) /*システム ASP */
DCL &ASPUSED *DEC (9 0) /*使用されたシステムASP% 999.9999 */
DCL &AUXTOL *DEC (9 0) /*合計補助記憶域 */
DCL &CURUNPRO *DEC (9 0) /*使用されている現行の非保護記憶域 */
DCL &MAXUNPRO *DEC (9 0) /*使用された最大非保護記憶域 */
DCL &ASPUSEDD *DEC (9 4)
MONMSG CPF0000
/*--------------------------------------*/
/* MAKE AN ERROR STRUCTURE */
/*--------------------------------------*/
CHGVAR %BIN(&ERR_BYT) 116
CHGVAR %BIN(&ERR_AVA) 0
CHGVAR &ERRDTA (&ERR_BYT||&ERR_AVA||&ERR_ID||&ERR_RSV||&ERR_MSG)
/*--------------------------------------*/
/* PREPARATION */
/*--------------------------------------*/
CHGVAR %BIN(&RCV_LEN) 68
/*--------------------------------------*/
/* API */
/*--------------------------------------*/
CALL QWCRSSTS (&RCV_DTA &RCV_LEN &FORMAT &RESET &ERRDTA)
/*--------------------------------------*/
/* CHECK ERROR */
/*--------------------------------------*/
IF (%BIN(&ERRDTA 5 4) *NE 0) DO
GOTO TEND
ENDDO
/*--------------------------------------*/
/* DATA */
/*--------------------------------------*/
CHGVAR &AVA_BYTS %BIN(&RCV_DTA 1 4)
CHGVAR &RTN_BYTS %BIN(&RCV_DTA 5 4)
CHGVAR &CURDATTIM %SST(&RCV_DTA 9 8)
CHGVAR &SYSNAM %SST(&RCV_DTA 17 8)
CHGVAR &ELAPSED %SST(&RCV_DTA 25 6)
CHGVAR &RESTRCT %SST(&RCV_DTA 31 1)
CHGVAR &RESERVE %SST(&RCV_DTA 32 1)
CHGVAR &CPUUSED %BIN(&RCV_DTA 33 4)
CHGVAR &JOBSNBR %BIN(&RCV_DTA 37 4)
CHGVAR &ADRPRM %BIN(&RCV_DTA 41 4)
CHGVAR &ADRTMP %BIN(&RCV_DTA 45 4)
CHGVAR &SYSASP %BIN(&RCV_DTA 49 4)
CHGVAR &ASPUSED %BIN(&RCV_DTA 53 4)
CHGVAR &AUXTOL %BIN(&RCV_DTA 57 4)
CHGVAR &CURUNPRO %BIN(&RCV_DTA 61 4)
CHGVAR &MAXUNPRO %BIN(&RCV_DTA 65 4)
CHGVAR &ASPUSEDD (&ASPUSED / 10000)
IF (&ASPUSEDD >= 85) DO
この例では、85%以上のディスク使用率で、このDO文が実行されます。メッセージなど出しましょう。 ENDDO TEND: RETURN ENDPGM |
|
You are at K's tips-n-kicks of AS/400
|
|
|||
|
|