• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

AS/400 BATCH JOB运行异常后自动电话报警监控的实施

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 52次 | 进入软件测试论坛讨论

领测软件测试网
忍痛割爱、无私奉献! :D 

==========================================================

[size=18:5b45c038a2][color=blue:5b45c038a2][b:5b45c038a2]AS/400 BATCH JOB运行异常后“自动电话报警”监控的实施过程[/b:5b45c038a2][/color:5b45c038a2][/size:5b45c038a2]

——系统配置、程序开发以及报警后维护

[b:5b45c038a2]★本地环境:[/b:5b45c038a2]

●IBM AS/400 270e 、OS/400 V5R2M0

●基于AS/400上使用的外置同步MODEM (U-336E Plus 56K Data/Fax Modem)、AS/400 0348 V.24通讯线、支持0348 V.24通讯线接口的AS/400内置插卡

●2部电话线路,1部接在AS/400 MODEM上,1部接在被呼叫的监控电话上

[b:5b45c038a2]★系统的配制:[/b:5b45c038a2]

1.用CFGDSTSRV创建DISTRIBUTION QUEUE和ROUTING TABLE .

A.在*SELECT处输入1 后执行.

B.按F6创建一个DISTRIBUTION QUEUE.  TYPE 必须为*SNADS.











 qingzhou 回复于:2004-09-26 16:08:28
续1...






 qingzhou 回复于:2004-09-26 16:10:29
C.在*SELECT处输入2 后执行.

D.按F6创建一个ROUTING TABLE , 建立的ROUTING TABEL 必须和上面建立的QUEUE NAME 对应.











 qingzhou 回复于:2004-09-26 16:11:54
2.用WRKDIRE 创建一个DIRECTORY ENTRY.(USER PROFILE 用已经有的一个用户 )






 qingzhou 回复于:2004-09-26 16:14:51
3.用WRKCTLD 创建一个CONTROLLER DESCRIPTION.
其中:
CATEGORY OF CONTROLLER 设定为*APPC.
LINK TYPE 为*IDLC.
REMOTE NETWORK INDENTIFIER 设定为APPN. 
RMTCPNAME和RMTSYSNAME设定为前面建立的SYSTEM 名.
CNNNBR 为电话号码. 
INITIAL CONNECT 设定为*DIAL .
SWITCHED LINE LIST 用后面建立的LINE 来设定.

综合以上CL命令:

[u:7eebc4a570]CHGCTLAPPC CTLD(BAI) ONLINE(*YES) APPN(*NO) SWTLINLST(IBMAS) CODE(*EBCDIC 
 ) MAXFRAME(512) RMTNETID(APPN) RMTCPNAME(TRFTEST) DIALINIT(*LINKTYPE) CNN 
 NBR('83972806') PREDIALDLY(6) REDIALDLY(120) DIALRTY(0) SWTDSC(*YES) DSCT 
 MR(300 300) STNADR(C4) POLLPTY(*NO) POLLLMT(0) OUTLMT(*POLLLMT) CNNPOLLRT 
 Y(7) NDMPOLLTMR(*CALC) AUTOCRTDEV(*ALL) CMNRCYLMT(2 5) MSGQ(*SYSVAL) TEXT 
 ('TRF Passthrough Controler')     [/u:7eebc4a570]











 qingzhou 回复于:2004-09-26 16:17:10
续3...











 qingzhou 回复于:2004-09-26 16:19:13
续3...











 qingzhou 回复于:2004-09-26 16:20:52
4.用CRTDEVAPPC 命令创建一个DEVICE DESCRIPTION.






 qingzhou 回复于:2004-09-26 16:22:31
5.用CRTLINSDLC 创建LINE DESC 其中RESOURCE NAME 用WRKHDWRSC 来确定(CMN0?→V.24 Port).











 qingzhou 回复于:2004-09-26 16:23:50
续5...






 qingzhou 回复于:2004-09-26 16:25:56
[b:8439084f0e]★报警后维护步骤:[/b:8439084f0e]

1.报警的实施方法:
报警是通过判定如果按正常情况在某个时间BATCH JOB程序没有运行到某个程序即说明BATCH JOB出了问题需要确认.

