免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6841 | 回复: 6
打印 上一主题 下一主题

欢迎讨论Activation Group(一) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-13 12:52 |只看该作者 |倒序浏览
Activation group(初稿)

一、Activation group的几种类型:
  1)OPM *DFTACTGRP activation group;
  2)命名的activation group;
  3)系统命名的activation group;

二、Activation group创建形式:
  1)OPM activation group创建形式。在OPM程序创建的时候,就采用系统提供的OPM *DFTACTGRP activation group。
  2)ILE activation group创建形式。ILE程序创建的时候,能够根据a)程序H表中设置的键值DFTACTGRP;b)编译参数ACTGRP,这两者设置的不同组合,而产生程序使用上述多种形式之一的activation group。

三、ILE activation group的变化:
    当用CRTPGM 或CRTBNDRPG创建程序,或用CRTSRVPGM创建服务应用程序时,可以指定某值给activation group。当用CRTBNDRPG程序时,只能指定DFTACTGRP(*NO)设置activation group 值。
这个值可以是:
  1)命名的activation group。人为命名的activation group。
  2)编译参数ACTGRP(*NEW)。系统命名activation group。
  3) 编译参数ACTGRP(*CALLER)。程序采用调用程序的activation group。设置这个参数,程序或服务应用程序被调用程序激活进入调用程序的activation group。如果一个ILE程序用ACTGRP(*CALLER)参数创建,在它被一个OPM程序调用后,这个程序被激活,进入这个OPM默认的activation group(*DFTACTGRP)。

四、Activation group占用系统资源与回收
    当一个程序被激活,它的activation group占用使用存储空间、事物控制和打开文件等系统资源。
如果很多ILE RPG程序被激活(至少一次被调用),系统存储空间可能会被耗尽。因此,你应该避免用ILE程序使用大量的静态存储空间,在OPM默认的activation group中运行,因为这些存储空间在作业未结束之前不能被重新回收。
与服务应用程序的关联的存储空间只有在它关联的activation group的作业被结束时才可以被回收。如果这个服务应用程序被调用进入到默认的activation group,当作业结束时,它的资源被回收。

五、Activation group的存在、结束(删除)
  用RCLACTGRP命令删除命名的activation group。
  
  1.OPM *DFTACTGRP activation group:
  当系统的一个作业开始运行,系统会创建一个用于OPM的activation group。这个activation group 标识为*DFTACTGRP。不能删除OPM默认的activation group,只有作业结束,系统才会删除用于这个作用的OPM activation group。
  
  2. ILE 模式的activation group:
一个ILE程序在在下列两种情况下,运行进入OPM activation group:
  1)程序用设置DFTACTGRP(*YES)参数的CRTBNDRPG命令创建的。
  2)程序用ACTGRP(*CALLER)创建,且被OPM程序调用。注意:一个被指定DFTACTGRP(*NO)的程序,用CRTBNDRPG创建,只能指定ACTGRP(*CALLER)编译参数。
直到作业结束,一个被编译参数为ACTGRP(*CALLER),且运行在OPM activation group中程序的资源才会被释放。

    用RCLRSC命令释放不再处于激活状态下的程序的资源。
    如果程序是OPM程序,或创建程序时使用参数DFTACTGRP(*YES),RCLRSC命令将关闭打开的文件,并且释放存储空间。

    对那些采用编程参数ACTGRP(*CALLER),被激活后,进入到OPM默认的activation group的ILE程序,或服务应用程序,在发出RCLRSC命令之后,被打开的文件将被关闭。然而,对程序而言,存储空间将会被重新初始化,但是存储空间不被释放。对服务应用程序来说,存储空间不被重新初始化、不被释放。

    注意:这就意味着,当一个服务应用程序运行在默认activation group方式中,并且保持文件处于打开状态下,在发出RCLRSC命令后,这个服务应用程序被再一次调用,这些被打开的文件还要被打开,任何I/O操作的结果将会表示在一个错误中。
对使用命名activation group的ILE程序来说,用RCLRSC不会发生作用。必须用RLCACTGRP命令去释放这个命名的activation group。

欢迎交流!交流群:17991759,群主:passthru

修改补充内容:

