• 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语句

                     

                     

                     

                     

                    

    部分实用程序

                              

                                

  • 相关阅读:
    【Android开发】【第三方SDK】蒲公英摇一摇
    【Android开发】URL[] 转成 bitmap[]
    【Android开发】View 转 Bitmap
    【Android开发】Bitmap的质量压缩法
    【Android开发】监听图库数据库的变化
    【Android开发】Android 删除指定文件和文件夹
    【Android开发】安卓炫酷效果集合
    【Android开发】分割字符串工具类
    【初学者必读】能让你月薪过万的5大web前端核心技能
    30款最好的 Bootstrap 3.0 免费主题和模板
  • 原文地址:https://www.cnblogs.com/pangblog/p/3315369.html
Copyright © 2020-2023  润新知