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) |