最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

6.21.WRKSYSSTSの情報を取り出す

[ Previous ] [ HOME ] [ Upper ] [ Next ]


ある日気が付けば、ディスクの使用率が95%になっている。ひええええ。監視するソフトはないかなぁ。で、このプログラムです。うまく利用してください。コマンドではなく、CLPになっています。

コメント:

このままだと、一回しか検査しないので、このプログラムを修正して、30分おきくらいにループをするようにしたらどうでしょう?NEP、つまりは常駐モニターを作ることになります。

使用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

[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送