第九章_编译和运行COBOL程序--CICS 技术文档09_第1页
第九章_编译和运行COBOL程序--CICS 技术文档09_第2页
第九章_编译和运行COBOL程序--CICS 技术文档09_第3页
第九章_编译和运行COBOL程序--CICS 技术文档09_第4页
第九章_编译和运行COBOL程序--CICS 技术文档09_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、COBOL for Mainframe FundamentalsCICS 技术文档 COBOL主机应用开发架构基础本节内容nCOBOL与传统系统nCOBOL应用开发架构nCOBOL与CICSnCOBOL与DB2nCOBOL与IMSn更详尽的内容将在相关课程中讲述。COBOL与传统系统n传统程序是用上一代技术开发的可操作计算机程序或程序组,多数已经运行多年,并且仍然能胜任所负责的工作的可行系统;n上世纪70年代80年代,COBOL大量用于建设大型、复杂的商业系统,因此用COBOL编写的数据处理程序构成了传统程序的主体;n传统系统通常是公司进行关键商业活动时所依赖的核心程序,当系统需要更新时不能中

2、断,从头改写往往是下策,其代码的修改和改进为现代的COBOL编程人员带来了机遇和挑战。COBOL应用开发架构n大部分传统COBOL系统都是用IBM硬件、操作系统和编译器开发的;n近代的S/390、Z900、AS/400乃至最新的iSeries、zSeries等服务器上仍然保持了对COBOL的支持;nCOBOL应用程序的数据可以放在文件中,也可以放在DBMS(数据库管理系统)中;n主机上COBOL应用程序后台的DBMS通常使用IMS(层次数据库)或DB2(RDBMS),事务管理的实现则使用CICS或者IMS TM。COBOL与CICSnCICS简介nCICSCOBOL CICS简介nCICS是I

3、BM的客户信息控制系统,是运行终端(联机)系统的环境;nCICS特别适合事务性系统,如处理机票购买和银行存取款等;n40多年来,CICS一直活跃在全球一流公司的商业系统中:当今全球一共有大约50000个CICS站点;在500个最大的IBM客户中,490个都是用CICS;大约有100万编程人员编写和维护CICS程序,主要是COBOL程序。CICS事务nCICS事务由一个或多个CICS程序组成,通常是用COBOL编写,一般是用SQL命令读写关系数据库或用DL/I读写IMS数据库,并负责与终端上的最终用户交流信息;nCICS保证事务或者完全成功,或者根本不执行,它与COBOL配合协调,能高效地使用系

4、统资源;nCOBOL程序的性质是不可再入(reentrant)的,即一次只能有一个终端用户执行内存中的COBOL程序,但CICS用伪再入(pseudo-reentrant)或准再入(quasi-reentrant)技术解决了这个问题,它对COBOL程序的每个实例保存一份工作存储节,但允许程序的所有实例使用过程部。CICS程序实例屏1CICS程序实例屏2CICS程序实例屏3CICS程序实例屏4COBOL与CICS nCICS的许多特性使程序员不必考虑CICS终端的结构和它们的位置以及如何与网络联接就能编写出高级的事务处理应用程序;nCICSCOBOL程序是COBOL语句与EXEC CICS语句的

5、组合,能与CICS通信,程序中的每一行是下列语句之一:COBOL行(例如MOVE WS-TEMP TO WS-PERMANENT)EXEC CICS语句(例如EXEC CICS RETURN END-EXEC)数据库访问语句(例如EXEC SQL SELECT NAME INTO:WS-NAME FROM EMPLOYEE WHERE EMP_ID=:WS-ID END-EXEC)nCICSCOBOL程序通过EXEC CICS SEND和RECEIVE语句与最终用户通信,就像其它程序使用DISPLAY和ACCEPT一样,不过在CICSCOBOL程序中,通常是全屏显示而不是一行显示。COBOL中

6、的CICS命令n通用格式 command option(arg).n在COBOL中用EXEC CICS启动CICS 命令,用END EXEC.终止。CICS命令一览n终端控制SEND, SEND CONTROL, SEND MAP, RECEIVE, RECEIVE MAPn异常处理HANDLE CONDITION, IGNORE CONDITIONn文件控制READ, WRITE, REWRITE, WRITE, UNLOCK, STARTBR, READNEXT, READPREV, ENDBR, RESETBRn程序控制LINK, XCTL, RETURNnQueue 控制WRITEQ

7、TS|TD, READQ TS|TD, DELETEQ TS|TD终端控制n对终端进行 I/On命令:SENDRECEIVEn基本的mapping支持基本的mapping支持n字符屏幕显示( mapping )n基于应用程序生成mappingn从终端接受数据或向终端发送数据SEND命令n语法格式 EXEC CICSSENDFROM(data-area)LENGTH(data-value)END-EXEC.SEND样例WORKING-STORAGE SECTION.01MSG-LENGTHPIC S9(4) COMP.01OUTPUT-MESSAGE.05MSG-IDPIC X(4).05FIL

