CICSS390讲议.docx
《CICSS390讲议.docx》由会员分享,可在线阅读,更多相关《CICSS390讲议.docx(26页珍藏版)》请在冰豆网上搜索。
CICSS390讲议
CICS则是对主操作系统的进一步扩充,它帮助主操作系统把一类特殊的应用程序(既ONLINE应用程序)同其它应用程序分离开来,对ONLINE应用程序进行控制,为执行ONLINE应用程序提供相应的环境,并作为ONLINE程序同各种文件和数据库产品的接口。
OS/390
MVS
VSE+CICS
VM
下图展示CICS同操作系统和ONLINE应用程序的关系:
2.2、CICS系统的三个重要概念:
在CICS系统中,TRANSACTION、TASK、以及程序是三个重要的基本概念。
一、程序(PROGRAM)
程序就是系指在宿主语言中使用CICS命令进行I/O操作的可加载模块。
有时也将程序成为联机程序,或CICS程序。
例如:
在ES/9000上的宿主语言,ASSEMBLE、COBOL、PL/I、C等等。
二、TRANSACTION
每一个TRANSCATION都必须被赋一个TRANSACTIONINDETIFIFIER,或称为:
TRANSACTIONID。
它由4位代码组成。
终端用户在终端上键入这4位的代码,如X999、DJMP、XXS1等就能启动相应的事物处理。
这4位代码的命名极其有关的其它信息都是由JCL在编译时由用户设定的。
一个交易包括:
1)从用户终端接收一个Message或Data
2)进行DB的处理3)返回一个结果给用户
见下面的JCL:
****NOTE:
THEJCLSTART****
Thisisaauto-procedure'sJCLintheES-9000
Therearealocationthatmustbealtered:
Inthepromptthatyoucanselect8(compile)toauto-procedure
aJCL'sfile.thenyoualtertheitem.
underitisaexample.
*\\JOBJNM=JCL-1,DISP=D,CLASS=A,NTFY=YES(CLASS=A是指选通道A进行编译)
*\\LSTDISP=D,CLASS=Q,PRI=3
*\\PUNDISP=I,DEST=*,PRI=9,CLASS=A
//JOBJCL-1TRANSLATEPROGRAMXXSL1
//ASSGNSYSIPT,SYSRDR
//EXECIESINSRT(程序名是:
XXSL1)
\\\LSTDISP=D,CLASS=Q,PRI=3
//JOBJCL-1COMPILEPROGRAMXXSL1
//SETPARMCATALOG=2-------->转变成自己的值:
1
//IFCATALOG=1THEN
//GOTOCAT
//OPTIONERRS,SXREF,SYM,LIST,NODECK
//GOTOENDCAT
/.CAT
//LIBDEF*,SEARCH=(PRD2.SCEECICS,PRD2.SCEEBASE)
//LIBDEFPHASE,CATALOG=lib.sublib------>转变成自己的CATALOG名:
DEVPCIC.PHASE
//OPTIONERRS,SXREF,SYM,CATAL,NODECK
PHASEXXSL1,*----------------->XXSL1转变成自己定义的TRANSACTIONID:
XXS1
INCLUDEDFHELII
/.ENDCAT
//EXECIGYCRCTL,SIZE=IGYCRCTL
CBLLIB,APOST,NOADV,NODYNAM,RENT,BUF(4096)
*\\END
//ON\CANCELOR\ABENDGOTOENDJ2
//OPTIONNOLIST,NODUMP,DECK
//EXECDFHECP1\,SIZE=512K
CBLXOPTS(COBOL2CICSDEBUG)
*\\SLIICCF=(XXSL1,LJ),LIB=(0034)
/*
/.ENDJ2
//EXECIESINSRT
/*
//IFCATALOGNE1OR\MRCGT4THEN
//GOTONOLNK
//EXECLNKEDT,SIZE=256K
/.NOLNK
#&
\\\EOJ
*\\END
/&
*\\EOJ
****THEJCLEND:
****
三、TASK
在CICS中,一个TASK就是一个TRANSACTION的一次执行过程。
在联机系统中,终端用户可以在同一个终端上反复启动同一个TRANSACTION,也可以是多个终端用户在不同的终端上同时发出对同一个TRANSACTION的启动请求。
无论是那一种的情形,只要出现一次对TRANSACTION的调用请求,CICS就为之建立一个TASK,并开始执行这个TASK。
因此对于同一个TRANSACTION,在CICS中间可能同时有许多个相关的TASK在执行。
但是,这些TASK所使用的可加载模块等计算机资源却是同一个,CICS将保障对这类资源的共享服务。
例如:
可能有10名顾客在购物中心的不同地点的终端上同时键入TRANSACTION标时“SHOP”,这样,请求启动的TRANSACTION是同一个,CICS则建立10个TASK来完成这10名顾客所需的查询事物处理。
2.3、CICS的功能:
一、概述:
CICS是面向终端的,响应速度快,对文件和程序都提供了安全防范的功能,并提供了完善的BACKUP和JOURNAL生成功能。
二、CICS重要的五种功能如下:
1、TRANSACTION驱动功能:
CICS中的交易是由4位的TRANSACTIONID标识启动的。
在CICS中各种应用处理功能是通过如下的方法调用而实现其工作机制的:
TRANSACTIONIDTRANSACTIONTASK应用程序
2、多重任务功能:
按照TRANSCATION驱动机制,终端每启动一次TRANSCATION,也就建立了一个TASK。
CICS对在同一区域中同时运行的许多TASK实施控制,所采用的技术是:
TASK-SWITCHING,即终止一个TASK,将其置于等待的TASK队列中。
让下一个有最高优先级的TASK获得控制权;如此循环执行。
3、多线处理功能:
在多重任务功能的支持下,调用同一个程序的多个TRANSCATION均可以使用该程序的同一个COPY,使得TRANSACTION对内存的开销能够保持较低水平。
4、准重入功能:
为了保证多线处理功能的实现,就必须保证程序模块具有准重入性。
因此,CICS在终止一个TASK之前,将该TASK对程序模块中的数或指令所做的修改于以恢复,使后续TASK仍然使用程序模块的原始版本。
5、优先级处理功能:
这种功能使用户可将优先级分别指定给应用系统的操作人员、终端、以及TRANSACTIONID,而CICS则根据优先级的高低提供相应的响应时间。
提供上述五大功能的功能模块就构成了CICS的核心模块
2.4、CICS的构成
一、概述:
CICS是一种模块积木结构,它由两大类模块构成:
第一类、CICS的核心模块。
通过这些核心模块的作用使得CICS的基本功能得以体现。
第二类、功能服务模块。
称为控制程序或管理模块,它们的主要作用是为宿主在应用程序中的CICS命令提供服务。
此外,还有一系列CICS专用的控制参数模块(即:
CICSTABLE),它们是CICS控制程序进行工作的重要依据。
TCP
EIP
PCP
KCP
SRP
TSP
MTP
KPP
JCP
BFP
CICS核心模块
TDP
ATP
EXP
DBP
DCP
OCP
TBP
TRP
ICP
BMS
SCP
FCP
本图是CICS/VS系统结构示意图
二、以下就各部份简述如下:
●TCP--TerminalControlProgram,终端控制程序。
TCP管制终端操作,它结合操作系统中的远程通讯存取方法(如:
TCAM、VTAM等)进行工作,它要求存储控制程序SCP建立终端I/O区TIOA,将终端输入数据放入TIOA,然后把控制权交给作业任务控制程序KCP。
●KCP--TaskControlProgram,作业控制程序。
KCP为TRANSACTION建立一个TASK,根据PCT检验TRANSACTION标识;若标识无效则向相应的终端发出出错提示信息;若标识有效,则就要求SCP建立一个作业任务控制区TCA(TASKControlArea),若有必要,还可以同时建立一个TRANSACTION工作区TWA(TRANSACTIONWORKAREA),再对TASK赋予一定的优先级,然后将其放入作业任务队列,并将控制权交给PCP。
●PCP--ProgramControlProgram,程序控制模块。
当一个TASK首次执行某个程序时,若那个程序不在主存中,PCP则根据TCP的要求,把那个程序从虚存加载到主存中。
当程序非正常种植时,PCP就会担负起现场处理的操作,不使故障导致整个CICS分区陷入混乱。
●EIP--EXECINTERFACEPROGRAM,CICS命令接口程序。
EIP为实现应用程序中CICS命令的各项功能提供支持。
●MTP--MasterTerminalProgram,特权终端控制命令。
MTP是特权终端Transaction“CSMT”、“CSST”或“CSOT”被启动后所要执行的程序。
●BFP--BuildIn-FunctionProgram,内在功能程序。
BFP可以为CICS提供TABLE查询、数据场校验、数据场编辑等系统内在功能。
●ATP--synchronousTransactionProcessingProgram,异步TRANSACTION处理程序。
ATP对批量数据交换型终端(非3270型终端)的输入数据进行处理。
●DBP--DynamicTransactionBackupProgram,TRANSACTION动态回退程序。
DBP在TASK非正常终止时,对有关的保护型资源进行恢复处理,使它们回退到未被这个TASK更新的初始状态。
●TBP--TransactionBackupProgram,TRANSACTION回退程序。
当系统被终端时,TBP对有关的保护型资源进行回退处理,清除相关TRANSACTION对这些资源所造成的影响。
●BMS--BasicMappingSupportProgram,基本变换支持程序。
BMS是终端和应用程序之间的数据通讯接口,它负责完成终端物理设备同应用程序进行数据传输过程中的一切必要变换。
BMS是CICS最重要的管理模块之一。
●SRP--SystemRecoveryProgram,系统恢复程序。
SRP是一个处理非正常终止现场的通用程序。
CICS的C/S结构及所支持的硬件平台见教材P1-5图1-4。
在不同的硬件平台上CICS具有相同的API的写法。
可以通过Network将各种不同平台上运行的CICS应用联结起来,见教材P1-6图1-5。
CICS的管理功能见教材P1-7图P1-6。
CICS对资源的管理是通过一些Table来进行的(参见资源定义手册),其中的一些如下:
见教材P1-9中Notes:
●TCA=TaskControlArea
●TCT=TeminalControlTable
●PCT=ProgrammingControlTable
●PPT=ProcessingProgramTable
●FCT=FileControlTable
CICSProgrammingIntroduction:
1、CICS所支持的各种时期的版本的比对:
见VSEtoOS/390升级指南P190图18
DOS/VSCOBOL、
VSCOBOLII、
COBOLforVSE/ESA、
COBOLforOS/390&VM
2、COBOL语言的格式及4个部的组成:
3、
IDENTIFICATIONDIVISION.
PROGRAM-ID.SAONLINE01.
Author.JamesDUAN.
Installation.ES-9000.
Date-Write.99/99/2000.
Date-Compiled.99/99/2000.在程序编译是会用实际的时间导入。
ENVIRONMENTDIVISION.
CONFIGURATIONSECTION.
Source-Computer.IBM-390.
Object-Computer.IBM-390.
INPUT-OUTPUTSECTION.
FILE-CONTROL.
SELECTDISKFILE01ASSIGNTO“DISKFILE01”“DISK”
ORGANIZATIONISINDEXED
ACCESSMODEISRANDOM
RECORDKEYISRECORD-REC1.
DATADIVISION.
FILESECTION.
FDDISKFILE01
LABLERECORDISOMITTED
DATARECORDISRECORD.
01RECORD.
10RECORD-REC1PIC9(4).
10RECORD-REC2PICX(9).
10RECORD-REC3PICX(4).
10RECORD-REC4PICX(4).
10FILLERPICX(99).
WORKING-STORAGESECTION.
77VAR-REC1PIC9(4)COMP.
77VAR-REC2PICX(4)VALUEIS“ABC”.
01RECORD-DB1.
10REC-DB1PIC9(4).
10REC-DB2PICX(9).
10REC-DB3PICX(4).
10REC-DB4PICX(4).
10FILLERPICX(99).
01RECORD01.
10RECORD-REC1PIC9(4).
10RECORD-REC2PICX(9).
10RECORD-REC3PICX(4).
10RECORD-REC4PICX(4).
10FILLERPICX(99).
PROCEDUREDIVISION.
MAIN.
OPEN
MOVE
IF
END-IF
CLOSE
注意:
对于两个数值变量的算术赋值运算用COMPUTEA=B,而不建议用MOVE。
4、对于算术运算,在OS/390上COBOL语言提供:
1)、ADD、SUBTRACT、MULTIPLY、DIVIDE、COMPUTE等。
2)、算术公式:
如:
IF(a+b)>(c–d+5)
THEN……
END-IF.
3)、内部功能:
如:
COMPUTEA=FUNCTIONSUM(5,4,3)
4)、LECallableServes见ProgrammingGuide第1.3.6节
5、对于算术数值的定义有如下的形式:
COMPandCOMP-4为二进制的存储形式,
其特点是:
≤4位的十进制占2个字节,如:
1043=0001-0000-1000-0101
5to9位的十进制占4个字节,
10to18位的十进制占8个字节
COMP-1andCOMP-2为短、长浮点的存储形式,
其特点是:
分别用4--8个字节存储,最左边为符号位,第二位是指数,剩下的位数放置余数。
COMP-3:
是压缩的十进制的存储形式,每个十进制数占用1个字节的存储单元,最右边的是符号位。
以上的COMP说明见ProgrammingGuide第1.3.2节。
6、CICS不允许COBOL中进行程序中的文件定义。
但在:
IMSallowsCOBOLdefinitionoffilesonlyforbatchprogram.
7、LOCAL-STORAGESECTION.递归调用
01NUMPIC9(4).
其中:
NUM的值每当GOBACK/RETURN/EXITPROGRAM时都会丢失。
见:
ProgrammingGuide中的第1.2.3.4.3、Recursive时所讲。
8、COBOL中的66层见Reference中的第5.3.13
9、TheJCLforCompilationinclude:
1)、Ajobdescription
2)、Astatementtorunthecompiler
3)、DefinitionfortheDATASETneed.
2.5CICS的命令格式:
EXECCICSSEND
FROM(OK-REC)
INVITE
WAIT
END-EXEC.
其中参数:
INVIT&WAIT是将状态转换成RECERVE的等待。
EXECCICSHANDLECONDITION
INVREQ(ERROR-1)
LENGERR(ERROR-2)
NOTAUTH(ERROR-3)
PGMIDERR(ERROR-4)
END-EXEC.
EXECCICSXCTLPROGRAM('QQHR')
COMMAREA(BRNOOFIN-BHGS)
LENGTH(10)
END-EXEC.
EXECCICSRETURN
END-EXEC.
GOBACK.
COBOL程序结束语句有三种,其功能比较如下表:
Statement
DOS/VSCOBOL
COBOLforOS/390andVM
EXITPROGRAM
MainProgram
Noeffect
Noeffect
Sub-Program
Returntocallingprogram
Returntocallingprogram
GOBACK
MainProgram
Abnormaljobtermination
Returntocallingprogram(maybesystemandcausetheapplicationtoend)
Sub-Program
Returntocallingprogram
Returntocallingprogram
STOPRUN
MainProgram
Returntosystemandcauseendofjobstep(EOJ)
Returntocallingprogram(maybesystemandcausetheapplicationtoend)
Sub-Program
Returntosystemandcauseendofjobstep(EOJ)
Returntodirectlytocallingprogram(maybesystemandcausetheapplicationtoend)
2.6对于DebuggingaProgram使用CEDF。
CEDF=CommandExecutionDiagnosticFacility
2.7CICS的MessageandCode:
inCICS/ESAV3orlaterTheCICSMessageandCode手册能够用交易的形式On-line的使用,命令:
CMAC。
2.8传递数据到下一个Task:
数据的传递在程序中通过数据部的定义,见例样程序及2.5上的程序片段。
在被调用的子程序中加入如下的LINKAGESECTION.
如下的片段:
LINKAGESECTION.
01DFHCOMMAREA.
04DK-REC.
10BKNO-PPICX(10).
10NUMB-PPICX(6).
UNIT04.对VSAM文件进行操作。
一、什麽是VSAM:
VSAM=VirtualStorageAccessMethod。
在CICS的应用环境中对于VSAM文件进行操作时不允许在常规的COBOL语言中定义文件,但在DATADIVISION段中对应于相应VSAM文件的数据结构必须一一对应,VSAM文件是由CICS的系统管理员进行定义的。
在这一点上CICS环境下的COBOL语言的程序写法同常规的COBOL语言的写法是有区别的。
在CICS的文件控制表中(FCT=FileControlTable)定义系统应用环境中所用到的VSAM文件的各种属性,所以不需要在CICSCOBOL的程序中进行定义。
在程序的PROCEDUREDIVISION段中不用在程序中执行OPEN及CLOSE语句,对于程序中操作的文件的开启及关闭都是由CICS在自动的处理。
无须程序员在程序中进行干预。
二、VSAM文件的类型如下:
1.
ESDS=EntrySequencedDataSet顺序文件
其特点是:
记录只能增加在文件的尾部
记录能被Updated但其长度不能被改变
记录不能被Deleted
能根据相对寻址的方式进行操作,见教材P4-7图4-4、P4-8图4-5
2.
RRDS=RelativeRecordDataSet相对记录文件
其特点是:
在DataSet(记录)中包含许多小的数据块
在这些小块可能有数据或是空的
在RRDS文件中记录可能是固定的或可变的
可顺序或直接的存取,根据相对的记录数方式操作,见教材P4-9图4-7
3.
KSDS=KeySequencedDataSet索引文件
其特点是:
记录能进行顺序或直接的读写
记录能被Add、Updated、Deleted不受限制
记录的是由索引方式来组织的
按键值的方式进行操作,见教材P4-8图4-6
三、VSAM文件的操作:
对于一个VSAM进行读写及其他类型的操作时,建议对于例外情况处理使用HANDLECONDITION语句进行操作。
教材上的这部分例子见P4-12TOP4-16
1、对于EXECSQL在程序中的使用,参见教材上P4-18toP4-31。
这部分简单