五、Activation group的存在、使用系统内存状态、结束(删除)
    ......
      如果一个程序是用编译参数ACTGRP(*NEW)创建的,当这个程序每次被调用,系统就分配一个系统命名新的的Activation group。当这个程序return后,这个新的Activation group就结束了。
   
    采用默认值,或人为命名的Activation group都是常驻内存的。
    当一个作业被启动,就创建一个默认的Activation group。直到这个作业结束,这个默认的Activation group才随之结束。
    当一个作业首次需要一个人为命名的Activation group时,系统才创建这个认为命名的Activation group。一个正常return的Activation group保持这个Activation group的最后使用状态。系统不会删除这个Activation group。因此,在一个有配置多进程操作的作业中,默认的和系统命名的Activation group的一个正常的return动作不会造成结束这个作业。

    不可处理的一个例外情况:当一个程序进入过程(PEP)超出了它的控制区域,就会造成这个有能力处理多进程的作业结束。
   
    有多进程处理能力的作业,只有在这个作业的初始化进程中,才能用RCLACTGRP命令。如果在次级的进程中用到RCLACTGRP命名,将会出现CPF180B的错误信息。

[ 本帖最后由 passthru 于 2009-4-17 08:47 编辑 ]

评分

参与人数 1可用积分 +10 收起 理由
fairyboy + 10 大哥写的真不错。 目前公司的ERP系 ...

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2009-04-14 17:05 |只看该作者
好贴,最好再讲一下对程序的影响,比如Shared open data path in a common activation group

论坛徽章:
0
3 [报告]
发表于 2009-04-14 22:21 |只看该作者
恩,整理的很详细了。

加分鼓励

论坛徽章:
0
4 [报告]
发表于 2009-04-15 12:12 |只看该作者
上文又补充了一些内容。

论坛徽章:
0
5 [报告]
发表于 2009-04-17 08:45 |只看该作者
Activation group(一)

一、Activation group的几种类型:

  1)OPM *DFTACTGRP activation group;
  2)命名的activation group;
  3)系统命名的activation group;

二、Activation group创建形式:

  1)OPM activation group创建形式。在OPM程序创建的时候,就采用系统提供的OPM *DFTACTGRP activation group。
   当一个作业被启动,就创建一个默认的Activation group。直到这个作业结束,这个默认的 Activation group才随之结束。
  2)ILE activation group创建形式。ILE程序创建的时候,能够根据a)程序H表中设置的键值DFTACTGRP;b)编译参数ACTGRP,这两者设置的不同组合,而产生程序使用上述多种形式之一的activation group。
  
三、ILE activation group的变化:

    当用CRTPGM 或CRTBNDRPG创建程序,或用CRTSRVPGM创建服务应用程序时,可以指定某值给activation group。当用CRTBNDRPG程序时,只能指定DFTACTGRP(*NO)设置activation group 值。

这个值可以是:
  1)命名的activation group。人为命名的activation group。
    当一个作业首次需要一个人为命名的Activation group时,系统才创建这个认为命名的Activation group。一个正常return的Activation group保持这个Activation group的最后使用状态。系统不会删除这个Activation group。因此,在一个有配置多进程操作的作业中,默认的和系统命名的Activation group的一个正常的return动作不会造成结束这个作业。
   一个人为命名的Activation group可以让你管理一个包含所有程序和服务应用程序集合的应用模块。
   QILE是CRTBNDRPG命令的命名的Activation group的默认值。如果,要把程序归集一个应用模块,需把这个参数人为的命名为其它的名字,如,包含这个应用名的名字。

  2)编译参数ACTGRP(*NEW)。系统命名activation group。
    如果一个程序是用编译参数ACTGRP(*NEW)创建的,当这个程序每次被调用,系统就分配一个系统命名新的的Activation group,这个系统命名唯一存在作业中。当这个程序return后,这个新的Activation group就结束了。如果,计划程序在return,且*inLR 为*off之后,程序可重如Activation group,就不能设置这个程序的Activation group为ACTGRP(*NEW)。
    服务应用程序不能使用ACTGRP(*NEW)的Activation group,只能使用一个命名的Activation group,或者调用程序的Activation grup。
