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

部分实用程序

JCL学习的更多相关文章

  1. Hibernate学习之——搭建log4j日志环境

    昨天讲了Hibernate开发环境的搭建以及实现一个Hibernate的基础示例,但是你会发现运行输出只有sql语句,很多输出信息都看不见.这是因为用到的是slf4j-nop-1.6.1.jar的实现 ...

  2. java web学习总结(六) -------------------servlet开发(二)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  3. servlet 学习(二)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  4. javaweb学习总结(六)——Servlet开发(二)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  5. javaweb学习之Servlet开发(二)

    javaweb学习总结(六)--Servlet开发(二) 一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个< ...

  6. java web 学习六(servlet开发2)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  7. javaweb学习总结(六)——Servlet开发(二)(转)

    转载自 http://www.cnblogs.com/xdp-gacl/p/3763559.html 一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文 ...

  8. canvas学习笔记,实用知识点总结(上)

    本博客是本人日常学习笔记,作为重要知识点的总结记录,随笔风格可能更倾向于个人的学习习惯和方式,若对您有帮助十分荣幸,若存在问题欢迎互相学习探讨,前端小白一枚在此恭候. 一.基本使用规则 1.创建画布 ...

  9. JavaWeb学习 (六)————Servlet(二)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

随机推荐

  1. Xamarin.Android开发实践(五)

    原文:Xamarin.Android开发实践(五) 一.服务的生命周期 服务与活动一样,在它的整个生命周期中存在着一些事件,下图可以很好解释整个过程以及涉及到的方法: 在真实的使用中,Service来 ...

  2. 轻松搞定Linux端口转发

    一 从一台机到另一台机端口转发 启用网卡转发功能 #echo 1 > /proc/sys/net/ipv4/ip_forward 举例:从192.168.0.132:21521(新端口)访问19 ...

  3. BZOJ 1600: [Usaco2008 Oct]建造栅栏

    1600: [Usaco2008 Oct]建造栅栏 Time Limit: 5 Sec  Memory Limit: 64 MB Description 勤奋的Farmer John想要建造一个四面的 ...

  4. CoreAnimation —— CALayer

    概述 如上篇博文讲述,UIView中封装了很多系统方法,可以满足我们的大部分需求.但是,其也有很多限制.那些方法产生的动画基本单元为UIView,是非常重量级的对象,而且也不支持三维布局,大部分是对视 ...

  5. java字符串输出

    package mytest; public class Mycode { public static void main(String[] args){ String[]seasons = {&qu ...

  6. cURL实现get、post请求

    1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL 的一些高级特性 ...

  7. Codeforces 489C Given Length and Sum of Digits...

    m位长度,S为各位的和 利用贪心的思想逐位判断过去即可 详细的注释已经在代码里啦~ //#pragma comment(linker, "/STACK:16777216") //f ...

  8. javaScript 网页特效 输出语句

    大家好,我是小强老师,今天主要讲解 三个最为常用的输出语句.  alert() 弹出警示框 window.alert(‘继续学习’);  完整的写法 效果如下: 因为alert 属于window 对象 ...

  9. phpMyAdmin 手动输入数据库服务器IP

    1 在phpMyAdmin安装目录下查找config.inc.php,如没有则拷贝config.sample.inc.php为config.inc.php 2 修改config.inc.php,加入$ ...

  10. poj 2356鸽笼原理水题

    关于鸽笼原理的知识看我写的另一篇博客 http://blog.csdn.net/u011026968/article/details/11564841 (需要说明的是,我写的代码在有答案时就输出结果了 ...