免费注册 查看新帖 |

Chinaunix

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

关于UPDSRVPGM后立即生效的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-11-20 18:15 |只看该作者
回复 10# passthru


    呵呵

    首先,前提是存在的,即我提出来的问题:service program中的module重新编译后,无法立即生效,这个现象是确实存在的。
  
    其次,我也提出了解决办法:SIGN OFF或者RCLACTGRP

    最后,我对这一问题的产生原因和解决办法,从理论上进行了一些描述,其中有些是red book上的论述,有些是我自己的猜想。

    既然是猜想,对与错都正常。我可没说我一定是正确的,如有误导,纯属不幸啊。。。。。。

    有问题,拿出来大家一起探讨探讨,难道不好么???

论坛徽章:
0
12 [报告]
发表于 2011-11-22 22:03 |只看该作者
我再说说我的疑惑,IBM red book上说:If there are active users of the program when you replace it,

...
niuhua77 发表于 2011-11-18 16:46



    signoff and signin,即使*pgm任然是旧的,即资源没有释放,这是查看joblog,更新srvpgm处在失败状态。相反,如果资源释放,查看joblog,srvpgm已经更新,即*pgm是新的,所调用的*srvpgm是新的。

  这点与你的论点毫无相关。你钻进死胡同了。

论坛徽章:
0
13 [报告]
发表于 2011-11-23 10:06 |只看该作者
signoff and signin,即使*pgm任然是旧的,即资源没有释放,这是查看joblog,更新srvpgm处在失败 ...
passthru 发表于 2011-11-22 22:03



    搞半天原来是资源没释放所造成的,就是实际上楼主说的SRV0在第一次被调用的时候被激活,UPDSRVPGM后,call 程序实际上调用的还是SRV0的前版本,因为之前的资源没有释放. 使用RCLACTGRP是为了释放资源. 我这么理解对吧?

NOTE: The Reclaim Activation Group (RCLACTGRP) command deletes a specified activation group and frees the resources that are scoped to it. (RCLACTGRP删除了一个指定的activation group并且释放被其占用的资源.)

论坛徽章:
0
14 [报告]
发表于 2011-11-23 10:09 |只看该作者
但我们一般会在RPGLE程序后面SETON LR,不就是通过这种方式来让系统回收资源的吗? 难道对Service Program无效? 求真相.

论坛徽章:
0
15 [报告]
发表于 2011-11-23 11:12 |只看该作者
回复 12# passthru

   不讨论我前面写的无聊的话题了,就此打住。。。。。
  
  刚刚试了一下,就昨晚讨论的问题:一个处于活动状态的srvpgm(即已经被激活,还没有释放),经验证是可以更新成功的。

重新编译module:
  Replaced object PASSBY1 type *MODULE was moved to QRPLOBJ.               
  Module PASSBY1 placed in library LIB1. 00 highest severity. Created on  
   23/11/11 at 10:58:16.     

更新srvpmg:
   4 > UPDSRVPGM SRVPGM(LIB1/PASS) MODULE(LIB1/PASSBY1)     
         AUT and USRPRF parameter values were ignored.         
         Replaced object PASS type *SRVPGM was moved to QRPLOBJ.
         Service program PASS created in library LIB1.
         Service program PASS in LIB1 updated.

论坛徽章:
0
16 [报告]
发表于 2011-11-23 11:17 |只看该作者
回复 14# 哥是浮云


    个人人为,seton lr只能回收 变量、文件、*pgm类型的资源,但是无法*srvpgm类型的资源。

    srvpgm被激活后,只能等着它所在的AG被删除了,否则srvpgm不会被释放。

论坛徽章:
0
17 [报告]
发表于 2011-11-23 13:38 |只看该作者
本帖最后由 passthru 于 2011-11-23 13:47 编辑
回复  passthru

   不讨论我前面写的无聊的话题了,就此打住。。。。。
  
  刚刚试了一下,就昨晚讨 ...
niuhua77 发表于 2011-11-23 11:12



    "重新编译module:
  Replaced object PASSBY1 type *MODULE was moved to QRPLOBJ.               
  Module PASSBY1 placed in library LIB1. 00 highest severity. Created on  
   23/11/11 at 10:58:16.     

更新srvpmg:
   4 > UPDSRVPGM SRVPGM(LIB1/PASS) MODULE(LIB1/PASSBY1)     
         AUT and USRPRF parameter values were ignored.         
         Service program PASS created in library LIB1.
         Service program PASS in LIB1 updated."

这个例子是成功updated,就不会出现CCC是原AAA的现象。否则,updated不成功。

论坛徽章:
0
18 [报告]
发表于 2011-11-23 13:53 |只看该作者
本帖最后由 passthru 于 2011-11-23 13:57 编辑
回复  哥是浮云


    个人人为,seton lr只能回收 变量、文件、*pgm类型的资源,但是无法*srvpgm类型的 ...
niuhua77 发表于 2011-11-23 11:17



    如果*pgm的AG是*new,程序调用*srvpgm后,即*srvpgm是*caller,当*pgm结束时,OS立即释放*srvpgm的系统资源。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP