IBM主机中文参考书介绍

来源:互联网 发布:windows api 文件 编辑:程序博客网 时间:2024/05/16 12:52

IBM主机技术一本通即将于下月与读者见面

 (2011-02-09 12:10:49)[编辑][删除]
标签: 

主机

 

大机

 

mainframe

 

中文资料

 

cics

 

cobol

 

db2

 

jcl

 

tso

 

vsam

 

it

 

   《IBM主机技术一本通》即将于2011年3月初与广大读者见面,该书共分26章,由浅入深讲述了IBM主机技术的各个方面,包括:TSO、ISPF、JCL、VSAM、COBOL、DB2、CICS和常用的MVS主控台命令,通过演示报表(Magic Report)的方法,从实战出发,通过大量的源程序例子讲解了在应用开发过程中需要使用的的IBM主机方面的技术,书中的例子都是作者亲自编写并运行成功的,可以作为读者学习的参考。

    本书既可以作为从事IBM主机开发的初学者学习,也可以作为已有几年甚至多年IBM主机开发经验的人士参考,因为本书在系统地介绍所需的基本技术的同时,也为具备多年经验的读者提供了某些高级的议题,比如,结合银行系统的开发实例,书中讲述了主档维护的平衡线算法,介绍了应用程序开发员很少有机会接触但又非常实用的主控台常用MVS命令、提高DB2程序性能的EXPLAIN技术以及结构程序设计方面的一些探讨等。

    下面是该书的目录,读者可以通过它了解该书的内容。如果读者有兴趣购买该书,请与作者联系,非诚勿扰!作者的联系方式为:

    MSN:NEWMANLV@HOTMAIL.COM

    QQ: 453276749

    Email: NEWMANLV168@HOTMAIL.COM

 

