1、CICSS390讲议CICS则是对主操作系统的进一步扩充,它帮助主操作系统把一类特殊的应用程序(既ONLINE应用程序)同其它应用程序分离开来,对ONLINE应用程序进行控制,为执行ONLINE应用程序提供相应的环境,并作为ONLINE程序同各种文件和数据库产品的接口。 OS/390 MVS VSE + CICS VM 下图展示CICS 同操作系统和 ONLINE 应用程序的关系:22、CICS系统的三个重要概念:在CICS系统中,TRANSACTION、TASK、以及程序是三个重要的基本概念。一、程序(PROGRAM)程序就是系指在宿主语言中使用CICS命令进行I/O操作的可加载模块。有时也
2、将程序成为联机程序,或CICS程序。例如:在ES/9000上的宿主语言,ASSEMBLE、COBOL、PL/I、C等等。二、TRANSACTION每一个TRANSCATION都必须被赋一个TRANSACTION INDETIFIFIER,或称为:TRANSACTION ID。它由4位代码组成。终端用户在终端上键入这4位的代码,如X999、DJMP、XXS1等就能启动相应的事物处理。这4位代码的命名极其有关的其它信息都是由JCL在编译时由用户设定的。一个交易包括:1)从用户终端接收一个Message 或Data 2)进行DB的处理 3)返回一个结果给用户见下面的JCL:* NOTE: THE J
3、CL START * This is a auto-procedures JCL in the ES-9000 There are a location that must be altered: In the prompt that you can select 8(compile) to auto-procedure a JCLs file. then you alter the item. under it is a example.* JOB JNM=JCL-1,DISP=D,CLASS=A,NTFY=YES (CLASS=A是指选通道A进行编译)* LST DISP=D,CLASS=
4、Q,PRI=3 * PUN DISP=I,DEST=*,PRI=9,CLASS=A / JOB JCL-1 TRANSLATE PROGRAM XXSL1 / ASSGN SYSIPT,SYSRDR / EXEC IESINSRT (程序名是:XXSL1) LST DISP=D,CLASS=Q,PRI=3 / JOB JCL-1 COMPILE PROGRAM XXSL1 / SETPARM CATALOG=2 - 转变成自己的值:1 / IF CATALOG = 1 THEN / GOTO CAT / OPTION ERRS,SXREF,SYM,LIST,NODECK / GOTO ENDC
5、AT /. CAT / LIBDEF *,SEARCH=(PRD2.SCEECICS,PRD2.SCEEBASE) / LIBDEF PHASE,CATALOG=lib.sublib - 转变成自己的CATALOG名:DEVPCIC.PHASE / OPTION ERRS,SXREF,SYM,CATAL,NODECK PHASE XXSL1,* - XXSL1 转变成自己定义的TRANSACTION ID: XXS1 INCLUDE DFHELII /. ENDCAT / EXEC IGYCRCTL,SIZE=IGYCRCTL CBL LIB,APOST,NOADV,NODYNAM,RENT,
6、BUF(4096) * END / ON CANCEL OR ABEND GOTO ENDJ2 / OPTION NOLIST,NODUMP,DECK / EXEC DFHECP1,SIZE=512K CBL XOPTS(COBOL2 CICS DEBUG) * SLI ICCF=(XXSL1,LJ),LIB=(0034) /* /. ENDJ2 / EXEC IESINSRT /* / IF CATALOG NE 1 OR MRC GT 4 THEN / GOTO NOLNK / EXEC LNKEDT,SIZE=256K /. NOLNK #& EOJ * END /& * EOJ * T
7、HE JCL END: *三、TASK在CICS中,一个TASK就是一个TRANSACTION的一次执行过程。在联机系统中,终端用户可以在同一个终端上反复启动同一个TRANSACTION,也可以是多个终端用户在不同的终端上同时发出对同一个TRANSACTION的启动请求。无论是那一种的情形,只要出现一次对TRANSACTION的调用请求,CICS就为之建立一个TASK,并开始执行这个TASK。因此对于同一个TRANSACTION,在CICS中间可能同时有许多个相关的TASK在执行。但是,这些TASK所使用的可加载模块等计算机资源却是同一个,CICS将保障对这类资源的共享服务。例如:可能有10名
8、顾客在购物中心的不同地点的终端上同时键入TRANSACTION标时“SHOP”,这样,请求启动的TRANSACTION是同一个,CICS则建立10个TASK来完成这10名顾客所需的查询事物处理。23、CICS的功能:一、概述:CICS是面向终端的,响应速度快,对文件和程序都提供了安全防范的功能,并提供了完善的BACKUP和JOURNAL生成功能。二、CICS重要的五种功能如下: 1、TRANSACTION驱动功能: CICS中的交易是由4位的TRANSACTION ID标识启动的。在CICS中各种应用处理功能是通过如下的方法调用而实现其工作机制的: TRANSACTION ID TRANSAC
9、TION TASK 应用程序2、多重任务功能: 按照TRANSCATION驱动机制,终端每启动一次TRANSCATION,也就建立了一个TASK。CICS对在同一区域中同时运行的许多TASK实施控制,所采用的技术是:TASK-SWITCHING,即终止一个TASK,将其置于等待的TASK队列中。让下一个有最高优先级的TASK获得控制权;如此循环执行。 3、多线处理功能: 在多重任务功能的支持下,调用同一个程序的多个TRANSCATION均可以使用该程序的同一个COPY,使得TRANSACTION对内存的开销能够保持较低水平。 4、准重入功能: 为了保证多线处理功能的实现,就必须保证程序模块具有
10、准重入性。因此,CICS在终止一个TASK之前,将该TASK对程序模块中的数或指令所做的修改于以恢复,使后续TASK仍然使用程序模块的原始版本。 5、优先级处理功能: 这种功能使用户可将优先级分别指定给应用系统的操作人员、终端、以及TRANSACTION ID,而CICS则根据优先级的高低提供相应的响应时间。提供上述五大功能的功能模块就构成了CICS的核心模块24、CICS的构成一、概述:CICS是一种模块积木结构,它由两大类模块构成: 第一类、CICS的核心模块。通过这些核心模块的作用使得CICS的基本功能得以体现。第二类、功能服务模块。称为控制程序或管理模块,它们的主要作用是为宿主在应用程
11、序中的CICS命令提供服务。此外,还有一系列CICS专用的控制参数模块(即:CICS TABLE),它们是CICS控制程序进行工作的重要依据。TCPEIPPCPKCPSRPTSPMTPKPPJCPBFPCICS核心模块TDPATPEXPDBPDCPOCPTBPTRPICPBMSSCPFCP本图是CICS/VS系统结构示意图二、以下就各部份简述如下: TCP-Terminal Control Program,终端控制程序。TCP管制终端操作,它结合操作系统中的远程通讯存取方法(如:TCAM、VTAM等)进行工作,它要求存储控制程序SCP建立终端I/O区TIOA,将终端输入数据放入TIOA,然后把
12、控制权交给作业任务控制程序KCP。 KCP-Task Control Program,作业控制程序。KCP为TRANSACTION建立一个TASK,根据PCT检验TRANSACTION标识;若标识无效则向相应的终端发出出错提示信息;若标识有效,则就要求SCP建立一个作业任务控制区TCA(TASK Control Area),若有必要,还可以同时建立一个TRANSACTION工作区TWA(TRANSACTION WORK AREA),再对TASK赋予一定的优先级,然后将其放入作业任务队列,并将控制权交给PCP。 PCP-Program Control Program,程序控制模块。当一个TASK
13、首次执行某个程序时,若那个程序不在主存中,PCP则根据TCP的要求,把那个程序从虚存加载到主存中。当程序非正常种植时,PCP就会担负起现场处理的操作,不使故障导致整个CICS分区陷入混乱。 EIP-EXEC INTERFACE PROGRAM,CICS命令接口程序。EIP为实现应用程序中CICS命令的各项功能提供支持。 MTP-Master Terminal Program,特权终端控制命令。MTP是特权终端Transaction “CSMT”、“CSST”或“CSOT”被启动后所要执行的程序。 BFP-Build In-Function Program,内在功能程序。BFP可以为CICS提供
14、TABLE查询、数据场校验、数据场编辑等系统内在功能。 ATP-synchronous Transaction Processing Program,异步TRANSACTION处理程序。ATP对批量数据交换型终端(非3270型终端)的输入数据进行处理。 DBP-Dynamic Transaction Backup Program,TRANSACTION动态回退程序。DBP在TASK非正常终止时,对有关的保护型资源进行恢复处理,使它们回退到未被这个TASK更新的初始状态。 TBP-Transaction Backup Program,TRANSACTION回退程序。当系统被终端时,TBP对有关的
15、保护型资源进行回退处理,清除相关TRANSACTION对这些资源所造成的影响。 BMS-Basic Mapping Support Program,基本变换支持程序。BMS是终端和应用程序之间的数据通讯接口,它负责完成终端物理设备同应用程序进行数据传输过程中的一切必要变换。BMS是CICS最重要的管理模块之一。 SRP-System Recovery Program,系统恢复程序。SRP是一个处理非正常终止现场的通用程序。CICS的C/S结构及所支持的硬件平台见教材P1-5图1-4。在不同的硬件平台上CICS具有相同的API的写法。可以通过Network将各种不同平台上运行的CICS应用联结起
16、来,见教材P1-6图1-5。CICS的管理功能见教材P1-7图P1-6。CICS对资源的管理是通过一些Table来进行的(参见资源定义手册),其中的一些如下:见教材P1-9中Notes: TCA = Task Control Area TCT = Teminal Control Table PCT = Programming Control Table PPT = Processing Program Table FCT = File Control TableCICS Programming Introduction:1、 CICS所支持的各种时期的版本的比对:见VSEtoOS/390升级指
17、南P190图18DOS/VS COBOL、VS COBOLII、COBOL for VSE/ESA、COBOL for OS/390&VM2、 COBOL 语言的格式及4个部的组成:3、 IDENTIFICATION DIVISION.PROGRAM-ID. SAONLINE01.Author. James DUAN.Installation. ES-9000.Date-Write. 99/99/2000.Date-Compiled.99/99/2000. 在程序编译是会用实际的时间导入。ENVIRONMENT DIVISION.CONFIGURATION SECTION. Source-Co
18、mputer. IBM-390. Object-Computer. IBM-390.INPUT-OUTPUT SECTION.FILE-CONTROL. SELECT DISKFILE01 ASSIGN TO “DISKFILE01” “DISK” ORGANIZATION IS INDEXED ACCESS MODE IS RANDOM RECORD KEY IS RECORD-REC1.DATA DIVISION.FILE SECTION.FD DISKFILE01 LABLE RECORD IS OMITTED DATA RECORD IS RECORD.01 RECORD.10 REC
19、ORD-REC1 PIC 9(4).10 RECORD-REC2 PIC X(9).10 RECORD-REC3 PIC X(4).10 RECORD-REC4 PIC X(4).10 FILLER PIC X(99).WORKING-STORAGE SECTION. 77 VAR-REC1 PIC 9(4) COMP. 77 VAR-REC2 PIC X(4) VALUE IS “ ABC”. 01 RECORD-DB1. 10 REC-DB1 PIC 9(4). 10 REC-DB2 PIC X(9). 10 REC-DB3 PIC X(4). 10 REC-DB4 PIC X(4). 1
20、0 FILLER PIC X(99). 01 RECORD01. 10 RECORD-REC1 PIC 9(4). 10 RECORD-REC2 PIC X(9). 10 RECORD-REC3 PIC X(4). 10 RECORD-REC4 PIC X(4). 10 FILLER PIC X(99).PROCEDURE DIVISION.MAIN. OPEN MOVE IF END-IF CLOSE注意:对于两个数值变量的算术赋值运算用COMPUTE A = B,而不建议用MOVE。4、 对于算术运算,在OS/390上COBOL语言提供:1)、ADD、SUBTRACT、MULTIPLY、D
21、IVIDE、COMPUTE等。2)、算术公式:如: IF (a + b) (c d + 5) THEN END-IF.3)、内部功能:如: COMPUTE A = FUNCTION SUM(5,4,3)4)、LE Callable Serves 见Programming Guide 第1.3.6节5、 对于算术数值的定义有如下的形式:COMP and COMP-4为二进制的存储形式,其特点是: 4 位的十进制占2个字节,如:1043=0001-0000-1000-0101 5 to 9 位的十进制占4个字节, 10 to 18位的十进制占8个字节COMP-1 and COMP-2为短、长浮点的
22、存储形式,其特点是:分别用 4 - 8个字节存储,最左边为符号位,第二位是指数,剩下的位数放置余数。COMP-3: 是压缩的十进制的存储形式,每个十进制数占用1个字节的存储单元,最右边的是符号位。以上的COMP说明见Programming Guide 第1.3.2节。6、 CICS 不允许COBOL中进行程序中的文件定义。但在:IMS allows COBOL definition of files only for batch program.7、 LOCAL-STORAGE SECTION. 递归调用 01 NUM PIC 9(4). 其中:NUM的值每当GOBACK / RETURN /
23、EXIT PROGRAM时都会丢失。 见:Programming Guide 中的第1.2.3.4.3、Recursive时所讲。8、 COBOL 中的66层 见Reference 中的第5.3.139、 The JCL for Compilation include:1)、A job description2)、A statement to run the compiler3)、Definition for the DATA SET need.25 CICS 的命令格式: EXEC CICS SEND FROM(OK-REC) INVITE WAIT END-EXEC.其中参数:INVIT
24、& WAIT 是将状态转换成RECERVE的等待。 EXEC CICS HANDLE CONDITION INVREQ(ERROR-1) LENGERR(ERROR-2) NOTAUTH(ERROR-3) PGMIDERR(ERROR-4) END-EXEC. EXEC CICS XCTL PROGRAM(QQHR) COMMAREA(BRNO OF IN-BHGS) LENGTH(10) END-EXEC. EXEC CICS RETURN END-EXEC. GOBACK.COBOL程序结束语句有三种,其功能比较如下表:StatementDOS/VS COBOLCOBOL for OS/3
25、90 and VMEXIT PROGRAMMain ProgramNo effectNo effectSub-ProgramReturn to calling programReturn to calling programGOBACKMain ProgramAbnormal job terminationReturn to calling program (may be system and cause the application to end)Sub-ProgramReturn to calling programReturn to calling programSTOP RUNMai
26、n ProgramReturn to system and cause end of job step(EOJ)Return to calling program (may be system and cause the application to end)Sub-ProgramReturn to system and cause end of job step(EOJ)Return to directly to calling program (may be system and cause the application to end)26 对于Debugging a Program 使
27、用CEDF。 CEDF = Command Execution Diagnostic Facility27 CICS 的Message and Code: in CICS/ESA V3 or later The CICS Message and Code手册能够用交易的形式On-line 的使用,命令:CMAC。28 传递数据到下一个Task: 数据的传递在程序中通过数据部的定义,见例样程序及2.5上的程序片段。 在被调用的子程序中加入如下的 LINKAGE SECTION. 如下的片段:LINKAGE SECTION. 01 DFHCOMMAREA. 04 DK-REC. 10 BKNO-P
28、 PIC X(10). 10 NUMB-P PIC X(6). UNIT 04.对VSAM文件进行操作。一、 什麽是VSAM:VSAM = Virtual Storage Access Method。在CICS的应用环境中对于VSAM文件进行操作时不允许在常规的COBOL语言中定义文件,但在DATA DIVISION段中对应于相应VSAM文件的数据结构必须一一对应,VSAM文件是由CICS的系统管理员进行定义的。在这一点上CICS环境下的COBOL语言的程序写法同常规的COBOL语言的写法是有区别的。在CICS的文件控制表中(FCT=File Control Table)定义系统应用环境中所用
29、到的VSAM文件的各种属性,所以不需要在CICS COBOL的程序中进行定义。在程序的PROCEDURE DIVISION段中不用在程序中执行OPEN及CLOSE语句,对于程序中操作的文件的开启及关闭都是由CICS在自动的处理。无须程序员在程序中进行干预。二、VSAM文件的类型如下:1. ESDS = Entry Sequenced Data Set 顺序文件其特点是:记录只能增加在文件的尾部 记录能被Updated 但其长度不能被改变 记录不能被Deleted能根据相对寻址的方式进行操作,见教材P4-7图4-4、P4-8图4-52. RRDS = Relative Record Data S
30、et 相对记录文件其特点是:在Data Set (记录)中包含许多小的数据块 在这些小块可能有数据或是空的 在RRDS文件中记录可能是固定的或可变的可顺序或直接的存取,根据相对的记录数方式操作,见教材P4-9图4-73. KSDS = Key Sequenced Data Set 索引文件其特点是:记录能进行顺序或直接的读写 记录能被Add、Updated、Deleted 不受限制 记录的是由索引方式来组织的 按键值的方式进行操作,见教材P4-8图4-6三、VSAM文件的操作:对于一个VSAM进行读写及其他类型的操作时,建议对于例外情况处理使用HANDLE CONDITION语句进行操作。教材上的这部分例子见P4-12 TO P4-161、 对于EXEC SQL在程序中的使用,参见教材上P4-18 to P4-31。这部分简单
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1