zoukankan      html  css  js  c++  java
  • JCL学习

    JCL基本概念

             定义:job control language 用户与操作系统的接口,用户通过JCL语句按照自己的意图来控制作业的执行。

              JOB的概念:把大机要实现的每一项任务,称为一个JOB或作业。

              作业步的概念(JOB STEP):

                        执行一个作业所要经历的步骤

                        同一个JOB中JOB STEP不能超过255

                        每一个作业步的标志语句是EXEC语句。

               JCL三大功能

                        控制作业的执行。

                        管理系统资源和数据集(类似TSO交互式菜单对数据集的管理。)

                         对COBOL程序编译和执行。

               JCL的重要性:

                        编译作业流和执行作业流都是JCL编写。             

    JCL语法规则

                       JCL允许使用的字符:

                        字母字符(alphanumeric character):A~Z

                        数据字符(numeric character):0~9

                        通配字符(national character):@ # $

                       特殊字符(special character): , . ' '  /  () * & + - = 空格                 

    EBCDIC EBCDIC可打印字符集。
               每一个JCL语句可包含五个区域:
                       标识区(identifier field)
                               告知系统所包含的语句类型,用以语言的种类
                               以//为起始。
                        名字区(name field)
                                必须从第三列开始编写
                                最多八个字符,可用字母、数字、通配字符(@ # $)
                                第一个字符不能是数字,只能是字母或通配字符(@ # $)。
                        操作区(operation field)
                                 表示语句形态,如EXEC语句,其操作项目及为EXEC.
                        参数区或运算区(operand field)
                                  几乎每一个操作符都需要有参数配合使用
                                  可包含一个或一个以上的参数,参数之间以“,”分隔。
                         备注区或说明区(comments field)
                                  注释。不参与语句的执行。
     
                        举例:
                         打印字
                        注意:除了标识区和名字区,各区域之间至少要间隔一个以上的空格。
               ****************************
               参数区参数的四种类型
                         位置参数(position parameter)
                                  用它的位置来描述其特性的一种参数。
                                  两大特点:
                                           1、如果一个操作符含有多种参数,那么位置参数必须位于所有参数之前。
                                           2、位置参数,相互之间不允许调换先后顺序。
                                   位置参数的子参数
                                  
                         关键字参数(Keywork parameter)
                                  简称键字参数,以关键字来描述其特性
                                  特点:一般地,带=都是关键字参数。
                                  两个例外:PGM= PROC=是EXEC语句的位置参数,此外,符号参数也带=,但不是键字参数。
                                  关键字参数之间的顺序可以任意调换
                                 
                         列示参数(list of sub-parameter)
                                   定义:是关键字参数的一种延伸。所有含有子参数的关键字参数都可以称为列示参数。
                                   有位置子参数和关键字子参数两种表现形式:
                                             以位置子参数的形式表现:
                                              例如:DISP=(NEW,CATELOG,DELETE),其中new catelog delete具有位置参数的特性,
                                              所以三者位置不可调换。
                                              以关键字子参数的形式表现:
                                              例如:DCB=(RECFM=FB,LRECL=80),其中RECFM=FB和LRECL=80的顺序可以调换。
                                    
                         符号参数(symbolic parameter)
                                   与其它语言里的“变量”概念类似,并非系统指定的而是程序员自定义(对变量赋值,然后        调用变量)。      
                                   符号参数的三种指定、赋值方式:
                                               set:权限最大,可在过程或JOB里指定符号参数并赋值
                                               proc:只在过程里定义符号参数并赋值
                                               EXEC:在调用过程时,对符号参数赋值(伪覆盖式的)。
                                   在符号参数之前加一个“&”即为表示调用符号参数。
                         
               JCL语句的续行规范:
                        只有JOB EXEC DD proc语句允许续行
                        除comment语句可写至第72列外,其它语句只能写到第71列
                        若语句长度超过它所能允许的列,则必须延续到下一行。
                        在一完整参数后紧接着“,”(必须在第72列之前)
                        下一行第一二列必须为“//”
                         欲续行的参数必须在第4列到第16列之间开始。
               

    JCL语句介绍

              

               JOB语句:

                        用途:定义作业的名称,表示作业的开始。

                        格式://jobname job operands omments

                        规则:每一个作业的第一个语句必须是JOB语句

                                   每一个作业必须有且只有一个JOB语句

                                   job语句中的jobname必须编写,并要符合名称域的编写规则,尽量起有意义的名字。

                       

                        例如:

                       

                     

                       PROC语句

                                定义一段处理过程,可由多个JOB STEP组成

                                过程类似于其它语言里的子程序,它用JCL的语句进行编写,能够完成某种功能但不能被(SUB)执行,只能被作业调用。

                                 分为流内过程和编目过程

                                 流内过程写在一个作业内部,只能被本作业调用。一个JOB里,流内过程最多能建15个。

                                 而编目过程只能以某个PDS或PDSE的member形式存在,可被多个作业调用。

                                 格式://procname PROC  [symbolic parameter]

                                 symbolic  parameter参数传递,要求:参数名称不可重复。

                                 过程中不允许含有如下语句:

                                          JOB、Delimeter(/*)、Null(//)statements

                                          DD *、DD Data Statements

                                          JOBLIB DD Statements

                       PEND语句(与流内PROC搭配使用)

                                只针对流内过程,做为流内过程的结束语句。

                                           以PROC开始,以PEND结束。

                                编目过程无需PEND语句

                                            编目过程放在以PDS或PDSE的member形式存在

                                            以PROC开始,无需PEND语句结束。

                       举例:

                      

                      

                      JOBLIB语句

                                   指定私有的过程库及查找顺序的语句,以备调用编目过程(指定编目过程查找路径的语句)。

                                   格式://       joblib order=(userid.lib1,userid.lib2......)

                      

                      EXEC语句

                     

                     

                      DD语句

                     

                     

                     

                     

                    

    部分实用程序

                              

                                

  • 相关阅读:
    hdu 5646 DZY Loves Partition
    bzoj 1001 狼抓兔子 平面图最小割
    poj 1815 Friendship 最小割 拆点 输出字典序
    spoj 1693 Coconuts 最小割 二者取其一式
    hdu 5643 King's Game 约瑟夫环变形
    约瑟夫环问题
    hdu 5642 King's Order
    CodeForces 631C Report
    1039: C语言程序设计教程(第三版)课后习题9.4
    1043: C语言程序设计教程(第三版)课后习题10.1
  • 原文地址:https://www.cnblogs.com/pangblog/p/3315369.html
Copyright © 2011-2022 走看看