2.在JOB SCHEDULE 中追加程序程序以实现定时检测是否运行正常. 由于程序的运行时间和数据的多少有关,所以SCHEDULE运行时间要比正常运行的完成时间长20分钟以上,以避免因数据量多、程序运行时间长而错误报警,具体时间可以根据实际需要来设.






 qingzhou 回复于:2004-09-26 16:27:46
3.当发生报警后系统应作以下处理,否则下次BATCH JOB出错时不再报警.

A.用WRKCTLD 命令把应用到的CONTROL  VARY OFF (本地系统是BAI) 

B.用WRKDSTQ找到QUEUE,然后把该队列(TRFTEST)的送信文件DELETE.











 qingzhou 回复于:2004-09-26 16:31:49
[b:436102eeb2]★程序开发:[/b:436102eeb2]

1.CLP程序呼叫固定电话实现报警。

CLP NAME:TRFpager

[code:1:436102eeb2]*************** Beginning of data *****************
/**************************************************/
/* PROGRAM ID. : TRFpager                                                         */
/*                                                                                                 */
/* DESCRIPTION : BATCH JOB ERROR PAGER                               */
/* CREATED BY  : liu yuanyao                                                      */
/* MODIFIED BY :                          .   .                                         */
/**************************************************/
PGM
 
DCL        VAR(&FLG) TYPE(*CHAR) LEN(1)
DCL        VAR(&JOB) TYPE(*CHAR) LEN(10)

CALL       PGM(AAILDA)   
 
CHGVAR     VAR(&FLG) VALUE(' ')
CALL       PGM(*LIBL/CHGSUB) PARM(&FLG)
   
IF COND(&FLG *EQ '1') THEN(DO)
   
VRYCFG CFGOBJ(IBMAS) CFGTYPE(*LIN) STATUS(*OFF)
   
VRYCFG CFGOBJ(BAI) CFGTYPE(*CTL) STATUS(*OFF)
   
VRYCFG CFGOBJ(BAI) CFGTYPE(*DEV) STATUS(*OFF)
   
VRYCFG CFGOBJ(IBMAS) CFGTYPE(*LIN) STATUS(*ON)
   
VRYCFG CFGOBJ(BAI) CFGTYPE(*CTL) STATUS(*ON) +
  RESET(*YES)
   
VRYCFG CFGOBJ(BAI) CFGTYPE(*DEV) STATUS(*ON) +
  RESET(*YES)
   
STRSBS SBSD(QSNADS)
MONMSG MSGID(CPF1010)
SNDNETF FILE(RRBACK/RRF2000) TOUSRID((TRFTEST TRFTEST))
ENDDO  
   
END:      
RETURN      
ENDPGM      
****************** End of data **************************************[/code:1:436102eeb2]


2.RPG程序根据本地ERP系统BATCH JOB环境来编写,其访问的PF文件EXECTL在"补充说明"中有定义.
RPG NAME:CHGSUB

[code:1:436102eeb2]********** Beginning of data ***********************
FEXECTL  IF  E K        DISK
F            EXECTL KRENAMEEXECTR
I*  
C*  
C           *ENTRY PLIST
C PARM           FLG     1
C*  
C**  
C           KEY KLIST
C KFLD           ID     10
C KFLD           SEQ     30
C*  
C MOVEL'DAILYA'  ID
C*** Z-ADD710       SEQ
C Z-ADD420       SEQ
C           KEY CHAINEXECTR               90
C           *IN90 IFEQ '0'
C           SDATE IFNE 0
C           STIME ANDNE0
C MOVEL'0'       FLG
C           *IN90 IFEQ '0'
C           SDATE IFNE 0
C           STIME ANDNE0
C MOVEL'0'       FLG
C ELSE
C MOVEL'1'       FLG
C ENDIF
C ENDIF
C*  
C SETON                     LR
************* End    of    data ***************************
[/code:1:436102eeb2]

 qingzhou 回复于:2004-09-26 16:49:12
[b:8bdd59fef0]★补充说明:[/b:8bdd59fef0]

1.CLP程序中:

CALL  PGM(AAILDA) → 本地ERP系统环境ON LINE结束后“初始化数据区域”;

2.RPG程序中:

EXECTL → BATCH JOB中所定义的PF文件;
Z-ADD710 / Z-ADD420 → 表示根据BATCH JOB 的SEQ 号来判断系统运行到此时的当前状态;

3.本地EXECTL这个PF文件的定义如下:

[code:1:8bdd59fef0] Columns . . . :    1  71           Browse                     LIBRARY/QDDSSRC 
 SEU==>                                                                  EXECTL 
 FMT A* .....A*. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7  
        *************** Beginning of data ************************************* 
0001.00      A* EXECUTION CONTROL FILE *                                        
0002.00      A          R EXECTL                    TEXT('EXECUTION CONTROL FIL 
0003.00      A            JOBID         10          COLHDG('JOB ID.')           
0004.00      A            EXESQ          3S 0       COLHDG('EXECUTION SEQUENCE' 
0005.00      A            PGMID         10          COLHDG('PROGRAM ID.')       
0006.00      A            PNAME         30A         COLHDG('PROGRAM/JOB NAME')  
0007.00 YM   A            EDATF          8S 0       COLHDG('EFFECTIVE DATE FROM 
0008.00 YM   A            EDATT          8S 0       COLHDG('EFFECTIVE DATE TO') 
0009.00 YM   A            SDATE          8S 0       COLHDG('LAST START DATE')   
0010.00      A            STIME          6S 0       COLHDG('LAST START TIME')   
0011.00 YM   A            TDATE          8S 0       COLHDG('LAST TERMINATE DATE 
0012.00      A            TTIME          6S 0       COLHDG('LAST TERMINATE TIME 
0013.00      A            TMSSG         50          COLHDG('TERMINATE MESSAGE') 
0014.00      A            STATS          2S 0       COLHDG('STATUS')            
0015.00 YM   A            MDATE          8S 0       COLHDG('MAINTENANCE DATE')  
0016.00      A            MTIME          6S 0       COLHDG('MAINTENANCE TIME')  
0017.00      A*                                                                 
0018.00      A          K JOBID                                                 
0019.00      A          K EXESQ                                                 
        ****************** End of data ****************************************[/code:1:8bdd59fef0] 

4.该方法同样适用于拨打手机进行报警方式,只需将系统配置的第3步骤中监控电话号码改为手机号码即可。

 magket 回复于:2004-09-26 22:11:27
好详细,什么时候研究一下.呵呵.
谢谢,收下先.

 ANTENTER 回复于:2004-09-27 09:11:11
qingzhou=好同志:)

 qingzhou 回复于:2004-09-27 09:17:03
豁出去了。。。 :twisted:  :twisted:  :twisted:

附以前发表的相关链接:

<【分享】如何实现直接从AS/400发送信息到指定的邮箱.>
[url]http://bbs.chinaunix.net/forum/10/20040722/372109.html[/url]

<通过Navigator配置实现PC端拨号登陆远程AS/400.>
[url]http://bbs.chinaunix.net/forum/10/20040716/368463.html[/url]






 hsiang_wang 回复于:2004-09-27 12:32:30
高!

 hnxjy 回复于:2004-09-27 12:56:43
:D 好东西!一直是在苦苦思考的东西!感谢 :P 兄弟!

 aeiou 回复于:2004-09-27 22:09:28
看见它俺就不由自主的想拿电话。
当年常常凌晨4、5点钟被400打电话叫醒,然后跑去公司处理问题!

这个东西不一定在JOBSCDE里设置,可以在程序里监控,遇到某种错误信息时就打电话。

 qingzhou 回复于:2004-09-28 09:53:17
[quote:c94b0e5254="aeiou"]看见它俺就不由自主的想拿电话。
当年常常凌晨4、5点钟被400打电话叫醒,然后跑去公司处理问题!
这个东西不一定在JOBSCDE里设置,可以在程序里监控,遇到某种错误信息时就打电话。[/quote:c94b0e5254]
是的,可以将CALL PGM(TRFpager)穿插在具体应用当中,可起到实时报警作用。
目前在我公司是采用“手机短信”方式监控,同样也可以穿插在各个BATCH JOB当中实时监控运行状态,这样不会让人感觉常常半夜三更电话突然响起的恐惧感,很容易犯职业病。
吃碗IT饭真是不容易,累啊。。。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网