1 第一章 TSO、ISPF、ISPF/PDF介绍 23
1.1 什么是TSO(Time Sharing Option)? 23
1.2 TSO终端 24
1.3 TSO使用环境(与MVS/OS390/ZOS,ISPF之间的关系) 25
1.4 RMF概述 25
1.5 ISPF 和ISPF/PDF 概述 25
1.5.1 程序开发设备(PDF) 25
1.5.2 ISPF/PDF显示板的通用结构 27
1.6 ISPF设定功能 – 选项0 28
1.7 ZOS数据集介绍 29
1.7.1 顺序数据集 29
1.7.2 分区数据集 30
1.7.3 VSAM数据集类型 30
1.7.4 磁盘目录表(VTOC) 31
1.7.5 数据集命名规则 32
1.7.5.1 分区数据集命名规则 32
1.7.5.2 数据集命名惯例 32
1.8 查看数据集–选项 1 32
1.9 编辑数据集–选项 2 35
1.9.1 常用的行COMMAND 37
1.9.2 常用的行COMMAND的例子 38
1.9.3 基本命令及例子 43
1.9.3.1 FIND/F - 检索字符,功能键PF5/17=重新查找(REFIND) 43
1.9.3.2 CHANGE/C - 改变指定字符串数据的内容 46
1.9.3.3 EXCLUDE - 不显示与检索条件一致的行 47
1.9.3.4 COPY/MOVE - 从其它文件拷贝和移动数据到正在编辑的文件 48
1.9.3.5 CUT/PASTE - 剪切(CUT)和粘贴(PASTE)数据 50
1.9.3.6 CREATE/REPLACE - 数据文件的建立和替换 51
1.9.3.7 RESET – 重置(RESET)编辑画面中的各种数据显示 55
1.9.3.8 HEX - 16进制显示 58
1.9.3.9 SORT – 数据排序 61
1.9.3.10 SUBMIT - 使用TSO SUBMIT命令执行JOB 62
1.9.3.11 EDIT - 编辑其它的数据文件 63
1.9.3.12 START–建立新的会话 64
1.9.3.13 终止编辑会话 68
1.9.3.14 附加的基本命令 69
1.9.4 TSO编辑配置文件(PROFILE)的控制和显示 69
1.10 系统例程功能 – 选项 3 71
1.10.1 库维护选项(3.1) 72
1.10.1.1 BLANK - 显示分区数据集中的成员清单 72
1.10.1.2 C - 压缩数据集 79
1.10.1.3 E - 编辑数据集成员 81
1.10.1.4 V – 查看数据集成员内容 82
1.10.1.5 R – 为数据集成员改名 84
1.10.1.6 D - 删除数据集成员 85
1.10.1.7 P - 打印数据成员内容 86
1.10.1.8 X – 打印数据集索引 87
1.10.1.9 L – 打印整个数据集 89
1.10.1.10 I – 显示数据集信息 90
1.10.1.11 S - 显示数据集简要信息 91
1.10.2 数据集例程选项(3.2) 92
1.10.2.1 分配新数据集 93
1.10.2.2 为数据集改名 95
1.10.2.3 删除数据集 96
1.10.2.4 将未登目数据集登目(Catalog) 97
1.10.2.5 将数据集从目录中移除(Uncatalog) 99
1.10.2.6 显示数据集简短信息 100
1.10.2.7 VSAM例程 101
1.10.3 数据集移动和拷贝选项(3.3) 102
1.10.4 数据集清单列表选项(3.4) 108
1.10.4.1 数据集成员显示、打印和操作 108
1.10.4.2 VTOC信息的显示和打印 112
1.10.5 重置(RESET)统计信息选项(3.5) 113
1.10.6 数据集打印选项(3.6) 115
1.10.7 作业输出清单选项(3.8) 116
1.10.8 TSO 命令选项(3.9) 116
1.10.9 显示格式设定选项(3.11) 117
1.10.10 数据集比较选项标准版(3.12)和扩展版(3.13) 118
1.10.11 字符串检索选项标准版(3.14)和扩展版(3.15) 120
1.11 TSO 命令 121
1.11.1 离开ISPF/PDF 121
1.11.2 输入TSO命令 122
1.11.3 LISTCAT命令 124
1.11.4 LISTDS命令 126
1.11.5 LISTALC命令 127
1.11.6 DELETE命令 128
1.11.7 RENAME命令 129
2 第二章 作业控制语言(JOB CONTROL LANGUAGE - JCL) 131
2.1 作业控制语言JCL的基本结构 131
2.1.1 JCL语法实例 134
2.2 JOB语句 134
2.2.1 JOB语句中的位置参数 134
2.2.1.1 帐户信息 134
2.2.1.2 程序员名 134
2.2.2 JOB语句中的关键字参数 134
2.2.2.1 MSGLEVEL 135
2.2.2.2 MSGCLASS 135
2.2.2.3 COND 135
2.2.2.4 ADDRSPC 136
2.2.2.5 CLASS 137
2.2.2.6 NOTIFY 137
2.2.2.7 PRTY 137
2.2.2.8 REGION 137
2.2.2.9 TIME 137
2.2.2.10 TYPRUN 138
2.2.2.11 USER参数 138
2.2.2.12 PASSWORD 138
2.2.2.13 多个关键字参数一起使用 138
2.3 EXEC语句 138
2.3.1 EXEC语句的位置参数 139
2.3.1.1 PGM= 位置参数 139
2.3.1.2 PROC= 位置参数 140
2.3.1.3 省略PROC=关键字 140
2.3.2 关键字参数 140
2.3.2.1 PARM参数 140
2.3.2.2 COND参数 141
2.3.2.3 程序库 142
2.4 DD语句 144
2.4.1 DD语句参数 144
2.4.2 DD语句的位置参数 145
2.4.2.1 流内数据 145
2.4.2.2 哑(Dummy)数据集 146
2.4.3 DD语句的关键字参数 147
2.4.3.1 DSN 147
2.4.3.2 DISP 147
2.4.3.3 UNIT 148
2.4.3.4 VOLUME 148
2.4.3.5 SPACE 148
2.4.3.6 LABEL 148
2.4.3.7 DCB 149
2.4.3.8 SYSOUT 149
2.4.3.9 数据集串联(Concatenation) 149
2.4.3.10 存储管理子系统(SMS) 150
2.5 向后引用(Backward Reference) 150
2.6 条件JCL 152
2.7 INCLUDE 组 156
2.8 从JCL向PROGRAM传递参数 157
2.9 Job 提交 157
2.10 JES2 – 作业处理步骤 158
2.11 JES3 – 作业处理步骤 158
2.12 系统显示和查询功能(SDSF) 159
2.12.1 输出队列的显示及操作 160
2.12.2 挂起队列的显示及操作 163
2.12.3 显示活动的作业清单及其操作 163
2.12.4 显示所有作业清单及其操作 164
2.12.5 输入队列清单及其操作 165
2.12.6 初始器(INIT)的显示及操作 165
2.12.7 系统日志(LOG) 168
2.12.8 用户日志(ULOG) 169
2.13 系统例程(Utility)及常用工具 170
2.13.1 选择需要的例程 171
2.13.2 例程使用的DDNAME 171
2.13.3 例程控制语句 171
2.13.4 拷贝和打印顺序数据集 172
2.13.5 编辑顺序数据集 173
2.13.6 转换顺序数据集为分区数据集的成员 174
2.13.7 转换顺序数据集到分区数据集-增加新成员 175
2.13.8 拷贝分区数据集或分区数据集成员 176
2.13.9 分区数据集的压缩 178
2.13.10 维护源程序库 178
2.13.11 打印分区数据集(PDS)目录清单 180
2.13.12 比较分区数据集 181
2.13.13 比较顺序数据集 181
2.13.14 比较分区数据集中的成员 182
2.13.15 顺序文件的建立和删除 182
2.13.16 文件的成批拷贝和改名 183
2.13.17 分类 184
2.13.17.1 数据集的排序 184
2.13.17.2 数据集的合并 186
2.13.17.3 数据集的复制 186
2.13.17.4 数据集记录的筛选-包含满足条件的记录 187
2.13.17.5 数据集记录的筛选-生成头记录 188
2.13.17.6 数据集记录的筛选-跳过第一条记录 188
2.13.17.7 交易合计 189
2.13.17.8 将输入文件分成二个文件 189
2.14 JCL 过程的定义 190
2.15 JCL 过程的调用 191
2.16 过程调用中COND参数的使用 191
2.17 JCL符号参数 192
2.18 JCL 过程的测试 193
2.19 过程定义和调用的例子 193
2.19.1 定义和调用流内过程 193
2.19.2 调用定义在系统过程库中的过程 193
2.19.3 调用定义在系统过程库中的过程并覆盖原过程中的参数 194
2.19.4 调用私有过程库中的过程并覆盖原过程中的某些参数 194
2.20 作业运行清单(JOB LOG)的阅读和查错 197
2.21 JCL 过程参数置换和RESTART语句 199
3 第三章 VSAM文件处理 203
3.1 概念和设备 203
3.1.1 KSDS组成部分 203
3.1.2 ESDS组成部分 204
3.1.3 RRDS组成部分 204
3.1.4 控制间隔 205
3.1.5 控制区域 205
3.1.6 跨越记录(Spanned) 206
3.1.7 KSDS文件的物理实现 206
3.1.8 VSAM文件共享选项(SHARE OPTIONS) 208
3.1.8.1 跨区域(Cross-region)选项 208
3.1.8.2 跨系统(Cross-system)选项 209
3.1.9 VSAM目录(VSAM Catalogs) 209
3.1.9.1 主目录 210
3.1.9.2 用户目录 210
3.1.9.3 VSAM数据空间 210
3.1.9.4 VSAM族 211
3.1.9.5 非VSAM数据集(Non-VSAM Datasets) 211
3.2 存取方式服务设施(Access Method Services) 211
3.2.1 语句的语法 211
3.2.2 定义用户目录 212
3.2.3 定义数据空间 213
3.2.4 定义别名 214
3.2.5 定义VSAM文件 215
3.2.6 装载记录到VSAM文件中 218
3.2.6.1 使用REPRO备份文件 219
3.2.6.2 从备份文件中恢复数据 220
3.2.7 建立VSAM文件的可移植备份 220
3.2.8 恢复VSAM文件的可移植备份 221
3.2.9 维护可移植备份的次索引 222
3.2.10 备份和恢复目录 222
3.2.11 删除VSAM和非VSAM目标 223
3.2.12 显示目录清单 224
3.2.13 打印或显示数据集内容 225
3.2.14 修改文件属性 226
3.2.15 辅助索引 226
3.2.15.1 定义辅助索引 227
3.2.16 核实VSAM数据集 230
3.3 世代数据集GDG 230
3.3.1 GDG的定义及建立 231
3.3.2 GDG文件的应用 233
4 第四章 常用的MVS主控台命令 235
4.1 JES2命令 235
4.1.1 $D JOB显示特定作业(JOB)的信息 235
4.1.1.1 显示作业的输出信息 235
4.1.1.2 显示使用缓冲区(SPOOL1)超过1%的作业信息 236
4.1.1.3 $D STC查看已启动任务的作业号和状态 236
4.1.1.4 显示系统中的TSU用户及它们的作业号 236
4.1.2 $D SPOOL显示缓冲区(SPOOL)的状态 236
4.1.2.1 显示系统中所有的缓存区及使用百分比和总的缓冲区使用百分比 236
4.1.3 $DA显示系统中所有活动的作业的状态 237
4.1.3.1 显示系统中所有活动作业的状态 237
4.1.3.2 显示特定设备上所有活动作业的状态 237
4.1.4 $D U显示JES2控制的设备的状态 237
4.1.5 $D I显示JES中初始器(initiator)的状态 237
4.1.5.1 显示JES中所有的初始器(initiator)所定义的分区和状态 238
4.1.5.2 显示Initiator 3的详细信息 238
4.1.6 $D Q显示系统中所有的队列中的作业信息 238
4.1.6.1 显示系统中所有的队列中的作业信息 238
4.1.6.2 显示缓冲区中所有挂起(hold)作业的信息 239
4.1.7 $C JOB取消作业、TSO用户和STC 239
4.1.7.1 $C JOB取消作业 239
4.1.8 $A A释放系统中所有挂起的作业 239
4.1.9 $A JOB释放挂起的作业 239
4.1.9.1 释放作业34到40 239
4.1.9.2 释放作业号为10到15的所有批处理作业、STC和TSU用户 240
4.1.10 $H A暂停系统中的所有的作业 240
4.1.10.1 暂停所有从7490上输入的作业 240
4.1.11 $H JOB暂停特定的作业 240
4.1.11.1 暂停作业10开始的所有作业 240
4.1.11.2 暂停作业STC00051 241
4.1.12 $S I启动初始器(INITIATOR) 241
4.1.12.1 将初始器INITIATOR 5从DRAINED状态变成INACTIVE状态 241
4.1.12.2 启动INITIATOR 8到10 241
4.1.13 $S XEQ让JES2开始从QUEUE中选择作业执行 242
4.1.14 $P JES2停止JES2的处理 242
4.1.15 $P I停止特定的初始器 242
4.1.16 $P O Job清除作业的输出信息 242
4.1.16.1 删除作业IBMUSERN的输出信息 242
4.1.16.2 将class A和B中的所有作业输出删除掉 242
4.1.16.3 解决JES2缓冲区(SPOOL)满的问题 243
4.1.17 $T Job修改作业的类别和优先级 243
4.1.17.1 将作业45的运行CLASS改为X 243
4.1.17.2 将作业45的优先级加2 243
4.1.17.3 将执行队列中用户为IBMUSER的作业的运行CLASS改为Y 243
4.1.17.4 将执行队列中运行CLASS为Y的作业的CLASS改为A 244
4.2 MVS命令 244
4.2.1 DISPLAY JOBS显示当前正在运行的作业、TSO用户和STC任务 244
4.2.1.1 显示当前正在运行的作业、TSO用户和STC任务 244
4.2.1.2 显示TSO用户IBMUSER的详细信息 245
4.2.1.3 显示所有IBMUSER用户提交的交易 245
4.2.2 Display Request显示控制台上没有回答信息的总数 245
4.2.2.1 显示控制台上没有回答信息的总数 245
4.2.2.2 查询未回答信息的作业名 245
4.2.2.3 显示以IBM开头的作业的未回答信息 246
4.2.3 DISPLAY SMF显示系统中的SMF配置 246
4.2.3.1 显示系统中的SMF配置、使用的文件及每个文件的使用百分比 246
4.2.3.2 显示SMF的当前配置情况 246
4.2.4 DISPLAY CONSOLES显示控制台MASTCONS上的详细信息 247
4.2.4.1 显示控制台MASTCONS上的详细信息 247
4.2.4.2 查询主控台未回答信息的个数及系统可容许的总数 247
4.2.5 DISPLAY M显示当前系统设备的配置信息 248
4.2.5.1 显示当前系统的所有设备的配置信息 248
4.2.5.2 显示设备01C0的状态信息 248
4.2.6 DISPLAY OPDATA显示操作员信息 249
4.2.7 DISPLAY ASM显示系统中的PAGE 数据集的信息 249
4.2.8 DISPLAY U显示直接存取设备的信息 249
4.2.9 DISPLAY DUMP显示DUMP数据集的信息 250
4.2.10 DISPLAY GRS监测资源争用状况 250
4.2.10.1 显示资源争用(contention)信息 250
4.2.10.2 显示等待某资源的作业 250
4.2.10.3 显示某一给定资源的使用情况 251
4.2.10.4 DEVSERV查看NON-SMS管理的卷 251
5 第五章  COBOL语言简介 253
5.1 COBOL特性 253
5.2 标识部(IDENTIFICATION DIVISION) 253
5.3 环境部(ENVIRONMENT DIVISION) 254
5.4 数据部(DATA DIVISION) 254
5.5 过程部(PROCEDURE DIVISION) 254
5.5.1 节(Section) 254
5.5.2 段(Paragraph) 255
5.5.3 语句和句子 255
5.6 完整的COBOL程序 255
5.7 最精致的COBOL程序 255
5.8 普通COBOL程序编译流程图及样板作业流 255
5.9 COBOL编码规则 259
5.10 名字的结构 259
5.11 数据描述和数据传送(MOVE)语句 260
5.11.1 COBOL数据类型及模式(PICTURE)短语 260
5.11.2 级别号表达数据的层次 261
5.11.3 特殊级别号数据项 261
5.11.4 组合项和基本项 262
5.11.5 数据用法(USAGE)短语 263
5.11.6 数字编辑(Edited)格式 264
5.11.7 数据传送(MOVE)语句 265
5.11.8 程序例子(MOVE语句) 266
5.11.9 程序运行结果(MOVE语句) 271
6 第六章  COBOL语言数据处理 273
6.1 DISPLAY语句 273
6.2 ACCEPT语句 273
6.3 DISPLAY和ACCEPT语句的程序例子 274
6.3.1 使用ACCEPT和DISPLAY的完整程序 274
6.3.2 运行ACCEPT和DISPLAY的程序的作业流 275
6.3.3 使用ACCEPT和DISPLAY的程序的输出结果 275
6.4 PERFORM语句 275
6.4.1 程序例子(PERFORM语句) 279
6.4.2 程序执行结果(PERFORM语句) 282
6.5 IF语句 282
6.6 SET语句 284
6.7 EVALUATE语句 284
6.8 CONTINUE和NEXT SENTENCE语句 286
6.8.1 程序例子(CONTINUE和NEXT SENTENCE语句) 286
6.8.2 运行结果报表(CONTINUE和NEXT SENTENCE语句) 287
6.9 算术运算语句 287
6.9.1 四舍五入(ROUNDED选项 288
6.9.2 数据溢出(ON SIZE ERROR)选项 288
6.9.3 带有余数(REMAINDER)选项的DIVIDE语句 288
6.9.4 综合运算(COMPUTE)语句 288
6.9.5 程序例子(算术运算) 288
6.9.6 程序运行结果(算术运算) 295
6.10 STRING命令 296
6.10.1 程序例子(STRING命令) 297
6.10.2 程序运行结果(STRING命令) 300
6.11 UNSTRING命令 300
6.11.1 程序例子(UNSTRING命令) 301
6.11.2 程序运行结果(UNSTRING命令) 304
6.12 INSPECT语句 305
6.12.1 程序例子(INSPECT命令) 306
6.12.2 程序运行结果(INSPECT命令) 308
6.13 COPY语句 309
6.13.1 程序例子(COPY命令) 310
6.13.2 程序编译清单(COPY命令) 311
7 第七章  向COBOL专家迈进 314
7.1 主程序和子程序 314
7.1.1 主程序的CALL语句 314
7.1.2 子程序 315
7.1.3 主程序例子1(MAIN1) 316
7.1.4 子程序例子1(MYSUB1) 317
7.1.5 程序运行结果(MAIN1) 318
7.1.6 主程序例子2(MAIN2) 318
7.1.7 程序运行结果(MAIN2) 320
7.1.8 子程序例子2(MYSUB2) 320
7.1.9 JCL调用例子(MYSUB2) 321
7.1.10 程序运行结果(MYSUB2) 321
7.2 表处理 321
7.2.1 表的定义 321
7.2.2 下标、索引和SET索引语句 322
7.2.3 SEARCH动词 323
7.2.4 表的初始化 325
7.2.5 二维表 326
7.2.6 表初始化程序例子(TABLE8) 328
7.2.7 表初始化作业流 330
7.2.8 表初始输入数据 330
7.2.9 表初始化运行结果 331
7.2.10 二维表初始化程序例子(TABLE6) 332
7.2.11 二维表初始化作业流 334
7.2.12 二维表初始输入数据 334
7.2.13 二维表初始化运行结果 336
7.2.14 顺序和折半检索程序例子(TABLE3) 337
7.2.15 运行作业流(TABLE3) 339
7.2.16 运行结果(TABLE3) 339
7.3 提要 339
8 第八章  顺序文件的维护 340
8.1 COBOL的扩充 340
8.1.1 SELECT语句 340
8.1.2 在COBOL程序中使用DDNAME 342
8.1.3 FD项目 343
8.1.4 OPEN和CLOSE语句 344
8.2 平衡线算法 345
8.3 银行主文件维护平衡线程序(BKUPD1) 347
8.4 交易文件的格式 352
8.5 主文件的格式 352
8.6 运行银行主文件维护平衡线程序的作业流(GOBKUPD1) 353
8.7 交易文件(BKTRAN) 354
8.8 按照账户分类以后的交易文件(BKTRAN-SORT) 356
8.9 旧主文件(BKMASTO) 358
8.10 新主文件(BKMASTN) 358
8.11 银行主文件维护的运行结果 358
8.12 银行主文件维护平衡线程序的扩充(BKUPD2) 360
8.13 运行银行主文件维护平衡线扩充程序的作业流(GOBKUPD2) 368
8.14 银行主文件维护平衡线扩充程序的运行结果 369
8.15 交易日报表 371
8.16 摘要 374
9 第九章  索引文件 375
9.1 概要 375
9.2 文件组织的概念 375
9.3 COBOL要求 375
9.3.1 环境部 375
9.3.2 过程部 377
9.4 文件状态关键字概述 378
9.5 非顺序文件维护 380
9.6 平衡线算法的索引文件版程序(BKUPD3) 381
9.7 平衡线算法的索引文件版程序运行作业流(GOBKUPD3) 389
9.8 运行结果清单 392
9.9 与顺序文件输出结果的比较 394
9.10 提要 394
10 第十章  结构程序设计及源程序级查错 395
10.1 历史回顾 395
10.2 定义 395
10.3 基本结构的充分性 395
10.4 COBOL中的实现 396
10.5 结构程序设计的优点 396
10.6 结构理论的扩充 396
10.7 GO TO论战 397
10.8 源程序级查错 398
10.9 常见运行错误 398
10.9.1 未能初始化(再初始化)计数器 398
10.9.2 计数器定义得太小 398
10.9.3 循环内的错误 398
10.9.4 SEARCH动词的错误使用 398
10.9.5 不正确使用MOVE语句 398
10.9.6 与带符号数字打交道要特别小心 398
10.9.7 不适当使用嵌套IF语句 399
10.9.8 遗漏或多余的句号 399
10.9.9 WRITE后存取FD区域 399
10.9.10 从被PERFORM模块中不适当地跳出 399
10.9.11 未能设置或重新设置开关 399
10.9.12 不适当调用子程序 399
10.9.13 文件开始或结束条件错误 399
10.9.14 索引或下标非法 399
10.9.15 不适当使用注解 399
10.10 查找运行时错误产生的原因 400
10.10.1 确定导致程序异常终止的指令的位移 400
10.10.2 生成带有程序指令位移的COBOL程序编译清单 401
10.10.3 确定导致程序异常结束的COBOL源程序语句 420
10.10.4 确定导致程序异常结束的原因 420
10.11 提要 421
11 第十一章  程序设计风格的探讨 422
11.1 保持动词的层次关系 422
11.2 选择有意义的名字 423
11.3 格式化数据部分 423
11.4 有吸引力的空白行 424
11.5 将句号(.)单独写在一行 424
11.6 避免使用逗号(,) 424
11.7 使用73-80列 424
11.8 限制开关和下标于单个用途 424
11.9 避免使用常数 425
11.10 放置模块使得能找到它们 426
11.11 使用适当的注解 426
11.12 PERFORM 段而不是节 426
11.13 避免使用MOVE CORRESPONDING 427
11.14 去掉77级项目 427
11.15 使用88级项目以减少复合条件 428
11.16 对复合算术运算使用COMPUTE动词 428
11.17 避免使用文字常数 428
11.18 动态初始化表 429
11.19 使用READ INTO,WRITE FROM和WS BEGINS HERE 429
11.20 传送单个01级到子程序 429
11.21 避免“聪明的代码” 430
11.22 不要过于看重效率,但仔细的选择算法 431
11.23 预防式地编码 431
11.24 首先考虑,然后编码 432
11.25 提要 432
12 第十二章 DB2 的概念 434
12.1 DB2目标层次结构 434
12.2 数据库的连接 434
12.3 SQL语言类型 435
12.4 数据定义语言(DDL) 435
12.4.1 DB2存储组(Storage Group - STOGROUP) 435
12.4.2 数据库(Database) 436
12.4.3 数据库表空间(Tablespace) 437
12.4.4 数据库的表(Table) 439
12.4.5 引用完整性(Referential integrity) 443
12.4.6 索引(Index) 444
12.4.7 视图(View) 446
12.4.8 数据库目标的删除(DROP) 448
12.4.9 DDL语句的应用实例 448
12.5 数据控制语言(Data Control Language - DCL) 451
12.5.1 赋予(GRANT)和废除(REVOKE)语句 451
12.5.2 赋予及废除权限 454
12.6 数据操作语言(Data Manipulation Language - DML) 460
12.6.1 数据检索 461
12.6.1.1 检索整个表 461
12.6.1.2 从表中挑选特定的列 462
12.6.1.3 改变列的排序 463
12.6.1.4 从表中挑选特定的行 463
12.6.1.5 使用多个条件挑选特定的行 464
12.6.1.6 从多个表中选择要求的列 464
12.6.1.7 使用关系名 466
12.6.1.8 查询结果排序 466
12.6.1.9 计算出的列 468
12.6.1.10 为计算出的列命名 468
12.6.1.11 函数(Functions) 468
12.6.1.12 分组合计(Grouping Values) 470
12.6.1.13 约束一组数据的使用 471
12.6.1.14 去掉重复的记录 472
12.6.1.15 字符串模式查找 473
12.6.1.16 按数据范围搜索 474
12.6.1.17 搜索空值(Null Values) 474
12.6.1.18 按否定的条件查询 475
12.6.1.19 检索一组值 476
12.6.2 数据更新 476
12.6.2.1 插入(Insert)数据记录 476
12.6.2.2 插入一组值 477
12.6.2.3 插入大量数据 478
12.6.2.4 修改数据记录 478
12.6.2.5 修改大量的数据 479
12.6.2.6 删除数据 480
12.6.2.7 删除表中的所有行 481
12.6.3 存储过程 481
12.6.3.1 建立或修改存储过程 482
12.6.3.2 模式限定符 483
12.6.3.3 删除存储过程 483
12.6.4 用户定义函数 483
12.6.4.1 外部用户定义函数(External UDFs) 483
12.6.4.2 有源用户定义函数(Sourced UDFs) 483
12.6.4.3 表函数(Table Functions) 484
12.6.4.4 执行用户定义函数 484
12.6.5 触发器 485
12.7 DB2I工具 487
12.7.1 SPUFI 488
13 第十三章 DB2程序准备 490
13.1 DB2程序编译流程图及样板作业流 490
13.2 预编译和绑定 492
13.2.1 预编译 492
13.2.1.1 预编译器 492
13.2.1.2 修改过的源程序代码 493
13.2.1.3 DBRM 493
13.2.2 绑定 493
13.2.2.1 先绑定到包(Package)和直接绑定方案(PLAN)的区别 495
13.2.2.2 方案(Plans)、包(Packages)和集合(Collection) 495
13.2.2.3 运行时COBOL装载模块调用DBRM 496
13.3 绑定与再绑定 496
13.3.1 自动再绑定 497
13.3.2 绑定与再绑定选项 497
13.3.3 让绑定决定存取的目标 499
13.3.4 绑定的其它考虑因素 500
13.4 删除包或方案 501
14 第十四章 DB2程序结构 502
14.1 分隔符 502
14.2 主变量和主变量组合项 503
14.2.1 主变量的用法 503
14.2.2 主变量组合项的用法 504
14.2.3 主变量-接收单行数据 504
14.2.4 主变量-接收多行数据 505
14.2.5 主变量-插入记录行 505
14.2.6 主变量—修改数据 505
14.2.7 主变量—各种语言的定义 505
14.3 DCLGEN 507
14.3.1 从DB2I主菜单进入DCLGEN选项 507
14.3.2 DCLGEN输出例子 508
14.4 处理空数据 509
14.5 SQLCA – SQL通讯区 511
14.6 SQL INCLUDE 语句 514
14.7 查询客户资料程序 515
14.7.1 查询DB2客户资料源程序(BKINQ) 515
14.7.2 数据库表CUSTINFO的记录格式及DCLGEN输出 517
14.7.3 数据库表通讯区SQLCA的的记录格式 517
14.7.4 运行客户资料查询程序的JCL 518
14.7.5 程序运行结果 519
14.8 修改客户资料程序(BKUPDT) 519
14.8.1 修改客户资料源程序 519
14.8.2 程序运行前客户资料表中的记录 522
14.8.3 运行客户资料修改程序的JCL 522
14.8.4 客户资料修改的输入文件 522
14.8.5 客户资料修改后表中的内容 523
14.9 修改明细客户资料程序(BKVCUST)- 空值和变长记录处理 523
14.9.1 修改明细客户资料源程序 523
14.9.2 客户明细资料表CUSTINF1的记录格式及DCLGEN输出结果 527
14.9.3 计算字符串长度子程序 528
14.9.4 明细客户资料表中原来的内容 529
14.9.5 输入文件CUSTINFO 529
14.9.6 运行明细客户资料程序的JCL 529
14.9.7 修改后的明细客户资料表 530
14.10 使用游标 530
14.10.1 定义游标 530
14.10.2 打开游标 531
14.10.3 执行SQL语句 531
14.10.3.1 取数据(FETCH) 531
14.10.3.2 定位修改(Positioned UPDATE) 532
14.10.3.3 定位删除(Positioned DELETE) 532
14.10.3.4 游标定位修改或删除的一些限制 532
14.10.4 关闭游标 533
14.10.5 保持游标(Cursor WITH HOLD) 533
14.10.6 游标的重新定位 533
14.11 浏览客户资料表(BKNMINQ) - 使用游标处理多个记录 535
14.11.1 浏览客户资料表源程序 535
14.11.2 运行浏览客户资料表程序的JCL 537
14.11.3 程序运行前客户资料表的内容 538
14.11.4 浏览客户资料表程序的查询结果 538
15 第十五章 DB2恢复和锁定的概念 539
15.1 可恢复单元(Unit of Recovery) 539
15.2 提交(COMMIT)和回滚(ROLLBACK) 539
15.3 保存点(SAVEPOINT) 540
15.4 数据恢复 542
15.4.1 日志 542
15.4.2 日志数据集 542
15.4.3 引导数据集BSDS 542
15.4.4 SYSIBM.SYSLGRNX 542
15.4.5 数据库恢复三部曲 543
15.5 数据锁 544
15.5.1 锁的属性 544
15.5.2 锁的大小(Lock Sizes) 545
15.5.2.1 表锁(Lock Table)语句 545
15.5.2.2 锁定选定的分区 545
15.5.2.3 大对象(LOB)锁 545
15.5.3 锁模式(Lock Modes) 546
15.5.3.1 表或表空间锁 546
15.5.3.2 页锁或行锁 547
15.5.4 表空间和表锁的持续时间(Lock Durations) 548
15.5.5 页锁或行锁的持续时间 – 隔离级别 548
15.5.5.1 可重复读(Repeatable Read - RR) 549
15.5.5.2 读稳定性(Read Stability – RS) 549
15.5.5.3 游标稳定性(Cursor Stability) 549
15.5.5.4 未提交读(Uncommitted Read) 550
15.5.6 WITH RR/RS/CS/UR短语的使用 550
15.5.7 锁的覆盖与避免 550
15.5.8 悲观锁定与乐观锁定 551
16 第十六章 动态SQL介绍 552
16.1 使用动态SQL 552
16.2 在应用程序中嵌套动态SQL 552
16.3 完整的非SELECT语句 553
16.3.1 完整的非SELECT语句源程序(BKDYNA1) 553
16.3.2 完整的非SELECT语句 – 程序运行前表中的内容 554
16.3.3 完整的非SELECT语句 – 运行程序的作业流 555
16.3.4 完整的非SELECT语句 – 程序运行后的显示信息及表中的记录 555
16.4 参数化的非SELECT语句 556
16.4.1 参数化的非SELECT语句源程序(BKDYNA2) 556
16.4.2 参数化的非SELECT语句 – 程序运行前表中的内容 558
16.4.3 参数化的非SELECT语句 – 运行程序的作业流 558
16.4.4 参数化的非SELECT语句 – 程序运行后的显示信息及表中的记录 558
16.5 固定列表的SELECT语句 559
16.5.1 固定列表的SELECT语句源程序(BKDYNA3) 559
16.5.2 固定列表的SELECT语句- 运行程序的作业流 562
16.5.3 固定列表的SELECT语句- 程序运行结果 562
17 第十七章 管理DB2测试数据 564
17.1 数据移动例程 564
17.1.1 装载(Load)例程 564
17.1.2 装载的完整作业流 565
17.1.2.1 增加或覆盖 566
17.1.2.2 装载排好序的行 567
17.1.2.3 装载分区表 567
17.1.2.4 数据类型转换 568
17.1.2.5 引用完整性(Referential Integrity) 569
17.1.2.6 不强制执行(ENFORCE NO) 569
17.1.3 数据卸载(Unload)例程 569
17.1.3.1 卸载(UNLOAD)数据的完整作业流 570
17.1.4 使用DSNTIAUL程序卸载数据 572
17.2 数据统计 574
17.2.1 统计(RUNSTATS)例程 574
17.2.1.1 输出报告并修改DB2编目表 575
17.2.1.2 运行统计例程时存取数据库 575
17.2.1.3 样本数据 575
17.2.1.4 在DB2编目表上运行统计例程 575
17.2.1.5 统计例程完整作业流 575
17.3 重组(REORG) 576
17.3.1 重组表空间 576
17.3.2 重组表空间的完整作业流 576
17.3.3 重组索引 577
18 第十八章 DB2性能方面的考虑 578
18.1 存取路径及优化 578
18.1.1 DB2解释(EXPLAIN)工具 578
18.1.2 收集解释数据 578
18.1.3 分析解释数据 580
18.1.4 存取路径评估 583
18.1.4.1 索引存取 583
18.1.4.2 表存取 584
18.1.4.3 预取 584
18.1.5 存取路径提示(优化提示) 585
18.1.6 使用解释表输出的指引 585
18.1.7 改善性能的索引设计 585
18.1.7.1 匹配索引扫描(MATCHCOLS > 0) 586
18.1.7.2 索引筛选 586
18.1.7.3 不匹配索引扫描 (ACCESSTYPE = I而且MATCHCOLS = 0) 586
18.1.7.4 IN列表索引扫描(ACCESSTYPE = N) 586
18.1.7.5 多索引存取(ACCESSTYPE为M、MX、MI或MU) 586
18.1.7.6 一次获取存取(ACCESSTYPE = I1) 586
18.1.7.7 只存取索引 (INDEXONLY = Y) 587
18.1.7.8 相等唯一索引(MATCHCOLS = 索引列数) 587
18.1.8 使用索引以避免分类 587
18.1.9 避免死锁 587
19 第十九章 CICS应用程序环境 590
19.1 CICS 基本概念回顾 590
19.2 CICS 联机交易 592
19.3 CICS模块组成 593
19.3.1 CICS管理功能 594
19.3.2 CICS基本组成 594
19.3.3 CICS管理模块 595
19.3.4 CICS系统控制表 596
19.3.5 CICS数据区域 597
19.4 CICS交易工作流程 598
19.5 CICS程序并行工作原理 599
20 第二十章 CICS应用系统设计 601
20.1 对话与伪对话 601
20.2 通讯区(COMMAREA) 602
20.3 伪对话程序的实现方法 603
21 第二十一章 CICS命令概述 606
21.1 编写CICS命令 606
21.2 程序准备 608
21.3 基本画面支持(Basic Mapping Support) 611
21.3.1 3270字段基本概念 611
21.3.2 画面定义样本 612
21.3.2.1 如何编写BMS宏命令 612
21.3.2.2 如何编写汇编语言语句 612
21.3.2.3 如何使用DFHMSD宏命令定义画面集(Mapset) 613
21.3.2.4 如何使用DFHMDI宏命令定义画面集中的画面(Map) 616
21.3.2.5 如何使用DFHMDF宏命令定义画面中的字段 616
21.3.2.6 BMS字段定义模板 618
21.3.3 银行柜员签到程序的画面格式及画面集完整代码 619
21.4 画面准备 622
21.5 符号画面及符号画面格式 624
21.6 画面的输出 626
21.7 画面的输入 627
21.8 常用标识键描述(DFHAID) 628
21.9 画面显示属性常量(DFHBMSCA) 629
21.10 异常状态 632
22 第二十二章 CICS程序对程序的控制 634
22.1 CICS程序对程序的控制 634
22.2 LINK命令 634
22.3 XCTL命令 635
22.4 通讯区长度不匹配的讨论 636
22.5 COBOL CALL与LINK或XCTL的比较 636
22.6 用户表的装载(LOAD)和释放(RELEASE) 637
22.7 启动新交易(START)并接收(RETRIEVE)所传递的数据 639
22.8 RETURN命令 640
23 第二十三章 CICS数据处理 641
23.1 CICS存取VSAM的方法 641
23.2 VSAM基本概念回顾 642
23.2.1 VSAM文件的组织形式和存取方法 642
23.2.1.1 键顺序数据组织 642
23.2.1.2 进入顺序数据组织 643
23.2.1.3 相对顺序数据组织 643
23.2.1.4 三种数据组织形式的比较 643
23.2.2 VSAM的物理结构与逻辑结构 643
23.3 VSAM文件独占控制 645
23.4 交易死锁 646
23.5 工作单元的资源保护 646
23.6 联机程序的组织结构 646
23.7 CICS中访问VSAM文件的常用命令 647
23.7.1 READ命令 647
23.7.2 WRITE命令 648
23.7.3 REWRITE命令 649
23.7.4 DELETE命令 650
23.7.5 UNLOCK命令 650
23.8 CICS中浏览VSAM文件的常用命令 651
23.8.1 STARTBR命令 651
23.8.2 READNEXT命令 652
23.8.3 READPREV命令 653
23.8.4 ENDBR命令 655
23.8.5 RESETBR命令 655
23.9 银行交易浏览程序例子 656
23.9.1 联机交易文件的格式 656
23.9.2 定义交易文件新格式和次索引的作业流 657
23.9.3 浏览交易画面源代码 659
23.9.4 浏览交易简化的符号画面 661
23.9.5 浏览交易COBOL程序完整源代码 662
23.9.6 银行浏览交易联机CICS资源定义 672
23.9.7 银行浏览交易联机运行结果演示 676
23.10 CICS存取DB2的方法 682
23.11 CICS访问DB2的程序结构 683
23.12 CICS访问DB2程序的编译步骤 684
23.13 CICS应用程序访问DB2的数据的准备工作 686
23.13.1 定义CICS与DB2之间的连接(DB2CONN) 686
23.13.2 定义进入线程(DB2ENTRY) 687
23.13.3 定义DB2交易(DB2TRAN) 688
23.14 其它CICS常用命令 690
23.14.1 任务控制命令(ENQ和DEQ命令) 690
23.14.2 获取系统日期和时间信息 692
23.14.2.1 ASKTIME命令 692
23.14.2.2 FORMATTIME命令 692
23.14.3 存取CICS系统公共信息(ADDRESS命令) 693
23.14.4 内存管理命令(GETMAIN和FREEMAIN命令) 694
23.14.4.1 GETMAIN命令 694
23.14.4.2 FREEMAIN命令 695
24 第二十四章 CICS队列 697
24.1 CICS队列设备 697
24.2 分区内过渡队列 697
24.3 分区外过渡队列 698
24.3.1 定长记录文件 699
24.3.2 变长记录文件 699
24.3.3 结尾记录文件 699
24.4 间接目的地 699
24.5 过渡队列服务 699
24.5.1 输出数据到过渡队列 700
24.5.2 从过渡队列中读出数据 700
24.5.3 从过渡队列中删除数据 700
24.6 触发交易启动 700
24.7 临时存储队列概述 701
24.8 临时存储队列服务 702
24.8.1 写数据到临时存储队列 702
24.8.2 修改临时存储队列中的数据 703
24.8.3 从临时存储队列中读取数据 703
24.8.4 删除临时存储队列中的数据 704
24.9 临时存储队列的典型用法 704
24.10 临时存储队列命名 705
24.11 删除临时存储队列 705
24.12 临时数据的存放位置 705
24.13 队列的老化 705
24.14 队列属性 705
24.15 过渡数据队列和临时存储队列的比较 705
24.16 CEBR 706
24.16.1 默认TS队列 706
24.16.2 CEBR的帮助 707
24.16.3 队列显示 707
24.16.4 获取TD队列 708
25 第二十五章 银行系统实例 709
25.1 银行系统流程图 709
25.2 柜员签到模块 712
25.2.1 程序(EMLOGON) 712
25.2.2 交易(EMPL) 717
25.2.3 画面(EMPSET1) 718
25.2.4 柜员信息表(EMPLINFO) 718
25.3 账户维护菜单模块 719
25.3.1 程序(EMMENU) 719
25.3.2 交易(EMME) 722
25.3.3 画面(EMESET1) 723
25.4 建立新账户模块 725
25.4.1 程序(CREATE) 725
25.4.2 子程序(AUTOPE) 732
25.4.3 子程序(STRLEN) 733
25.4.4 子程序(NUMEDIT) 734
25.4.5 交易(CREA) 736
25.4.6 画面(CRESET1) 737
25.4.7 文件(AUTOPE) 740
25.4.8 客户账户资料表(CUSTINFO) 741
25.4.9 交易流水表(OPERATIN) 742
26 第二十六章 CICS提供的交易及调试CICS应用程序 744
26.1 CICS系统的启动和关闭 744
26.2 CICS提供的交易 746
26.3 CICS签到交易CESN 747
26.4 CICS签退交易CESF 747
26.5 查看终端状态交易CEOT 748
26.6 信息查找 CMAC交易 748
26.7 命令层的解释程序CECI和CECS交易 750
26.7.1 CECI交易中变量的使用方法 752
26.8 CEMT(MASTER TERMINAL)交易 755
26.8.1 移除资源(DISC) 755
26.8.2 查询CICS资源状态 756
26.8.2.1 查看CICS定义的文件状态 756
26.8.2.2 查看CICS定义的程序状态 757
26.8.2.3 查看CICS定义的终端状态 758
26.8.2.4 查看CICS定义的转存文件状态 759
26.8.2.5 查看CICS运行的任务状态 760
26.8.2.6 查看CICS定义的交易状态 760
26.8.2.7 查看CICS定义的外部连接状态 761
26.8.3 修改CICS资源状态 762
26.8.3.1 更新联机程序的新版本 762
26.8.3.2 更改文件状态 764
26.8.3.3 切换当前使用的转存(DUMP)文件 766
26.8.3.4 停止正在运行的任务(TASK) 767
26.8.3.5 更改交易的状态 767
26.8.3.6 更改终端的状态 768
26.8.4 执行特殊的CICS功能 769
26.8.4.1 停止当前的CICS 770
26.9 联机资源定义交易(CEDA) 770
26.9.1 CEDA命令的子命令 771
26.9.2 CEDA DELETE命令和CEDA REMOVE命令的异同点 772
26.9.3 添加资源到成员清单的步骤 772
26.9.4 CEDA常用命令的使用方法 772
26.9.4.1 定义程序 773
26.9.4.2 定义画面集 775
26.9.4.3 定义文件 776
26.9.4.4 查看交易清单及交易详细定义 777
26.9.4.5 查看程序清单及程序详细定义 779
26.9.4.6 查看画面清单及画面定义 780
26.9.4.7 查看DB2进入线程清单及详细定义 782
26.9.4.8 查看DB2交易清单及详细定义 783
26.9.4.9 安装资源到CICS中 785
26.10 CICS联机交易诊断工具 787
26.10.1 CEDF交易 787
26.10.1.1 开始EDF跟踪(单终端模式) 788
26.10.1.2 PF7/PF8滚动显示 788
26.10.1.3 覆盖参数(Argument)的值 790
26.10.1.4 覆盖返回吗(Response) 792
26.10.1.5 显示翻译器中的源程序行数 793
26.10.1.6 PF6显示用户界面 802
26.10.1.7 PF2以十六进制格式显示屏幕上的内容 802
26.10.1.8 PF5显示工作存储区 803
26.10.1.9 在存储区画面用PF4显示EIB 804
26.10.1.10 在存储区画面使用PF2调用CEBR交易 805
26.10.1.11 在存储区画面使用PF5调用CECI交易 806
26.10.1.12 设定停止显示的条件 807
26.10.1.13 显示以前的命令 808
26.10.1.14 伪对话的继续 809
26.10.1.15 程序终止 809
26.10.1.16 任务终止 810
26.10.1.17 申请异常中断 810
26.10.1.18 开始EDF跟踪(双终端模式) 812
26.10.2 CEDX交易 813
26.10.3 设置用户跟踪入口点 814
27 附录:参考资料 816

原创粉丝点击