Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1298675
  • 博文数量: 287
  • 博客积分: 11000
  • 博客等级: 上将
  • 技术积分: 3833
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-16 08:43
文章分类
文章存档

2013年(15)

2012年(17)

2011年(17)

2010年(135)

2009年(85)

2008年(18)

分类: 系统运维

2009-04-23 09:21:58

RPGIV编程问题百解(12)服务程序AG重置后,MCH3402信息排除
 
问题:
 
现象描述:
   一套程序运行在QILEMAIN AG中;服务应用程序运行在QILESRV AG中。
为了避免无效的文件读取,在服务应用程序中加了如下代码:
  if p_Parm <> prvParm;
    read file;
    prvParm = pParm;
  endif;
 
    然而,一个使用静态值作为不同选项操作的终端用户发现,他要改变某选项,但是不能改变。
我试图用RCLACTGRP命令释放QILESRV AG,重新设置服务应用程序,以便在下一次调用服务应用程序时,能够读取文件数据。
 
    然而,其它主程序调用服务应用程序时,发生了MCH3402错误信息返回错误(Tried to refer to all or part of an object that no longer exists)。我不想重新释放QILEMAIN AG,重新设置环境参数,因为还有其他用户在使用交互式应用程序。
 
    哪位有什么方法?我可以用于如下操作:
    1)排除MCH3402信息发生原因;
    2)强迫其他用户重置他们的参数。
 
回答:
    产生MCH3402信息,是刷新设置目标间的连接链路。第二服务应用程序的调用就恢复正常。
 
      重置A后
      第一次 Call pgm -> MCH3402
      第二次 Call pgm -> working properly
 
问题环境补充:
    这个应用环境是把一些程序运行参数放在pf文件中,终端用户可以在运行程序前,从这个pf众多的参数中进行选择,设置好运行参数。
 
其它提示:
    为了避免这个偶发性文件读取数据错误,是否可以把程序改为:
    If ( %Parms() >= 10 And p_Reset ) Or  // p_Reset is boolean
       ( p_Parm <> prvParm ) ;
       read file ;
       prvParm = pParm ;
    EndIf;
阅读(775) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~