CICSWhatisCICS?•CICS(CustomerInformationControlSystem)即客户信息控制系统,是通用的数据库/数据通信系统,可支持一个包括若干终端和终端子系统的网络,它提供一个面向事务处理的联机应用环境。•CICS推出的最初目的是一个交易监视器,用于控制台管理员和程序员监视系统的活动情况。•如今CICS被认为是一个中间件,运行于操作系统之上,其他应用系统之下。•CICS帮助操作系统高效的处理复杂任务或交易,从而让操作系统去处理非交易型的工作。CICS的功能•CICS具有管理交易和与很多其他应用交互的能力,这使得它成为一个用于处理需要很多交易被快速精确处理的商业业务必不可少的工具。•CICS具有商务级事务管理器所要求的整合性、可恢复性、安全性和可用性。•CICS管理服务(程序控制、队列控制、间隔控制、任务控制、Dump控制、Trace控制、日志控制)•CICS数据通信服务(终端控制、BMS)批处理•批处理(Batch):在用户不直接干预的条件下,计算机系统对一定批量的原始材料在规定的时间进行例行处理的过程。•批处理程序的特点:*所有必须的I/O区的工作区都应在程序中给出定义。*由程序读入有关的输入数据。*程序直接向操作系统发出I/O指令。*输入数据必须在处理开始前准备就绪(包括录入、校验等过程),在处理时顺序读入,输入数据具有可控制批量、可预计规模、顺序排列的物理特点,因而处理进程应是可跟踪的。*出现故障时,处理可重新进行,或从故障点继续向后处理。联机处理•联机处理(在线程序、online):在用户直接干预的条件下,计算机系统对用户的输入和请求在较短的时间内进行交互式相应处理的过程。•联机处理的特点:*用户在不同地点、通过CRT终端使用同一台计算机。*输入数据无须积蓄成批量,可随时被输入计算机系统。*对终端处理请求的响应时间仅为数秒。*输出信息一般是放到用户所在的CRT终端显示。*可对同一文件同时进行多种操作。*用户可在任何时刻直接通过CRT终端启动应用程序,不需要通过计算机操作员的调度排队。CICS基本概念和术语•Program(程序):指在宿主语言(如COBOL、PL/I、Assemble)中使用CICS命令进行I/O操作的可加载模块。•Transaction(交易):指一组相关联的操作序列或为了完成一个特定功能的一组步骤。•Task(作业任务):操作员或用户请求的特定交易的一个实例被称为作业任务。一个作业任务是一个交易的执行过程。CICS命令格式EXECCICSSENDFROM(FLDA)LENGTH(5)END-EXEC.KeywordsFunctionOptionArgumentArgumentOptionDelimiter•例如读和修改VSAM文件命令为:EXECCICSREADFILE('FILEA')INTO(CUSTOMER-REC)RIDFLD(CUSTOMER-NUM)•CICS允许在程序中象用CICS语句一样用SQL语句、DLI调用、CPI语句和CICS的MVS/ESA前端编程接口命令。•例如读和修改关系数据库命令为:EXECSQLSELECTColumn_namesINTOProgram_variablesFromTable_nameWHERESearch_conditionEND-EXEC.•处理异常条件命令为:EXECCICSREAD…RESP(RESPONSE-FIELD) IFRESPONSE-FIELD=DFHRESP(NOTFND) MOVE… END-IF或:EXECCICSHANDLECONDITIONNOTFND(190-NOTFOUND)CICS中的资源资源包括:•数据库(Databases)•文件(Files)•日志(Journals)•日志模型(Journalmodels)•映像集(Mapset)•程序(Programs)•终端(Terminals)•交易事务(Transactions)•瞬时数据队列(Transientdataqueues)几乎所有的资源需要先定义再使用。 CICS系统资源定义•绝大多数资源的定义和管理,是用联机事务或命令来完成。该方式称为在线资源定义(RDO)。这种方法使用CICS提供的在线事务:CEDA,CEDB和CEDC来实现。•资源的定义存储在CICS的系统定义(CSD)文件中。这些资源需作安装以后,才能被当前运行的CICS系统使用。•CICS中的资源定义是通过组(group)的形式保存。即,每个定义的资源一定隶属于某一组。一个或多个组可构成一个表(List)。在系统初始化时,是以表为单位进行资源的初始装入的。与某应用或位置有关的常作为一组,而为某CICS区域或作业相关的组放在一个表。要使用所定义的资源,可调用系统定义的事务或命令来进行安装,或直接启动CICS。CICS提供的主要交易•签到(Sign-on):CESN•退出(Sign-off):CESFLOGOFF•系统查询:CEMT•资源定义工具:CEDA•命令解释器:CECI•浏览临时存储队列:CEBR•命令语法检查:CECS其他命令参考《CICSSuppliedTransactions》CEMT•CEMT调用所有的主终端功能。主终端程序提供对CICS系统的动态用户控制,操作员可以查看和改变CICS使用的参数值,改变系统资源、终端任务的状态,关闭CICS系统。CEDA命令CEDA命令用来在线创建和修改资源定义。•程序的定义:CEDADEFINEPROGRAM(PROG1)GROUP(MYGROUP)•事务的定义:CEDADEFineTRANaction(AAYY)PROGram(PROGAAYY)Group(PROGLAB)该命令将定义一个名叫AAYY的事务,它对应程序PROG1的程序,所在的组为PROGLAB•屏幕映象集的定义:CEDADEFineMapset(LAMAP2X)Group(MYGROUP)该命令将定义一个名叫LAMAP2X的屏幕映象集,它所在的组为PROGLAB。•在组中资源定义好以后,可以通过如下命令查看: CEDAExpandGroup(MYGROUP)该命令将显示组PROGLAB中所定义的所有资源。•在组中的资源全部定义好以后,可以通过如下命令激活这些资源: CEDAInstallGroup(PROGLAB)INSTLL命令将组中的资源增加到当前运行的CICS系统的资源表中。在得到INSTALLSUCCESSFUL后,就可以使用这些资源了。CECI•CECI,thecommandinterpreter,allowstoexecuteaCICScommanddirectlyfromaterminal,withoutwritingaprogram•CECIisoftenusedtocreateteatrecords,researchcommandoptionsonline,orrepaircorruptedfilerecords.CEBR•UseCEBRtobrowseanddeletetemporarystoragequeues.•CEBRTSQqueue-nameSpecifywhatqueueyouwishtodisplay,ifthequeueexists,CEBRwillreaditanddisplayitsrecords.CICS程序的编制、安装ISPFEditprogramSourcecodeTranslate&Compile&LinkeditProgramLoadmoduleSDF-IIDefineMapNewCopyCEMTSETPROG(pgm-id)NEW对DB2访问CICS程序编译流程SourceDB2PrecompilerCICSTranslatorCOBOLCompilerLinkEditLoadModulelistingTranslatorlistingCompilerlistingWRITEQ语法:WRITEQTSQNAME(name)FROM(data-area)LENGTH(data-value)ITEM(data-area)REWRITECECIWRITEQTSQNAME(FRISTQ)FROM(‘HICICS,THISISMYFIRSTQUERE’)LENGTH(32)ITEM(1)IDENTIFICATIONDIVISION.PROGRAM-ID.06WRTQ.AUTHOR.FJS.ENVIRONMENTDIVISION.DATADIVISION.WORKING-STORAGESECTION.01QNAMEPICX(16).01QFROMPICX(70).01QLENGPIC99.01QITEMPICS9(4)COMP.PROCEDUREDIVISION.MOVE'FIRSTQ'TOQNAME.MOVE'HICICS,THISISMYFIRSTQUERE!'TOQFROM.MOVELENGTHOFQFROMTOQLENG.MOVE1TOQITEM.EXECCICSWRITEQTSQNAME(QNAME)FROM(QFROM)LENGTH(LENGTHOFQFROM)ITEM(QITEM)END-EXEC.STOPRUN.定义安装PROGRAM步骤:CEDADEFPROG(TE06WRTQ)GROUP(FENG)F3CEDAEXPROG(TE06WRTQ)GROUP(FENG)ICEMTSETPROGRAM(TE06WRTQ)NEW定义安装TRANSACTION步骤:CEDADEFTRANS(TE06)GROUP(FENG)PROG(TE06WRTQ)F3pauseCEDAEXTRANS(TE06)GROUP(FENG)ITE06Å----------transaction的名字(只允许四位)察看结果:CEBRTSQFIRSTQÅ-----------queue的名字