免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: LLee
打印 上一主题 下一主题

FYI: 如何確保OBJTYPE:*CTLD的狀態為ACTIVE? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-10-27 20:37 |只看该作者

FYI: 如何確保OBJTYPE:*CTLD的狀態為ACTIVE?

再次修改程式為可 "自動 (unattended) 判斷 *LIN / *CTL / *DEV 的狀態並保持該狀態為 ACTIVE" 如下:

1. 建立 Table (Physical File):

  1.     CREATE TABLE your_lib_name/CFGL
  2.       (TYPCDE CHAR(1) NOT NULL,
  3.        OBJNME CHAR(10) NOT NULL,
  4.        PRIMARY KEY(TYPCDE, OBJNME)
  5.       )
复制代码


 其中 TYPCDE 的定義為:

  1.     '1' = *LIN ; '2' = *CTL ; '3' = *DEV
复制代码


2. 利用 STRSQL 或 UPDDTA 輸入欲監控的資料, 例如:

  1.     INSERT INTO your_lib_name/CFGL
  2.       VALUES('3', 'QPADEV000B')
复制代码


3. 編輯CL source:

  1.      100              PGM        PARM(&SEC)                     
  2.      200                                                         
  3.      300              DCL        VAR(&SEC) TYPE(*DEC) LEN(6 0)   
  4.      400              DCL        VAR(&OBJTYP) TYPE(*CHAR) LEN(10)
  5.      500              DCL        VAR(&STSCDE) TYPE(*DEC) LEN(5 0)
  6.      600              DCLF       FILE(*LIBL/CFGL)               
  7.      700                                                         
  8.      800              MONMSG     MSGID(CPF0000)                  
  9.      900                                                         
  10.     1000  NEXT:       RCVF                                       
  11.     1100                                                         
  12.     1200       /* IF EOF IS DETECTED */                          
  13.     1300                                                                  
  14.     1400              MONMSG     MSGID(CPF0864) EXEC(DO)                  
  15.     1500              DLYJOB     DLY(&SEC)                                 
  16.     1600              TFRCTL     PGM(*LIBL/CHKCFGSTS) PARM(&SEC)           
  17.     1700              ENDDO                                                
  18.     1800                                                                  
  19.     1900       /* CONVERT 'TYPCDE' TO APPROPRIATE OBJECT TYPE: */         
  20.     2000       /*     '1' = *LIN                                                             */         
  21.     2100       /*     '2' = *CTL                                                            */         
  22.     2200       /*     '3' = *DEV                                                           */         
  23.     2300                                                                  
  24.     2400              IF         COND(&TYPCDE *EQ '3') THEN(CHGVAR +      
  25.     2500                           VAR(&OBJTYP) VALUE('*DEV'))            
  26.     2600              ELSE       CMD(IF COND(&TYPCDE *EQ '2') THEN(CHGVAR +
  27.     2700                           VAR(&OBJTYP) VALUE('*CTL')))            
  28.     2800              ELSE       CMD(IF COND(&TYPCDE *EQ '1') THEN(CHGVAR +
  29.     2900                           VAR(&OBJTYP) VALUE('*LIN')))            
  30.     3000              ELSE       CMD(GOTO CMDLBL(NEXT))                     
  31.     3100                                                                    
  32.     3200       /* RETRIEVE STATUS CODE OF CFGD */                           
  33.     3300                                                                    
  34.     3400              RTVCFGSTS  CFGD(&OBJNME) CFGTYPE(&OBJTYP) STSCDE(&STSCDE)
  35.     3500                                                                    
  36.     3600       /* IF OBJ IS NOT FOUND */                                    
  37.     3700                                                                    
  38.     3800              MONMSG     MSGID(CPF9801) EXEC(GOTO CMDLBL(NEXT))     
  39.     3900                                                                    
  40.     4000       /* CHECK CFGD STATUS IS 'VARY ON PENDING' OR 'RCYPND' */     
  41.     4100                                                                    
  42.     4200              IF         COND(&STSCDE = 20 *OR &STSCDE = 80) THEN(DO)
  43.     4300              VRYCFG     CFGOBJ(&OBJNME) CFGTYPE(&OBJTYP) +         
  44.     4400                           STATUS(*OFF) ASCVRYOFF(*YES)            
  45.     4500              DLYJOB     DLY(20)                                    
  46.     4600              VRYCFG     CFGOBJ(&OBJNME) CFGTYPE(&OBJTYP) STATUS(*ON)
  47.     4700              GOTO       CMDLBL(NEXT)                              
  48.     4800              ENDDO                                                
  49.     4900                                                                    
  50.     5000       /* CHECK CFGD STATUS IS 'VARY OFF' */                        
  51.     5100                                                                    
  52.     5200              ELSE       CMD(IF COND(&STSCDE = 0) THEN(DO))         
  53.     5300              VRYCFG     CFGOBJ(&OBJNME) CFGTYPE(&OBJTYP) STATUS(*ON)
  54.     5400              GOTO       CMDLBL(NEXT)
  55.     5500              ENDDO                  
  56.     5600                                    
  57.     5700        /* OTHER STATUS ARE IGNORED */         
  58.     5800                                               
  59.     5900              ELSE       CMD(GOTO CMDLBL(NEXT))
  60.     6000                                               
  61.     6100              ENDPGM                           
复制代码


4. 編譯程式:

  1.     CRTCLPGM PGM(your_lib_name/CHKCFGSTS) SRCFILE(your_lib_name/QCLSRC)
复制代码


5. 執行程式(迴圈 cycle 以六分鐘為例):

  1.     SBMJOB CMD(CALL PGM(CHKCFGSTS) PARM(X'F000360F')) JOB(CHKCFGSTS)
复制代码

论坛徽章:
0
12 [报告]
发表于 2004-10-27 22:13 |只看该作者

FYI: 如何確保OBJTYPE:*CTLD的狀態為ACTIVE?

很好,有上进心...

对于由于网络不稳定而造成AS/400网卡自动关闭情况,我前几天认真思考了一下,除了用以前很传统的方法:

"首先使用命令ENDTCP结束TCP/IP服务器,再使用命令WRKLIND先VARY OFF埠再VARY ON,最后使用命令STRTCP重新启动TCP/IP服务器。"

解决这个问题外,还可以采用如下更快捷的处理办法:

★在OS/400命令行执行WRKMSG QSYSOPR,如果网卡被自动关闭,它会在QSYSOPR这个系统MSGQ里面显示一条需要用户回答的消息,找到这条信息后执行R=retry即可自动恢复.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP