| 居士 回复于:2004-06-07 13:06:18
|
搞编程的朋友们过来讨论一下啊
看有无好的办法
|
| qingzhou 回复于:2004-06-07 15:12:33
|
这个要看具体硬件的关键程度。。。
如果一些比较严重的硬件故障(随时造成宕机危险),液晶面板会亮黄灯,同时会有出错代码显示;
如果不是很关键的硬件有小毛病,我们可以通过编程来截获系统的MSGQ,通过LOG LEVEL作为判断标准向用户报中断模式消息或者发送邮件等等。
|
| 居士 回复于:2004-06-08 09:30:43
|
xuguopeng的意思是想用程序来负责监控,就不用我们管理员参与了。
qingzhou说的通过监控安全级别90级以上的消息的方法是可行的。还有没有别的什么方法了?
大家讨论~~
|
| xuguopeng 回复于:2004-06-08 09:46:03
|
我希望是写一个程序监控设备的状态(如果能提取CPU使用情况更好),如果有问题了就写到一个PF里去,并记录更改情况。如果每天都要QSYSOPR这个MSGQ里去找的话,天啊,眼都绿了~
|
| qingzhou 回复于:2004-06-08 09:57:11
|
用程序去拦截安全级别较高的报警信息,没有说叫你去QSYSOPR人为的一个个找啊~~~
如果这样做法,那跟常规做法没什么区别,那就不叫“监控”了。。。
|
| xuguopeng 回复于:2004-06-08 10:01:50
|
哦~ 那只能截取到报警信息,但是并不能区分是关于什么的报警信息
|
| qingzhou 回复于:2004-06-08 10:09:29
|
要具体显示报警信息也可以的,比较麻烦些,当我们知道常见的一些故障显示哪条代码时,然后针对这个信息代码(CPA****)“翻译”成自己的语言,那就一目了然了。
比如:备份Library时的CLP
[code:1:1362621101]
PGM PARM(&MSG)
DCL VAR(&MSG) TYPE(*CHAR) LEN(50)
SAVLIB LIB(TEST) DEV(TAP01) ENDOPT(*UNLOAD) +
DTACPR(*YES)
MONMSG MSGID(CPF0000) EXEC(DO)
CHGVAR VAR(&MSG) VALUE('ERROR OCCURED WHILE SAVLIB')
ENDDO
END: RETURN
ENDPGM
[/code:1:1362621101]
实现[系统自动监控]这块是比较有难度的事情,有时头都弄晕了。
|
| xuguopeng 回复于:2004-06-08 10:38:13
|
这样的监控我知道,我的意思是说写个程序常拄在系统里面,按照你的思路可以监视QSYSOPR这个MSGQ,这样才能实时的监控啊
|
| qingzhou 回复于:2004-06-08 10:45:54
|
把程序提交在QBATCH子系统下运行,可以实现对系统的自动监控。
|
| qingzhou 回复于:2004-06-08 10:47:05
|
另外,OS/400系统提供了一个叫QWCRSSTS的API函数,该函数功能就可以提取用WRKSYSSTS命令看到的系统状态信息,还可以提取更多的用WRKSTSSTS命令看不到的一些其他系统信息。可以在RPG、C、CL等程序里调用该API以获取系统信息。该函数的详细使用说明可以参看《System&API&Reference》这本书。
|
| qingzhou 回复于:2004-06-08 10:49:52
|
设计一个显示文件,把QWCRSSTS获取到的系统状态信息,比如系统ASP使用率、CPU使用率、系统出现Message进程数,都显示出来,我们就实现了一个系统状态信息的监视工具。
|