大型机学习之具体技术之-JCL练习(五)-过程的定义与使用

原创 2007年09月26日 18:44:00

《大型机学习之具体技术之-JCL练习五-过程的定义与使用》

 

和其它高级语言一样,作业控制语言中也允许定义过程。过程是一段预先编写好的JCL

语句的集合,它可以被反复调用。作业控制语言中定义了两种过程,分别是编目过程

 cataloged procedure)和流内过程(in-stream procedure)。

 

编目过程与流内过程 

    在指定的过程库中编目的过程称为编目过程。该过程库可以是分区数据集或扩展分区数据集,通常系统过程被编目在系统过程库中,用户过程被编目在用户库中。由于调用编目过程时,系统提供的是该过程的拷贝,因此一个编目过程可以同时被几个作业调用。

    流内过程是放置在作业输入流中的过程。在一个作业中最多可以有 15 个流内过程,但不能嵌套使用,也不能被其他作业调用。流内过程与编目过程的区别是流内过程随着一个作业放在输入流中,它紧跟在 JOB  语句后面而不是作为分区数据集的成员。在实际应用时,流内过程只用于测试阶段,一旦流内过程调试成功,即可对其进行编目,使其能够成为编目过程。

 

l     过程的编写 

一个过程可由几个作业步组成。在过程中可以包含除下列语句外的所有JCL 语句:

调用过程的 EXEC 语句(一个过程不能调用另一个过程)   

JOB 语句、/*语句或//语句   

JOBLIB DD语句或 JOBCAT DD语句   

任何的 JES控制语句   

DD *语句或 DD DATA 语句 

 

流内过程的开始和结束分别用 PROC 语句和 PEND 语句表示,对于编目过程,不能有

PEND 语句,而如果没有分配给符号参数默认值,PROC 语句是可选的。过程的结构如下:

//过程名   PROC  [符号参数]

//过程步 1  EXEC

//dd 1   DD

        

        

        

//过程步 2  EXEC

//dd 2   DD

        

        

        

//        PEND      (仅在流内过程中使用)

 

过程结构中的过程名、过程步名及 dd 名的书写规则与 JCL 中其它语句名的书写规则一样。  符号参数的功能类似于其它编程语言子程序中的形式参数。

例:流内过程

    //MYJOB  JOB   2216,82,TEST RUN,CLASS=A

    //RUN  PROC

    //GO   EXEC  PGM=ONE

    //SYSOUT  DD  SYSOUT=A       

    //       PEND

    //STEP1  EXEC  RUN

本例中RUN是一个流内过程,作业中名为 STEP1 的执行语句调用这个流内过程。该

流内过程在去掉 PEND 语句后也可以作为标准的过程放在用户库中,作为编目过程。

 

l     过程的调用

过程的调用有如下两种方式:

    //作业步名  EXEC  PROC=过程名  [符号参数]

  //作业步名  EXEC    过程名            [符号参数]

当调用一个过程时,系统会以输入流、用户库、系统库的顺序来检索所要调用的过程

如果所调用的过程是流内过程,则必须把流内过程放在调用它的EXEC 语句之前。

如果调用的编目过程被编目在用户库中,系统从JCLLIB 语句确定的用户库中进行检索。

因此,若调用的过程是用户库中的过程时,要用JCLLIB 语句来指明过程所在的用户库。如

果调用的编目过程被编目在系统库中,系统从 JES2  中的PROCLIB 参数指定的系统库进行

检索。

 

l     过程的修改

由于不同用户的要求不同,所以当某一个作业调用标准过程时,系统应允许用户对过程进行修改,以满足自己的需要。过程修改的方式有如下三种:

1)置换过程中的符号参数;

2 )对过程中的EXEC DD 语句参数进行覆盖和增加;

3)增加新的DD 语句。

 

 1 符号参数

 符号参数由符号“&”和参数名组成,参数名可以是以字母或通配符开头的1~8 位字母数字或通配符,关键字参数和关键字子参数不能作为符号参数的参数名。符号参数为修改过程提供了可选用的方法。

 当过程中含有符号参数时,每一个符号参数必须指定一个值或赋空值,该值被称为符号参数的初值。

 下面是一个使用符号参数的例子:

     1//RUN   PROC     PROGRAM=ONE,UNIT=SYSDA

          //GO    EXEC      PGM=&PROGRAM

          //A     DD       UNIT=&UNIT,SPACE=(TRK,20)

 在本例中符号参数PROGRAMUNIT 都被赋了初值。当一个作业调用该过程时,这些

符号参数的初值可以被调用该过程的 EXEC 语句中的符号参数值所取代,从而达到修改过 程的目的。

下面是调用例 1 过程的例子:

     2//JOB1    JOB  

          //GO   EXEC    RUN,UNIT=TEMP

          //     PROGRAM=TWO

 

 2 EXEC 语句参数的覆盖和增加

EXEC   语句调用过程时,该语句的所有关键字参数都会影响过程的执行,它将覆盖过程中定义的参数,对于过程中没有定义的参数,系统会把它加到过程中去。用 EXEC              语句修改过程的方式如下:

         //stepname   EXEC     过程名,参数.过程步=

 其中“参数.过程步=值”表示准备对过程中所希望的过程步的关键字参数进行修改。

 例如有下述过程:

         //RUN    PROC

         //STEP1   EXEC    PGM=P1

 

                 ·

         ·

 

          //STEP2     EXEC     PGM=P2

                  ·

 

                  ·

 

          //STEP3    EXEC    PGM=P3,TIME=(2,30)

 若要求对 STEP2 增加COND 参数并指定条件测试为(8,GT),对STEP3 改变其时间限

制为4 秒。那么调用该过程时,EXEC 语句为:

          //GO   EXEC     RUN,

          //     COND.STEP2=(8,GT),

          //     TIME.STEP3=4

 

 3 DD 语句参数的覆盖

 对于过程中DD 语句参数的修改可以通过下列方式:

          //过程步名.DD   DD      

“过程步名.DD 名”用来确定要修改的DD 语句,其中“DD 名”指需要修改的DD

句,“过程步名”指过程重要修改的 DD 语句所在的过程步的名字。下面是对过程中 DD 句进行修改的例子:

     例://RUN     PROC

                ···

          //S1   EXEC …

                ···

          //SYSUT2     DD    SYSOUT=*

                ···

          //        PEND

                ···

          //TEST2    EXEC    RUN,…

                ···

          //S1.SYSUT2     DD    SYSOUT=S

 4 增加新的DD 语句

 对于调用的过程,可能不包含用户需要的 DD           语句,这是可通过下列方法来增加新的DD 语句:

         //过程步名.需增加的DD 语句

 其中过程步名是确定新加的DD 语句在过程中的位置。

 

大型机操作系统-TSO的操作方法

最近项目接触了大型主机下程序设计,修改银行系统里最核心的部分。在与大型主机进行交互的时候,经常用到的就是TSO,下面是一些基本操作。 〇、基本按键 Ctrl:确认键。注意不是回车键Enter,回车键E...
  • aspnet2002web
  • aspnet2002web
  • 2013年03月31日 21:36
  • 4980

JCL 基础知识--mainframe大型机学习

JCL(job control language) (类似UNIX下的shell语言)是批处理作业的用户与操作系统的接口 。   作业(作业步1,作业步2,……,作业步n),作业步1……作业步n...
  • benbende123
  • benbende123
  • 2014年12月31日 13:06
  • 1893

oracle存储过程初学实例

认识存储过程和函数  存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块。但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以...
  • qq_37057095
  • qq_37057095
  • 2017年08月04日 11:05
  • 371

sql 存储过程 入门级 练习

sql 存储过程 入门级
  • samuel_zhang_
  • samuel_zhang_
  • 2015年08月20日 10:16
  • 2171

什么是大型机和小型机

小型机具有区别PC及其服务器的特有体系结构,还有各制造厂自己的专利技术,有的还采用小型机专用处理器,比如美国Sun、日本Fujitsu(富士通)等公司的小型机是基于SPARC处理器架构,而美国HP公司...
  • lhl6688
  • lhl6688
  • 2015年02月05日 17:10
  • 987

BootStrap应用实例学习笔记

第二次学习bootstrap了,这次主要以实际用例为主,做一下总结。51CTO课程链接:BootStrap零基础学习实战视频课程Bootstrap官方文档1. 登陆表单在bootstrap中,大量使用...
  • geekun
  • geekun
  • 2016年05月05日 19:09
  • 1765

PMBOK第五版过程、过程组和知识领域的通俗性概述

按PMBOK(项目管理知识体系指南)第五版的定义,项目管理过程是为创建预定的产品、服务或成果而执行的一系列相互关联的行动和活动;过程可归纳为五类,即五大项目管理过程组。      启动过程...
  • joeyon
  • joeyon
  • 2014年12月05日 11:10
  • 809

浅谈AlphaGo背后所涉及的深度学习技术

转自:http://www.199it.com/archives/449359.html 导读:关于Alfa Go的评论文章很多,但真正能够与开发团队交流的却不多,感谢Alfa Go开发...
  • liuyukuan
  • liuyukuan
  • 2016年10月28日 16:41
  • 2258

物理层及数据通信基础

物理层(Physical Layer)是计算机网络OSI模型中最低的一层。物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。简单的说,物理层确保原始...
  • why_still_confused
  • why_still_confused
  • 2016年06月15日 20:23
  • 1128

数据恢复工具winhex使用教程

数据恢复分类:硬恢复和软恢复。所谓硬恢复就是硬盘出现物理性损伤,比如有盘体坏道、电路板芯片烧毁、盘体异响,等故障,由此所导致的普通用户不容易取出里面数据,那么我们将它修好,同时又保留里面的数据或后来恢...
  • fengyie007
  • fengyie007
  • 2013年12月27日 19:48
  • 1281
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:大型机学习之具体技术之-JCL练习(五)-过程的定义与使用
举报原因:
原因补充:

(最多只允许输入30个字)