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

2013年(15)

2012年(17)

2011年(17)

2010年(135)

2009年(85)

2008年(18)

分类: 系统运维

2008-09-12 10:55:17

利用DLYJOB命令进行RPG ILE程序连调

 

在大型项目开发中,由于项目都是划分为多个模块进行相对独立开发。在项目后期进行模块间的连调阶段中,程序之间的测试参数传递,是连调过程中的一个非常重要环节。比如,比较好的项目设计实现中可以采用

callp(项目参数DS:模块参数DS:程序参数DS)模式

因此,模块程序间的连调,人工在命令行键入传递参数,就成为一项不现实的工作。

这里介绍利用delay命令进行RPG ILE程序连调技巧。

我们先回顾对RPG程序debug的步骤:

1)   strdbg

2)    切换到命令行,对debugRPG进行调用:

Call RPGPGM(参数串)

    在模块程序连调的时候,只有在上级调用程序驻留内存的时候,strdbgcall rpgpgm才会起到调试的作用。否则,就会失效。

    在利用400系统命令DLYJOB(秒)进行连调时,把上级调用程序调用关系由指向rpgpgm,改为调用一个CL程序。

    CL程序(CLPGM)组成:

     DLYJOB60 //60秒的延长时间

      call rpgpgm(参数串)

60秒的延长时间内,通过wrkactjob命令,查看CLPGM是否被驻留内存,如果被驻留内存,说明这个CL程序已经被调用。正处在dlyjob状态中。这时,把光标移动到这个绿屏记录下(wrkactjob屏中),按F11功能键两次,会出现jobnameusernamejobnumber三个信息。记录下这三个数据。立即用STRSRVJOB命令,填入上面说的这三个数据,进行启动。接着,在命令行键入strdbg,进入debug环境,设置debug断点。一旦CL程序结束dlyjob命令后,调用rpgpgm,就可以对RPG程序进行带参数的调试。

    设置延长时间,可以根据实际情况,进行设置合适的秒数。

    这种400下连调方式的原理:

    Hold jobq,
    STRSRVJOB,
    STRDBG program down the stack
    release jobq

 

    DLYJOB的作用是Hold jobq。DLYJOB时间结束就是释放jobq,进入rpgpgm的调用。

 

    这种方式同样适用于submitjob,出现'MSGW'的debug。

 

阅读(1881) | 评论(0) | 转发(0) |
0

上一篇:ovrdbf的典型用法

下一篇:QUALIFIED DS解释

给主人留下些什么吧!~~