注意:ACTGRP(*NEW)是命令CRTPGM的编译参数的默认值。
    用ACTGRP(*NEW)编译参数创建的程序,每次被调用时,都会创建一个程序的拷贝,每个程序拷贝都会有系统命名的Activation group。就是说,每个程序只能通过系统命名的Activation group,唯一的使用本身的系统资源,如,文件、事务控制、存储空间等。

  3) 编译参数ACTGRP(*CALLER)。程序采用调用程序的activation group。设置这个参数,程序或服务应用程序被调用程序激活进入调用程序的activation group。如果一个ILE程序用ACTGRP(*CALLER)参数创建,在它被一个OPM程序调用后,这个程序被激活,进入这个OPM默认的activation group(*DFTACTGRP)。

四、Activation group占用系统资源与回收
    当一个程序被激活,它的activation group占用使用存储空间、事物控制和打开文件等系统资源。

    如果很多ILE RPG程序被激活(至少一次被调用),系统存储空间可能会被耗尽。因此,你应该避免用ILE程序使用大量的静态存储空间,在OPM默认的activation group中运行,因为这些存储空间在作业未结束之前不能被重新回收。

    与服务应用程序的关联的存储空间只有在它关联的activation group的作业被结束时才可以被回收。如果这个服务应用程序被调用进入到默认的activation group,当作业结束时,它的资源被回收。

五、Activation group的存在、使用系统内存状态、结束(删除)
  用RCLACTGRP命令删除命名的activation group。
  
  1.OPM *DFTACTGRP activation group:
  当系统的一个作业开始运行,系统会创建一个用于OPM的activation group。这个activation group 标识为*DFTACTGRP。不能删除OPM默认的activation group,只有作业结束,系统才会删除用于这个作用的OPM activation group。
  
  2. ILE 模式的activation group:
一个ILE程序在在下列两种情况下,运行进入OPM activation group:
  1)程序用设置DFTACTGRP(*YES)参数的CRTBNDRPG命令创建的。
  2)程序用ACTGRP(*CALLER)创建,且被OPM程序调用。注意:一个被指定DFTACTGRP(*NO)的程序,用CRTBNDRPG创建,只能指定ACTGRP(*CALLER)编译参数。

    直到作业结束,一个被编译参数为ACTGRP(*CALLER),且运行在OPM activation group中程序的资源才会被释放。
   
    用RCLRSC命令释放不再处于激活状态下的程序的资源。
    如果程序是OPM程序,或创建程序时使用参数DFTACTGRP(*YES),RCLRSC命令将关闭打开的文件,并且释放存储空间。
    对那些采用编程参数ACTGRP(*CALLER),被激活后,进入到OPM默认的activation group的ILE程序,或服务应用程序,在发出RCLRSC命令之后,被打开的文件将被关闭。然而,对程序而言,存储空间将会被重新初始化,但是存储空间不被释放。对服务应用程序来说,存储空间不被重新初始化、不被释放。
    注意:这就意味着,当一个服务应用程序运行在默认activation group方式中,并且保持文件处于打开状态下,在发出RCLRSC命令后,这个服务应用程序被再一次调用,这些被打开的文件还要被打开,任何I/O操作的结果将会表示在一个错误中。
    对使用命名activation group的ILE程序来说,用RCLRSC不会发生作用。必须用RLCACTGRP命令去释放这个命名的activation group。

    如果一个程序是用编译参数ACTGRP(*NEW)创建的,当这个程序每次被调用,系统就分配一个系统命名新的的Activation group。当这个程序return后,这个新的Activation group就结束了。
   
    采用默认值,或人为命名的Activation group都是常驻内存的。

   
    不可处理的一个例外情况:当一个程序进入过程(PEP)超出了它的控制区域,就会造成这个有能力处理多进程的作业结束。
   
    有多进程处理能力的作业,只有在这个作业的初始化进程中,才能用RCLACTGRP命令。如果在次级的进程中用到RCLACTGRP命名,将会出现CPF180B的错误信息。

论坛徽章:
0
6 [报告]
发表于 2009-04-17 08:51 |只看该作者
Activation group(一)文整理完毕。考虑到还会有其它应用和变化,就写在后续(二)中,放在我的blog中。

passthru.cublog.cn

论坛徽章:
2
丑牛
日期:2014-06-11 13:55:04ChinaUnix元老
日期:2015-02-06 15:16:14
7 [报告]
发表于 2009-04-18 13:33 |只看该作者
写的不错,学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP