IBM主机技术一本通

出版时间:2011-5  出版社:电子工业出版社  作者:吕新民 编  页数:828  
Tag标签:无  

前言

  这是一本写了20多年的书,一本让你学习IBM主机技术不求人的书!  开始萌发写书的想法要追溯到20多年前,大学毕业分配到青岛的一家国有银行工作的时候。那时工作不是很忙,年轻的时候精力过剩,总想找点事情做做,但毕竟水平有限,能写的东西不多,成不了型,也就放下了。后来有机会去香港工作几年,然后又辗转到深圳的一家比较知名的做银行项目的民营公司,最后又到一家著名的外企,虽然这段时间的工作经历为本书提供了丰富的素材,使得读者对书中的讲述有感同身受的亲切感,但这段经历繁忙到根本没有时间和精力提笔写书。  从2008年开始转行做培训方面的工作,就又有了写书的念头。因为有一件事,让我感触很深,某个培训班的学生中,有一批学日语的学生,他们几乎完全不会英语,而我们的教材通常是英文的,根本没有这方面技术的中文书,使得有的学生实在学不下去,只好中途退学了。这件事,让我决定尽快写出一本通用的IBM主机技术方面的书,既能了却20多年前的夙愿,又能对从事主机工作的同行们尽自己的微薄之力。经过几年的努力,这本书终于面世了。  本书的定位是一本IBM主机技术方面专家级的参考书,既适合该行业的初学者入门的需要,也能满足有多年相关工作经验的行业高手进一步提高的要求。  本书有下面几个鲜明的特点,特此提出来与读者分享。  1.IBM主机技术的完整性  作者有多年的IBM主机技术应用的实践经验,非常清楚哪些技术是必须详细讲述的,哪些技术是可以一笔带过的,因此对于重要的知识点和在实际工作中经常用到的内容,以及有一定难度,平常也有可能用到的内容,本书都做了详细的讲述,以满足各种水平读者的需要;对于那些过于晦涩,使用不多的内容,本书只是简单讲述,并提供相关的参考线索,为读者进一步学习提供帮助。总之,本书希望能够让读者有一本在手、别无所求的满足感。  2.初学者入门的好帮手  多年的IBM主机技术培训和银行项目实训的教学经验,使得作者非常了解初学者对于学习IBM主机技术的需求,因此本书采用由浅入深、由易到难的编排顺序,将IBM主机技术的相关内容串联起来,使得读者只要按照本书的顺序阅读,就可以快速入门,并随着阅读内容的增加和对每个章节后面高级议题的深入理解,由初学者变成行业高手。  3.IBM主机技术高手们的增值器  由于行业的分工越来越细,即使从事IBM主机开发工作多年的人,所能接触的内容也是有限的,比方,有的人做联机方面比较多,对CICS方面的内容就比较熟悉;有的人做批处理方面的工作比较多,相应地,对作业流(JCL)方面的内容了解就要多些。由于本书充分考虑了IBM主机技术的完整性,因此,读者很容易通过本书,学到自己相对欠缺或不熟悉的知识,从而达到全面提高的目的。  此外,本书中有些议题,是目前国内书籍中很少讨论的,是作者查阅了大量的国外相关论文后汇总到本书中的,比如,处理多文件交易合并的平衡线算法及在银行应用系统中的应用、常用的MVS主控台命令和程序设计风格方面的一些内容等。  4.大量的程序例子  本书避免空洞的概念陈述,而是通过鲜活的程序实例来介绍IBM主机技术的各种元素,让读者能够从程序例子中了解技术元素的实际含义、在现实中的应用及使用过程中需要注意的地方。通过各种技术元素(程序、作业流、参数)的实际运用,让读者了解各种不同的技术元素是如何相互协作、相互配合、共同完成项目的。每个技术元素运行后的结果,都通过演示报表(MagicReport)的方法,清晰地呈现在读者的面前,加深读者对这些技术元素的理解。  5.查错和纠错技术的研讨  根据实际开发中的经验,作者深切地体会到,查错和纠错技术对于项目开发团队是多么重要,而这一点正好又是很多新手甚至工作多年的高手所欠缺的。写一个程序容易,但让程序正确完成指定的任务却不那么容易,这样的例子太多了。当程序员完成了一个程序后,运行出来的结果却是牛头不对马嘴,或运行中途异常结束的时候,很多读者都是一脸茫然,不知所措。  为了解决这个问题,本书提供了两种解决途径。  一是所谓的源程序级查错,即通过阅读源程序来辨别出错的原因。根据作者多年的实践经验,本书为各种类型的常见问题给出了几种可能出错的原因,比如,当你的程序出现死循环的时候,本书就为你提供了几种可能的原因,帮助读者通过阅读源程序尽快找到问题的根源。  另一种是根据运行时系统提供的信息,比如,系统的返回码或出错的程序代码的位移等,帮你顺藤摸瓜,一步一步地确定出错原因,从而找到解决办法。  这本书能够面世,要感谢的人很多。对于以前在银行或公司一起工作的同事们,正是跟他们一起工作的时光,使作者能够博采他们出色的技术特长,汲取他们横溢的技术精华,才能使本书的内容如此多姿多彩。限于篇幅,这里就不一一列出他们的名字了。  参与本书编写的还有王青萍女士,她提供了本书中全部的精美绘图并提供了与图相关的文字描述。本书由于时间跨度长,信息容量大,加上作者水平有限,一定有许多疏漏的地方,敬请广大读者批评指正。

内容概要

  《IBM主机技术一本通》由浅入深地讲述了IBM主机技术的各个方面,共分26章,包括:TSO、ISPF、JCL、VSAM、COBOL、DB2、CICS和常用的MVS主控台命令,通过演示报表(Magic Report)的方法,从实战出发,通过大量的源程序例子讲解了在应用开发过程中需要使用的IBM主机方面的技术,书中的例子都是作者亲自编写并运行成功的,可以作为读者学习的参考。  因为《IBM主机技术一本通》在系统地介绍所需的基本技术的同时,也为具备多年开发经验的读者提供了某些高级的议题,所以本书既可以作为从事IBM主机开发的初学者学习,也可以作为已有几年甚至多年IBM主机开发经验的人士参考。

书籍目录

MVS操作系统导论第1章  TSO、ISPF、ISPF/PDF介绍1.1  什么是TSO(Time Sharing Option)1.2  TSO终端1.3  TSO使用环境(与MVS/OS390/ZOS,ISPF之间的关系)1.4  RMF概述1.5  ISPF和ISPF/PDF概述1.5.1  程序开发设备(PDF)1.5.2  ISPF/PDF显示板的通用结构1.6  ISPF设定功能——选项01.7  z/OS数据集介绍1.7.1  顺序数据集1.7.2  分区数据集1.7.3  VSAM数据集类型1.7.4  磁盘目录表(VTOC)1.7.5  数据集命名规则1.7.5.1  分区数据集命名规则1.7.5.2  数据集命名惯例1.8  查看数据集——选项11.9  编辑数据集——选项21.9.1  常用的行命令1.9.2  常用的行命令(COMMAND)的例子1.9.3  基本命令及例子1.9.3.1  FIND/F——检索字符,功能键PF5/17=重新查找(REFIND)1.9.3.2  CHANGE/C——改变指定字符串数据的内容1.9.3.3  EXCLUDE/X——不显示与检索条件一致的行1.9.3.4  COPY/MOVE——从其他文件复制和移动数据到正在编辑的文件1.9.3.5  CUT/PASTE——剪切(CUT)和粘贴(PASTE)数据1.9.3.6  CREATE/REPLACE——数据文件的建立和替换1.9.3.7  RESET——重置(RESET)编辑界面中的各种数据显示1.9.3.8  HEX——十六进制数显示1.9.3.9  SORT——数据排序1.9.3.10  SUBMIT——使用TSOSUBMIT命令执行JOB1.9.3.11  EDIT——编辑其他的数据文件1.9.3.12  START——建立新的会话1.9.3.13  终止编辑会话1.9.3.14  附加的基本命令1.9.4  TSO编辑配置文件(PROFILE)的控制和显示1.10  系统例程功能——选项31.10.1  库维护选项(3.1)1.10.1.1  BLANK——显示分区数据集中的成员清单1.10.1.2  C——压缩数据集1.10.1.3  E——编辑数据集成员1.10.1.4  V——查看数据集成员内容1.10.1.5  R——为数据集成员改名1.10.1.6  D——删除数据集成员1.10.1.7  P——打印数据集成员内容1.10.1.8  X——打印数据集索引1.10.1.9  L——打印整个数据集1.10.1.10  I——显示数据集信息1.10.1.11  S——显示数据集简要信息1.10.2  数据集例程选项(3.2)1.10.2.1  分配新数据集1.10.2.2  为数据集改名1.10.2.3  删除数据集1.10.2.4  将未登目数据集登目(Catalog)1.10.2.5  将数据集从目录中移除(Uncatalog)1.10.2.6  显示数据集简短信息1.10.2.7  VSAM例程1.10.3  数据集移动和复制选项(3.3)1.10.4  数据集清单列表选项(3.4)1.10.4.1  数据集成员显示、打印和操作1.10.4.2  VTOC信息的显示和打印1.10.5  重置(RESET)统计信息选项(3.5)1.10.6  数据集打印选项(3.6)1.10.7  作业输出清单选项(3.8)1.10.8  TSO命令选项(3.9)1.10.9  显示格式设定选项(3.11)1.10.10  数据集比较选项标准版(3.12)和扩展版(3.13)1.10.11  字符串检索选项标准版(3.14)和扩展版(3.15)1.11  TSO命令1.11.1  离开ISPF/PDF1.11.2  输入TSO命令1.11.2.1  ISPF/PDF选项6——TSO COMMAND1.11.2.2  使用TSO前缀1.11.3  TSO HELP1.11.4  LISTCAT命令1.11.5  LISTDS命令1.11.6  LISTALC命令1.11.7  DELETE命令1.11.8  RENAME命令第2章  作业控制语言(Job Control Language——JCL)2.1  作业控制语言JCL的基本结构2.2  JOB语句2.2.1  JOB语句中的位置参数2.2.1.1  账户信息2.2.1.2  程序员名2.2.2  JOB语句中的关键字参数2.2.2.1  MSGLEVEL2.2.2.2  MSGCLASS2.2.2.3  COND2.2.2.4  ADDRSPC2.2.2.5  CLASS2.2.2.6  NOTIFY2.2.2.7  PRTY2.2.2.8  REGION2.2.2.9  TIME2.2.2.10  TYPRUN2.2.2.11  USER参数2.2.2.12  PASSWORD2.2.2.13  多个关键字参数一起使用2.3  EXEC语句2.3.1  EXEC语句的位置参数2.3.1.1  PGM= 位置参数2.3.1.2  PROC=位置参数2.3.1.3  省略PROC=关键字2.3.2  关键字参数2.3.2.1  PARM参数2.3.2.2  COND参数2.3.2.3  程序库2.4  DD语句2.4.1  DD语句参数2.4.2  DD语句的位置参数2.4.2.1  流内数据2.4.2.2  哑(Dummy)数据集2.4.3  DD语句的关键字参数2.4.3.1  DSN2.4.3.2  DISP2.4.3.3  UNIT2.4.3.4  VOLUME2.4.3.5  SPACE2.4.3.6  LABEL2.4.3.7  DCB2.4.3.8  SYSOUT2.4.3.9  数据集串联(Concatenation)2.4.3.10  存储管理子系统(SMS)2.5  向后引用(Backward Reference)2.6  条件JCL2.7  INCLUDE 组2.8  从JCL向PROGRAM传递参数2.9  JOB 提交2.10  JES2——作业处理步骤2.11  JES3——作业处理步骤2.12  系统显示和查询功能(SDSF)2.12.1  输出队列的显示及操作2.12.2  挂起队列的显示及操作2.12.3  显示活动的作业清单及操作2.12.4  显示所有作业清单及操作2.12.5  输入队列清单及其操作2.12.6  初始器(INIT)的显示及操作2.12.7  系统日志(LOG)2.12.8  用户日志(ULOG)2.13  系统例程(Utility)及常用工具2.13.1  选择需要的例程2.13.2  例程使用的ddname2.13.3  例程控制语句2.13.4  复制和打印顺序数据集2.13.5  编辑顺序数据集2.13.6  转换顺序数据集为分区数据集的成员2.13.7  转换顺序数据集到分区数据集——增加新成员2.13.8  复制分区数据集或分区数据集成员2.13.9  分区数据集的压缩2.13.10  维护源程序库2.13.11  打印分区数据集(PDS)目录清单2.13.12  比较分区数据集2.13.13  比较顺序数据集2.13.14  比较分区数据集中的成员2.13.15  顺序文件的建立和删除2.13.16  文件的成批复制和重命名2.13.17  分类2.13.17.1  数据集的排序2.13.17.2  数据集的合并2.13.17.3  数据集的复制2.13.17.4  数据集记录的筛选——包含满足条件的记录2.13.17.5  数据集记录的筛选——生成头记录2.13.17.6  数据集记录的筛选——跳过第1条记录2.13.17.7  交易合计2.13.17.8  将输入文件分成两个文件2.14  JCL过程的定义2.15  JCL过程的调用2.16  过程调用中COND参数的使用2.17  JCL符号参数2.18  JCL过程的测试2.19  过程定义和调用的例子2.19.1  定义和调用流内过程2.19.2  调用定义在系统过程库中的过程   1652.19.3  调用定义在系统过程库中的过程并覆盖原过程中的参数2.19.4  调用私有过程库中的过程并覆盖原过程中的某些参数2.20  作业运行清单(JOB LOG)的阅读和查错2.21  JCL过程参数置换和RESTART语句第3章  VSAM文件处理3.1  概念和设备3.1.1  KSDS组成部分3.1.2  ESDS组成部分3.1.3  RRDS组成部分3.1.4  控制间隔3.1.5  控制区域3.1.6  跨越记录(Spanned)3.1.7  KSDS文件的物理实现3.1.8  VSAM文件共享选项(SHAREOPTIONS)3.1.8.1  跨区域(Cross-Region)选项3.1.8.2  跨系统(Cross-System)选项3.1.9  VSAM目录(VSAM Catalogs)3.1.9.1  主目录3.1.9.2  用户目录3.1.9.3  VSAM数据空间3.1.9.4  VSAM族3.1.9.5  非VSAM数据集(Non-VSAM Datasets)3.2  存取方式服务设施(Access Method Services)3.2.1  语句的语法3.2.2  定义用户目录3.2.3  定义数据空间3.2.4  定义别名3.2.5  定义VSAM文件3.2.6  装载记录到VSAM文件中3.2.6.1  使用REPRO备份文件3.2.6.2  从备份文件中恢复数据3.2.7  建立VSAM文件的可移植备份3.2.8  恢复VSAM文件的可移植备份3.2.9  维护可移植备份的次索引3.2.10  备份和恢复目录3.2.11  删除VSAM和非VSAM目标3.2.12  显示目录清单3.2.13  打印或显示数据集内容3.2.14  修改文件属性3.2.15  辅助索引3.2.16  核实VSAM数据集3.3  世代数据集GDG3.3.1  GDG的定义及建立3.3.2  GDG文件的应用第4章  常用的MVS主控台命令4.1  JES2命令4.1.1  $D JOB显示特定作业(JOB)的信息4.1.1.1  显示作业的输出信息4.1.1.2  显示使用缓冲区(SPOOL1)超过1%的作业信息4.1.1.3  $D STC查看已启动任务的作业号和状态4.1.1.4  显示系统中的TSU用户及其作业号4.1.2  $D SPOOL显示缓冲区(Spool)的状态4.1.3  $DA显示系统中所有活动的作业的状态4.1.3.1  显示系统中所有活动作业的状态4.1.3.2  显示特定设备上所有活动作业的状态4.1.4  $D U显示JES2控制的设备的状态4.1.5  $D I显示JES中初始器(Initiator)的状态4.1.5.1  显示JES中所有的初始器(Initiator)所定义的分区和状态4.1.5.2  显示Initiator 3的详细信息4.1.6  $D Q显示系统中所有的队列中的作业信息4.1.6.1  显示系统中所有的队列中的作业信息4.1.6.2  显示缓冲区中所有挂起(Hold)作业的信息4.1.7  $C JOB取消作业、TSO用户和STC4.1.8  $A A释放系统中所有挂起的作业4.1.9  $A JOB释放挂起的作业4.1.9.1  释放作业34到404.1.9.2  释放作业号为10到15的所有批处理作业、STC和TSU用户4.1.10  $H A暂停系统中的所有的作业4.1.11  $H JOB暂停特定的作业4.1.11.1  暂停作业10开始的所有作业4.1.11.2  暂停作业STC000514.1.12  $S I启动初始器(Initiator)4.1.12.1  将初始器Initiator 5从DRAINED状态变成INACTIVE状态4.1.12.2  启动Initiator 8到104.1.13  $S XEQ让JES2开始从QUEUE中选择作业执行4.1.14  $P JES2停止JES2的处理4.1.15  $P I停止特定的初始器4.1.16  $P O Job清除作业的输出信息4.1.16.1  删除作业IBMUSERN的输出信息4.1.16.2  将class A和B中的所有作业输出删除掉4.1.16.3  解决JES2缓冲区(SPOOL)满的问题4.1.17  $T JOB修改作业的类别和优先级4.1.17.1  将作业45的运行CLASS改为X4.1.17.2  将作业45的优先级加24.1.17.3  将执行队列中用户为IBMUSER的作业的运行CLASS改为Y4.1.17.4  将执行队列中运行CLASS为Y的作业的CLASS改为A4.2  MVS命令4.2.1  DISPLAY JOBS显示当前正在运行的作业、TSO用户和STC任务4.2.1.1  显示当前正在运行的作业、TSO用户和STC任务4.2.1.2  显示TSO用户IBMUSER的详细信息4.2.1.3  显示所有IBMUSER用户提交的交易4.2.2  Display Request显示控制台上没有回答信息的总数4.2.2.1  显示控制台上没有回答信息的总数4.2.2.2  查询未回答信息的作业名4.2.2.3  显示以IBM开头的作业的未回答信息4.2.3  DISPLAY SMF显示系统中的SMF配置4.2.3.1  显示系统中的SMF配置、使用的文件及每个文件的使用百分比4.2.3.2  显示SMF的当前配置情况4.2.4  DISPLAY CONSOLES显示控制台MASTCONS上的详细信息4.2.4.1  显示控制台MASTCONS上的详细信息4.2.4.2  查询主控台未回答信息的个数及系统可容许的总数4.2.5  DISPLAY M显示当前系统设备的配置信息4.2.5.1  显示当前系统的所有设备的配置信息4.2.5.2  显示设备01C0的状态信息4.2.6  DISPLAY OPDATA显示操作员信息4.2.7  DISPLAY ASM显示系统中的PAGE数据集的信息4.2.8  DISPLAY U显示直接存取设备的信息4.2.9  DISPLAY DUMP显示DUMP数据集的信息4.2.10  DISPLAY GRS监测资源争用状况4.2.10.1  显示资源争用(Contention)信息4.2.10.2  显示等待某资源的作业4.2.10.3  显示某一特定资源的使用情况4.2.10.4  DEVSERV查看NON-SMS管理的卷COBOL程序设计导论第5章  COBOL语言简介5.1  COBOL特性5.2  标识部(Identification Division)5.3  环境部(Environment Division)5.4  数据部(Data Division)5.5  过程部(Procedure Division)5.5.1  节(Section)5.5.2  段(Paragraph)5.5.3  语句和句子5.6  完整的COBOL程序5.7  最精致的COBOL程序5.8  普通COBOL程序编译流程图及样板作业流5.9  COBOL编码规则5.10  名字的结构5.11  数据描述和数据传送(Move)语句5.11.1  COBOL数据类型及模式(Picture)短语5.11.2  级别号表达数据的层次5.11.3  特殊级别号数据项5.11.4  组合项和基本项5.11.5  数据用法(USAGE)短语5.11.6  数字编辑(Edited)格式5.11.7  数据传送(MOVE)语句5.11.8  程序例子(MOVE语句)5.11.9  运行结果(MOVE语句)第6章  COBOL语言数据处理6.1  DISPLAY语句6.2  ACCEPT语句6.3  DISPLAY和ACCEPT语句的程序例子6.3.1  使用ACCEPT和DISPLAY的完整程序6.3.2  运行ACCEPT和DISPLAY的程序的作业流6.3.3  使用ACCEPT和DISPLAY的程序的输出结果6.4  PERFORM语句6.4.1  程序例子(PERFORM语句)6.4.2  程序执行结果(PERFORM语句)6.5  IF语句6.6  SET语句6.7  EVALUATE语句6.8  CONTINUE和NEXTSENTENCE语句6.8.1  程序例子(CONTINUE和NEXT SENTENCE语句)6.8.2  运行结果报表(CONTINUE和NEXT SENTENCE语句)6.9  算术运算语句6.9.1  四舍五入(ROUNDED)选项6.9.2  数据溢出(ON SIZE ERROR)选项6.9.3  带有余数(REMAINDER)选项的DIVIDE语句6.9.4  综合运算(COMPUTE)语句6.9.5  程序例子(算术运算)6.10  STRING命令6.10.1  程序例子(STRING命令)6.10.2  程序运行结果(STRING命令)6.11  UNSTRING命令6.11.1  程序例子(UNSTRING命令)6.11.2  程序运行结果(UNSTRING命令)6.12  INSPECT语句6.12.1  程序例子(INSPECT命令)6.12.2  程序运行结果(INSPECT命令)6.13  COPY语句6.13.1  程序例子(COPY命令)6.13.2  程序编译清单(COPY命令)第7章  向COBOL专家迈进7.1  主程序和子程序7.1.1  主程序的CALL语句7.1.2  子程序7.1.3  主程序例子1(MAIN1)7.1.4  子程序例子1(MYSUB1)7.1.5  程序运行结果(MAIN1)7.1.6  主程序例子2(MAIN2)7.1.7  程序运行结果(MAIN2)7.1.8  子程序例子2(MYSUB2)7.1.9  JCL调用例子(MYSUB2)7.1.10  程序运行结果(MYSUB2)7.2  表处理7.2.1  表的定义7.2.2  下标、索引和SET索引语句7.2.3  SEARCH动词7.2.4  表的初始化7.2.5  二维表7.2.6  表初始化程序例子(TABLE8)7.2.7  表初始化作业流7.2.8  表初始输入数据7.2.9  表初始化运行结果7.2.10  二维表初始化程序例子(TABLE6)7.2.11  二维表初始化作业流7.2.12  二维表初始输入数据7.2.13  二维表初始化运行结果7.2.14  顺序和折半检索程序例子(TABLE3)7.2.15  运行作业流(TABLE3)7.2.16  运行结果(TABLE3)7.3  提要第8章  顺序文件的维护8.1  COBOL的扩充8.1.1  SELECT语句8.1.2  在COBOL程序中使用ddname8.1.3  FD项目8.1.4  OPEN和CLOSE语句8.2  平衡线算法8.3  银行主文件维护平衡线程序(BKUPD1)8.4  交易文件的格式8.5  主文件的格式8.6  运行银行主文件维护平衡线程序的作业流(GOBKUPD1)8.7  交易文件(BKTRAN)8.8  按照账户分类以后的交易文件(BKTRAN-SORT)8.9  旧主文件(BKMASTO)8.10  新主文件(BKMASTN)8.11  银行主文件维护的运行结果8.12  银行主文件维护平衡线程序的扩充(BKUPD2)8.13  运行银行主文件维护平衡线扩充程序的作业流(GOBKUPD2)8.14  银行主文件维护平衡线扩充程序的运行结果8.15  交易日报表8.16  提要第9章  索引文件9.1  概要9.2  文件组织的概念9.3  COBOL要求9.3.1  环境部9.3.2  过程部9.4  文件状态关键字概述9.5  非顺序文件维护9.6  平衡线算法的索引文件版程序(BKUPD3)9.7  平衡线算法的索引文件版程序运行作业流(GOBKUPD3)9.8  运行结果清单9.9  与顺序文件输出结果的比较9.10  提要第10章  结构程序设计及源程序级查错10.1  历史回顾10.2  定义10.3  基本结构的充分性10.4  COBOL中的实现10.5  结构程序设计的优点10.6  结构理论的扩充10.7  GO TO论战10.8  源程序级查错10.9  常见运行错误10.9.1  未能初始化(再初始化)计数器10.9.2  计数器定义得太小10.9.3  循环内的错误10.9.4  SEARCH动词的错误使用10.9.5  不正确使用MOVE语句10.9.6  与带符号数字打交道要特别小心10.9.7  不适当使用嵌套IF语句10.9.8  遗漏或多余句号10.9.9  WRITE后存取FD区域10.9.10  从被PERFORM模块中不适当地跳出10.9.11  未能设置或重新设置开关10.9.12  不适当调用子程序10.9.13  文件开始或结束条件错误10.9.14  索引或下标非法10.9.15  不适当使用注解10.10  查找运行时错误产生的原因10.10.1  确定导致程序异常终止的指令的位移10.10.2  生成带有程序指令位移的COBOL程序编译清单10.10.3  确定导致程序异常结束的COBOL源程序语句10.10.4  确定导致程序异常结束的原因10.11  提要第11章  程序设计风格的探讨11.1  保持动词的层次关系11.2  选择有意义的名字11.3  格式化数据部分11.4  有吸引力的空白行11.5  将句号(.)单独写在一行11.6  避免使用逗号(,)11.7  使用73~80列11.8  限制开关和下标于单个用途11.9  避免使用常数11.10  放置模块使得能找到它们11.11  使用适当的注解11.12  PERFORM 段而不是节11.13  避免使用MOVECORRESPONDING11.14  去掉77级项目11.15  使用88级项目以减少复合条件11.16  对复合算术运算使用COMPUTE动词11.17  避免使用文字常数11.18  动态初始化表11.19  使用READ INTO、WRITE FROM和WS BEGINS HERE11.20  传送单个01级到子程序11.21  避免“聪明的代码”11.22  不要过于看重效率,但仔细地选择算法11.23  预防式地编码11.24  首先考虑,然后编码11.25  提要DB2实用程序设计第12章  DB2的概念12.1  DB2目标层次结构12.2  数据库的连接12.3  SQL语言类型12.4  数据定义语言(DDL)12.4.1  DB2存储组12.4.2  数据库(Database)12.4.3  数据库表空间(Tablespace)12.4.4  数据库的表(Table)12.4.5  引用完整性(Referential Integrity)12.4.6  索引(Index)12.4.7  视图(View)12.4.8  数据库目标的删除(DROP)12.4.9  DDL语句的应用实例12.5  数据控制语言(Data ControlLanguage——DCL)12.5.1  赋予(GRANT)和废除(REVOKE)语句12.5.2  赋予及废除权限12.6  数据操作语言(Data Manipulation Language——DML)12.6.1  数据检索12.6.1.1  检索整个表12.6.1.2  从表中挑选特定的列12.6.1.3  改变列的排序12.6.1.4  从表中挑选特定的行12.6.1.5  使用多个条件挑选特定的行12.6.1.6  从多个表中选择要求的列12.6.1.7  使用关系名12.6.1.8  查询结果排序12.6.1.9  计算出的列12.6.1.10  为计算出的列命名12.6.1.11  函数(Functions)12.6.1.12  分组合计(Grouping Values)12.6.1.13  约束一组数据的使用12.6.1.14  去掉重复的记录12.6.1.15  字符串模式查找12.6.1.16  按数据范围搜索12.6.1.17  搜索空值(Null Values)12.6.1.18  按否定的条件查询12.6.1.19  检索一组值12.6.2  数据更新12.6.2.1  插入数据记录12.6.2.2  插入一组值12.6.2.3  插入大量数据12.6.2.4  修改数据记录12.6.2.5  修改大量的数据12.6.2.6  删除数据12.6.2.7  删除表中的所有行12.6.3  存储过程12.6.3.1  建立或修改存储过程12.6.3.2  模式限定符12.6.3.3  删除存储过程12.6.4  用户定义函数12.6.4.1  外部用户定义函数(External UDFs)12.6.4.2  有源用户定义函数(Sourced UDFs)12.6.4.3  表函数(Table Functions)12.6.4.4  执行用户定义函数12.6.5  触发器12.7  DB2I工具12.7.1  DB2I工具概要12.7.2  SPUFI第13章  DB2程序准备13.1  DB2程序编译流程图及样板作业流13.2  预编译和绑定13.2.1  预编译13.2.1.1  预编译器13.2.1.2  修改过的源程序代码13.2.1.3  DBRM13.2.2  绑定13.2.2.1  绑定到包和直接绑定方案的区别13.2.2.2  方案、包和集合13.2.2.3  运行时COBOL装载模块调用DBRM13.3  绑定与再绑定13.3.1  自动再绑定13.3.2  绑定与再绑定选项13.3.3  让绑定决定存取的目标13.3.4  绑定的其他考虑因素13.4  删除包或方案第14章  DB2程序结构14.1  分隔符14.2  主变量和主变量组合项14.2.1  主变量的用法14.2.2  主变量组合项的用法14.2.3  主变量——接收单行数据14.2.4  主变量——接收多行数据14.2.5  主变量——插入记录行14.2.6  主变量——修改数据14.2.7  主变量——各种语言的定义14.3  DCLGEN14.3.1  从DB2I主菜单进入DCLGEN选项14.3.2  DCLGEN输出例子14.4  处理空数据14.5  SQLCA——SQL通信区14.6  SQL INCLUDE 语句14.7  查询客户资料程序14.7.1  查询DB2客户资料源程序(BKINQ)14.7.2  数据库表CUSTINFO的记录格式及DCLGEN输出14.7.3  数据库表通信区SQLCA的记录格式14.7.4  运行客户资料查询程序的JCL14.7.5  程序运行结果14.8  修改客户资料程序(BKUPDT)14.8.1  修改客户资料源程序14.8.2  程序运行前客户资料表中的记录14.8.3  运行客户资料修改程序的JCL14.8.4  客户资料修改的输入文件14.8.5  客户资料修改后表中的内容14.9  修改明细客户资料程序——空值和变长记录处理14.9.1  修改明细客户资料源程序14.9.2  客户明细资料表CUSTINF1的记录格式及DCLGEN输出结果14.9.3  计算字符串长度子程序14.9.4  明细客户资料表中原来的内容14.9.5  输入文件CUSTINFO14.9.6  运行明细客户资料程序的JCL14.9.7  修改后的明细客户资料表14.10  使用游标14.10.1  定义游标14.10.2  打开游标14.10.3  执行SQL语句14.10.3.1  取数据(FETCH)14.10.3.2  定位修改(Positioned UPDATE)14.10.3.3  定位删除(Positioned DELETE)14.10.3.4  游标定位修改或删除的一些限制14.10.4  关闭游标14.10.5  保持游标(Cursor WITH HOLD)14.10.6  游标的重新定位14.11  浏览客户资料表(BKNMINQ)——使用游标处理多个记录14.11.1  浏览客户资料表源程序14.11.2  运行浏览客户资料表程序的JCL14.11.3  程序运行前客户资料表的内容14.11.4  浏览客户资料表程序的查询结果第15章  DB2恢复和锁定的概念15.1  可恢复单元(Unit of Recovery)15.2  提交(COMMIT)和回滚(ROLLBACK)15.3  保存点(SAVEPOINT)15.4  数据恢复15.4.1  日志15.4.2  日志数据集15.4.3  引导数据集BSDS15.4.4  SYSIBM.SYSLGRNX15.4.5  数据库恢复三部曲15.5  数据锁15.5.1  锁的属性15.5.2  锁的大小(Lock Sizes)15.5.2.1  表锁(Lock Table)语句15.5.2.2  锁定选定的分区15.5.2.3  大对象(LOB)锁15.5.3  锁模式(Lock Modes)15.5.3.1  表或表空间锁15.5.3.2  页锁或行锁15.5.4  表空间和表锁的持续时间(Lock Durations)15.5.5  页锁或行锁的持续时间——隔离级别15.5.5.1  可重复读15.5.5.2  读稳定性15.5.5.3  游标稳定性15.5.5.4  未提交读15.5.6  WITH RR/RS/CS/UR短语的使用15.5.7  锁的覆盖与避免15.5.8  悲观锁定与乐观锁定第16章  动态SQL介绍16.1  使用动态SQL16.2  在应用程序中嵌套动态SQL16.3  完整的非SELECT语句16.3.1  完整的非SELECT语句源程序(BKDYNA1)16.3.2  完整的非SELECT语句——程序运行前表中的内容16.3.3  完整的非SELECT语句——运行程序的作业流16.3.4  完整的非SELECT语句——程序运行后的显示信息及表中的记录16.4  参数化的非SELECT语句16.4.1  参数化的非SELECT语句源程序(BKDYNA2)16.4.2  参数化的非SELECT语句——程序运行前表中的内容16.4.3  参数化的非SELECT语句——运行程序的作业流16.4.4  参数化的非SELECT语句——程序运行后的显示信息及表中的记录16.5  固定列表的SELECT语句16.5.1  固定列表的SELECT语句源程序(BKDYNA3)16.5.2  固定列表的SELECT语句——运行程序的作业流16.5.3  固定列表的SELECT语句——程序运行结果第17章  管理DB2测试数据17.1  数据移动例程17.1.1  装载(Load)例程17.1.2  装载的完整作业流17.1.2.1  增加或覆盖17.1.2.2  装载排好序的行17.1.2.3  装载分区表17.1.2.4  数据类型转换17.1.2.5  引用完整性(Referential Integrity)17.1.2.6  不强制执行(ENFORCE NO)17.1.3  数据卸载(Unload)例程17.1.4  使用DSNTIAUL程序卸载数据17.2  数据统计17.2.1  数据统计概述17.2.2  统计(RUNSTATS)例程17.2.2.1  输出报告并修改DB2编目表17.2.2.2  运行统计例程时存取数据库17.2.2.3  样本数据17.2.2.4  在DB2编目表上运行统计例程17.2.2.5  统计例程完整作业流17.3  重组(REORG)17.3.1  重组表空间17.3.2  重组表空间的完整作业流17.3.3  重组索引第18章  DB2性能方面的考虑18.1  存取路径及优化18.2  DB2解释(EXPLAIN)工具18.3  收集解释数据18.4  分析解释数据18.5  存取路径评估18.5.1  索引存取18.5.2  表存取18.5.3  预取18.6  存取路径提示(优化提示)18.7  使用解释表输出的指引18.8  改善性能的索引设计18.8.1  匹配索引扫描(MATCHCOLS > 0)18.8.2  索引筛选18.8.3  不匹配索引扫描(ACCESSTYPE= I而且MATCHCOLS = 0)18.8.4  IN列表索引扫描(ACCESSTYPE= N)18.8.5  多索引存取(ACCESSTYPE为M、MX、MI或MU)18.8.6  一次获取存取(ACCESSTYPE= I1)18.8.7  只存取索引(INDEXONLY= Y)18.8.8  相等唯一索引(MATCHCOLS =索引列数)18.9  使用索引以避免分类18.10  避免死锁CICS程序设计导论第19章  CICS应用程序环境19.1  CICS 基本概念回顾19.2  CICS 联机交易19.3  CICS模块组成19.3.1  CICS管理功能19.3.2  CICS基本组成19.3.3  CICS管理模块19.3.4  CICS系统控制表19.3.5  CICS数据区域19.4  CICS交易工作流程19.5  CICS程序并行工作原理第20章  CICS应用系统设计20.1  对话与伪对话20.2  通信区(COMMAREA)20.3  伪对话程序的实现方法第21章  CICS命令概述21.1  编写CICS命令21.2  程序准备21.3  基本界面支持(Basic Mapping Support)21.3.1  3270字段基本概念21.3.2  界面定义样本21.3.2.1  如何编写BMS宏命令21.3.2.2  如何编写汇编语言语句21.3.2.3  如何使用DFHMSD宏命令定义界面集(Mapset)21.3.2.4  如何使用DFHMDI宏命令定义界面集中的界面(Map)21.3.2.5  如何使用DFHMDF宏命令定义界面中的字段21.3.2.6  BMS字段定义模板21.3.3  银行柜员签到程序的界面格式及界面集完整代码21.4  界面准备21.5  符号界面及符号界面格式21.6  界面的输出21.7  界面的输入21.8  常用标识键描述(DFHAID)21.9  界面显示属性常量(DFHBMSCA)21.10  异常状态第22章  CICS程序对程序的控制22.1  CICS程序对程序的控制概述22.2  LINK命令22.3  XCTL命令22.4  通信区长度不匹配的讨论22.5  COBOL CALL与LINK或XCTL的比较22.6  用户表的装载(LOAD)和释放(RELEASE)22.7  启动新交易(START)并接收(RETRIEVE)所传递的数据22.8  RETURN命令第23章  CICS数据处理23.1  CICS存取VSAM的方法23.2  VSAM基本概念回顾23.2.1  VSAM文件的组织形式和存取方法23.2.1.1  键顺序数据组织23.2.1.2  进入顺序数据组织23.2.1.3  相对顺序数据组织23.2.1.4  三种数据组织形式的比较23.2.2  VSAM的物理结构与逻辑结构23.3  VSAM文件独占控制23.4  交易死锁23.5  工作单元的资源保护23.6  联机程序的组织结构23.7  CICS中访问VSAM文件的常用命令23.7.1  READ命令23.7.2  WRITE命令23.7.3  REWRITE命令23.7.4  DELETE命令23.7.5  UNLOCK命令23.8  CICS中浏览VSAM文件的常用命令23.8.1  STARTBR命令23.8.2  READNEXT命令23.8.3  READPREV命令23.8.4  ENDBR命令23.8.5  RESETBR命令23.9  银行交易浏览程序例子23.9.1  联机交易文件的格式23.9.2  定义交易文件新格式和次索引的作业流23.9.3  浏览交易界面源代码23.9.4  浏览交易简化的符号界面23.9.5  浏览交易COBOL程序完整源代码23.9.6  银行浏览交易联机CICS资源定义23.9.7  银行浏览交易联机运行结果演示23.10  CICS存取DB2的方法23.11  CICS访问DB2的程序结构23.12  CICS访问DB2程序的编译步骤23.13  CICS应用程序访问DB2的准备工作23.13.1  定义CICS与DB2之间的连接(DB2CONN)23.13.2  定义进入线程(DB2ENTRY)23.13.3  定义DB2交易(DB2TRAN)23.14  其他CICS常用命令23.14.1  任务控制命令(ENQ和DEQ)23.14.2  获取系统日期和时间信息23.14.2.1  ASKTIME命令23.14.2.2  FORMATTIME命令23.14.3  存取CICS系统公共信息(ADDRESS命令)23.14.4  内存管理命令(GETMAIN和FREEMAIN)23.14.4.1  GETMAIN命令23.14.4.2  FREEMAIN命令第24章  CICS队列24.1  CICS队列设备24.2  分区内过渡队列24.3  分区外过渡队列24.3.1  定长记录文件24.3.2  变长记录文件24.3.3  结尾记录文件24.4  间接目的地24.5  过渡队列服务24.5.1  输出数据到过渡队列24.5.2  从过渡队列中读出数据24.5.3  从过渡队列中删除数据24.6  触发交易启动24.7  临时存储队列概述24.8  临时存储队列服务24.8.1  写数据到临时存储队列24.8.2  修改临时存储队列中的数据24.8.3  从临时存储队列中读取数据24.8.4  删除临时存储队列中的数据24.9  临时存储队列的典型用法24.10  临时存储队列命名24.11  删除临时存储队列24.12  临时数据的存放位置24.13  队列的老化24.14  队列属性24.15  过渡数据队列和临时存储队列的比较24.16  CEBR24.16.1  默认TS队列24.16.2  CEBR的帮助24.16.3  队列显示24.16.4  获取TD队列第25章  银行系统实例25.1  银行系统流程图25.2  柜员签到模块25.2.1  程序(EMLOGON)25.2.2  交易(EMPL)25.2.3  界面(EMPSET1)25.2.4  柜员信息表(EMPLINFO)25.3  账户维护菜单模块25.3.1  程序(EMMENU)25.3.2  交易(EMME)25.3.3  界面(EMESET1)25.4  建立新账户模块25.4.1  程序(CREATE)25.4.2  子程序(AUTOPE)25.4.3  子程序(STRLEN)25.4.4  子程序(NUMEDIT)25.4.5  交易(CREA)25.4.6  界面(CRESET1)25.4.7  文件(AUTOPE)25.4.8  客户账户资料表(CUSTINFO)25.4.9  交易流水表(OPERATIN)第26章  CICS提供的交易及调试CICS应用程序26.1  CICS系统的启动和关闭26.2  CICS提供的交易26.3  CICS签到交易CESN26.4  CICS签退交易CESF26.5  查看终端状态交易CEOT26.6  信息查找CMAC交易26.7  命令层的解释程序CECI和CECS交易26.8  CEMT(MASTER TERMINAL)交易26.8.1  移除资源(DISC)26.8.2  查询CICS资源状态26.8.2.1  查看CICS定义的文件状态26.8.2.2  查看CICS定义的程序状态26.8.2.3  查看CICS定义的终端状态26.8.2.4  查看CICS定义的转存文件状态26.8.2.5  查看CICS运行的任务状态26.8.2.6  查看CICS定义的交易状态26.8.2.7  查看CICS定义的外部连接状态26.8.3  修改CICS资源状态26.8.3.1  更新联机程序的新版本26.8.3.2  更改文件状态26.8.3.3  切换当前使用的转存(DUMP)文件26.8.3.4  停止正在运行的任务(TASK)26.8.3.5  更改交易的状态26.8.3.6  更改终端的状态26.8.4  执行特殊的CICS功能26.9  联机资源定义交易(CEDA)26.9.1  CEDA命令的子命令26.9.2  CEDA DELETE命令和CEDA REMOVE命令的异同点26.9.3  添加资源到成员清单的步骤26.9.4  CEDA常用命令的使用方法26.9.4.1  定义程序26.9.4.2  定义界面集26.9.4.3  定义文件26.9.4.4  查看交易清单及交易详细定义26.9.4.5  查看程序清单及程序详细定义26.9.4.6  查看界面清单及界面定义26.9.4.7  查看DB2进入线程清单及详细定义26.9.4.8  查看DB2交易清单及详细定义26.9.4.9  安装资源到CICS中26.10  CICS联机交易诊断工具26.10.1  CEDF交易26.10.1.1  开始EDF跟踪(单终端模式)26.10.1.2  PF7/PF8滚动显示26.10.1.3  覆盖参数(Argument)的值26.10.1.4  覆盖返回码(Response)26.10.1.5  显示翻译器中的源程序行数26.10.1.6  PF6显示用户界面26.10.1.7  PF2以十六进制格式显示屏幕上的内容26.10.1.8  PF5显示工作存储区26.10.1.9  在存储区界面用PF4显示EIB26.10.1.10  在存储区界面使用PF2调用CEBR交易26.10.1.11  在存储区界面使用PF5调用CECI交易26.10.1.12  设定停止显示的条件26.10.1.13  显示以前的命令26.10.1.14  伪对话的继续26.10.1.15  程序终止26.10.1.16  任务终止26.10.1.17  申请异常中断26.10.1.18  开始EDF跟踪(双终端模式)26.10.2  CEDX交易26.10.3  设置用户跟踪入口点

图书封面

图书标签Tags

评论、评分、阅读与下载


    IBM主机技术一本通 PDF格式下载


用户评论 (总计5条)

 
 

  •   正版,帮老婆买的,实惠!
  •   一直盯着的一本书
  •   好厚一本书啊
  •   主机的书很少,这本书很不错,内容比较全面
  •   路很漫长,现在开始
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7