8、LERPIC X.05MSG-TXT PIC X(35).PROCEDURE DIVISION.MOVE 40 TO MSG-LENGTH.MOVE INV1 TO MSG-ID.MOVE INVOICE NOW BEING PRINTED TO MSG-TXT.EXEC CICS SENDFROM (OUTPUT-MESSAGE)LENGTH (MSG-LENGTH)ERASEEND-EXEC.SEND CONTROL命令n语法格式EXEC CICSSEND CONTROLCURSOR(data-value)ERASE|ERASEUPFREEKBEND-EXEC.SEND MAP命令n语法格

9、式EXEC CICS SEND MAP (name) MAPSET(name) FROM(data-area) LENGTH(data-value) DATAONLY|MAPONLY ALARM CURSOR(data-value) ERASE|ERASEUP FREEKBEND-EXEC.Exception condition:MAPFAIL符号MapnWORKING-STORAGE SECTION.COPY symbolic-map-member-namenPROCEDURE DIVISION.MOVE xxx TO xxxO.EXEC CICSSEND MAPEND-EXEC.物理Map

10、n在CICS里用CEDA定义nCEDA DEF MAPSETRECEIVE MAP命令n语法格式EXEC CICS RECEIVE MAP(name) MAPSET(name) LENGTH(data-area) INTO(data-area)END-EXEC.Exception condition:MAPFAIL符号MapnWORKING-STORAGE SECTION.COPY symbolic-map-member-namenPROCEDURE DIVISION.EXEC CICSRECEIVE MAPEND-EXEC.MOVE xxI TO xxx.CICSCOBOL程序的限制n环境部

11、中与数据管理服务有关的项目不能使用;n数据部的文件节(file section)不能使用;nREPORT-WRITER, SEGMENTATION, SORT 和TRACE 等不能使用;nCOBOL READ, WRITE, OPEN 和 CLOSE 等语句不能使用;nACCEPT, CURRENT-DATE, DATE, DAY, DISPLAY, EXHIBIT, INSPECT, SIGN IS SEPARATE, STOP RUN, TIME, UNSTRING等动词不能使用。CICSCOBOL程序的结束n语法 EXEC CICSRETURNEND-EXEC.COBOL与DB2nDB2

12、是大型主机上支持的大型关系数据库管理系统,COBOL应用程序通过执行SQL语句来操作和访问DB2数据库;n在COBOL中,使用SQL有所不同:SQL查询必须以EXEC SQL开始,以END-EXEC结束;SQL查询通常使用COBOL宿主变量。宿主变量(host variable)n宿主变量(host variable)在SQL语句前面带冒号(:);n宿主变量应该在COBOL中正确定义,对应于列属性;nDELETE语句不需要宿主变量;nSELECT语句需要宿主变量;nINSERT语句通常需要宿主变量,但也可以使用VALUES从句;nUPDATE语句也需要宿主变量,但只对要改变数据的列。例子:查询

13、员工1并改变其性别MOVE FEMALE TO SEX OF DCLEMPLOYEEEXEC SQL UPDATE EMPLOYEE SET SEX=:DCLEMPLOYEE.SEX WHERE EMP_ID=1 END-EXEC.注意在COBOL语法中的SEX OF DCLEMPLOYEE在SQL中变成DCLEMPLOYEE.SEXCOBOL+CICS+DB2样本程序详见TESTMENUCOBOL与IMSnIMS是大型机上的层次数据库,已经出现大约45年;nIMS是要求高性能、高可用性、高可靠性和高可管理性的公司的应用程序的首选;n全球很多行业的商业运行都依赖于IMS,1000家最大公司的9

14、0%都使用IMS;nIMS支持Java、PL/1、C/C+等多种应用开发语言,对COBOL的支持更是历史悠久。数据操作语言(DML)nDML提供宿主编程语言(比如COBOL)和数据库间的接口。宿主编程语言宿主编程语言database数据语言DL/InDL/I是IMS使用的DML,它不是独立的语言,而是一组过程性代码和数值;nCOBOL可以作为DL/I的宿主编程语言,通过普通子程序调用的方式调用DL/I;n数据库对于COBOL来说是个黑盒子,不能直接访问,COBOL用DL/I提供的API访问数据库;COBOLDL/IIMS databaseEntry语句nCOBOL程序中的第一条语句是ENTRY语句 ,说明本COBOL程序使用的PCB掩模,从而建立与相应数据库的连接。PROCEDURE DIVISl0NA000-MAIN-PROCESSENTRY DLITCBL USING EMPLOYEE-DB-PCB-MASKDLITCBL是“DL/I to COBOL”的缩写。 COBOL中调用DL/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论