昨天学习了实用程序的调用,鉴于时间关系,只实践了IBEGENER的内容,等有时间了再补上。今天学习了流内过程和编目过程的调用,感觉哈好,就是有一点让我很不爽:我写不出复杂点的JCL语句。这个就郁闷了。没办法,慢慢熟悉吧。
[基本概念]
过程 :过程是一段预先编写好的JCL语句的集合,它可以被反复调用.包括编目过程和流内过程.
编目过程 :在指定的过程库中编目的过程.该过程库可以是分区数据集或扩展分区数据集,通常系统过程被编目在系统过程库,用户过程被编目在用户过程库.由于调用编目过程时,系统所提供的是该过程的拷贝,所以一个编目过程可以同时被几个作业调用.
流内过程 : 放置在作业输入流中的过程. 在一个作业中最多可以有15个流内过程. 不能嵌套使用,也不能被其他作业调用.流内过程和编目过程不同,前者随着一个作业放在输入流中,紧跟在JOB语句之后. 一般而言,流内过程只用于测试阶段,一旦测试通过,即可对其进行编目,即转变为编目过程.
[流内过程]
//R123 JOB (456),”SMITH”,CLASS=A#这行 very重要 ,不可漏掉
//RUN PROC# 开始定义一个过程, 此句必须紧跟在JOB语句后面
//GO EXEC PGM=ONE
//SYSOUT DD SYSOUT=A
// PEND# 标志一个流内过程的结束(编目过程不需要此句)
//STEP1 EXEC RUN#调用RUN这个流内过程
[编目过程]
该编目过程存放在ST018.PDS.LIB(PROC1)里面
//RUN PROC# 开始定义一个过程, 此句必须紧跟在JOB语句后面
//GO EXEC PGM=ONE
//SYSOUT DD SYSOUT=A
调用该编目过程的JCL语句写在另外一个文件
//MYJOB JOB ....
//MYLIB JCLLIB ORDER=ST018.PDS.LIB#此步非常之重要,定义一个Private LIB,
//STP1 EXEC PROC=PROC1#开始调用,注意:过程名不是RUN,而是PROC1,即成员名
过程的修改:
[修改DD语句]
//INVOKE EXECTRANSACT
//procstepname.ddname DD parameter=value
说明:
if(procstepname.ddname 不在 parameter.procstepname中)
{
新增DD语句ddname
}
else
{
if(parameter存在于过程中) then 覆盖原来parameter 的值
if(parameter不存在于过程中)then 新增参数
if(value==' ') then 还原参数parameter的默认值
if(被调用过程中存在不是parameter的参数)then 保留那些参数值
}
若要使得DD语句无效,请参照下面格式
//PROCSTEPNAME.DDNAME DD DUMMY
或者
//PROCSTEPNAME.DDNAME DD DSN=NULLFILE
特别提醒: 该做法对BCD参数无效. 如果要连BCD也作用的话, 看下面的格式:
This is a DD statement in a procedure called PSTEP1:
//DD3 DD DSN=MYDSET,DISP=SHR,
// DCB=(RECFM=FB,
// BLKSIZE=160,LRECL=80)
In order to nullify the entire DCB parameter of the DD statement, each DCB keyword subparameter specifiedin the procedure definition must be nullified as shown below:
//PSTEP1.DD3 DD DCB=(RECFM=,BLKSIZE=,LRECL=)
[修改EXEC语句]
//STEPNAME EXEC TRANSACT,PARAMETER.STEPNAME = VALUE
其他的与修改DD语句基本相同.不再累述.
[使用符号参数]
定义符号参数(必须在过程中定义):
//.........,parameter=& A#A是符号
赋值符号参数:
方法一
TRANSACT definition:
//PSTEP1 EXEC PGM=PROG1,
// ACCT=&DEPT1
//PSTEP2 EXEC PGM=PROG2,
// ACCT=&DEPT2
Assigning values to &DEPT:
//JSTEP EXEC TRANSACT,
// DEPT1=GRP50,
// DEPT2=GRP100
方法二
TRANSACT definition:
//PSTEP1 EXEC PGM=PROG1,
// ACCT=&DEPT1
//PSTEP2 EXEC PGM=PROG2,
// ACCT=&DEPT2
Assigning values to &DEPT1:
// SET DEPT1=GRP100
//JSTEP EXEC TRANSACT
小结:
昨天因为某些原因,放纵自己过度,卡丁至深夜不止,今天没爬起来上课,于是串到下午,呵呵.不过总体还算跟上,高兴啊.老师今天还讲了COND参数的使用,因为前面已经整理过了,所以不再累述.
几点需注意的:
1、调用编目过程时,记得加入过程库
2、过程中禁止出现“/*”、“//DDNAME DD *”,否则,我也不知道会怎样
3、请求卷的时候,如果填写的卷不存在,会造成作业占着主机资源不放。解决办法,在TIME里面设置一下应该可以,不过我还没亲自实现过,理论上是这么说的。
PS:各位来我空间的XDJM ,敬请冒个泡,在这里特别点名批评小李,还有达华。。呵呵哈哈^_^
相关推荐
IBM大型机操作系统学习笔记
第一次接触IBM主机,一切都显得很陌生。很多操作跟Windows下的 差别很大,比如mainframe下的回车是右CTRL,而非enter。昨天晚上把第一堂课上过的内容复习下,恩,总体感觉还行。不过比较郁闷的是,现在Windows下的...
很难找到的资料哦~~ 公分六个章节 介绍了IBM大型主机操作系统的有关内容
ibm 小机 操作系统 入门学习
• Linux for zSeries 将 IBM 大型机的优点和 Linux 操作系统的开放标准的灵活性结合起来。简化业务集成 ,快速部署。 • z/TPF– z/Transaction Processing Facility 是大多数客户的大容量交易事务处理平台的首选...
IBM大型主机上课课件1。一个自学IBM的良好媒介
IBM大型机是20世纪60年代发展起来的计算机系统,一台大型机目前售价约为10万美元到1000万美元不等,在欧美国家肩负着银行、保险、证券、通讯等行业的数据与信息处理工作,而且因为其独具的高安全性、高稳定性和强大...
这是一组关于IBM大型操作系统的课件,十分完善,适合初学者借鉴。 1IBM大型服务器系统概述 2-zOS概述 3-zOS的交互工具 4-数据集操作 5JCL和sdsf Unit6 实用程序
IBM大型服务器操作系统概述 os390
IBM虚拟大型主机操作系统ADCD1.9.Install
IBM AIX系统管理学习笔记,非常详细牛逼,DBA可以下载
IBM大型机汇编语言,华南理工大学版本,1预备知识,2I&O,3编程
IBM大型主机相关介绍,大体用途和大概情况。
大型主机实验用的ppt 想学习ibm大型机的 因该有点用
MVS的以后版本,OS/390,不再使用MVS这个名称。因为MVS代表了计算史上的一个特定时代或者说特定文化。但又因为许多旧的MVS系统仍在运行,所以名词MVS可能将在以后的一段时间内继续使用。
IBM大型机资料之DB2,z/OS TSO/E コマンド解説書
主要介绍了大型主机的历史和发展,以及主机的一些基础操作介绍!
IBM主机操作系统使用入门.pdf
IBM培训基地大型机培训资料cobol