-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

IBM主機技術一本通(第2版)

( 簡體 字)
作者:呂新民,李小文,王青萍類別:1. -> 程式設計 -> 綜合
譯者:
出版社:電子工業出版社IBM主機技術一本通(第2版) 3dWoo書號: 45895
詢問書籍請說出此書號!

缺書
NT售價: 940

出版日:1/1/2017
頁數:1092
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121305474
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

再版序
自從《IBM主機技術一本通》出版發行以來,受到了廣大讀者的熱愛,本書為他們從事IBM主機方面的工作提供了很大的幫助。同時,隨著互聯網技術的應用系統越來越多,對IBM主機的技術也提出了一些新的要求。為了滿足讀者對IBM主機技術更高層次的要求,同時經過幾年從事核心銀行系統建設積累的豐富經驗,為此,借本次修訂版的機會,把讀者迫切需要的一些新技術匯集起來,一并出版,以解讀者之需。
本次修訂版依然秉承本書一直以來的風格,只講讀者急需的、工作中經常需要用到的內容,絕不受陳舊的技術框框所限,使讀者能在最短的時間內,獲取盡可能多的有用信息。換句話說,本書提供的全部都是實實在在、在日常工作中經常需要用到的干貨!
本次修訂版修改或新加的內容主要有下面幾部分。
1.18章“DB2性能調優的理論及實踐”,對原有的章節做了補充。
? 通過西南某大型銀行4年建設實踐,為核心銀行系統DB2性能調優積累了豐富的經驗。在這一章,我們對DB2使用過程中,由于使用不當帶來的性能問題,有切身之痛。通過不斷的探索和分析,對于項目中出現的DB2性能瓶頸問題,給出了卓有成效的解決方案。
? 對于每個典型問題,有現象分析、可能原因評估、詳細解決方案和解決方案效果評估。其中,最典型的一個問題是,DB2作業的執行時間由原來需要十幾個小時,最終減少到只需要幾分鐘。
2.23章“CICS數據處理”,對原有章節做了補充。
? 這一章增加的部分是“VSAM次索引瀏覽”的案例分析,是應深圳某商業銀行對員工培訓的需要,特別增加的部分,對于經常使用VSAM次索引的讀者會有很大的幫助。
3.27章“COBOL函數及編譯選項”,全新的一章。
? 這一章增加的內容主要有COBOL常用函數的類型、功能和用法等。對于銀行核心系統中經常使用的函數,做了詳細的介紹,同時,提供了很多程序例子,供讀者參考。
? 這一章同時也增加了IBM企業級COBOL編譯選項的介紹。為COBOL每一種編譯選項的含義、彼此之間的差異,做了詳細的說明。同一個程序,在不同的環境下,使用不同的編譯選項,所產生的結果可能大相徑庭,產生意想不到的結果,常常令有多年工作經驗的老手都不知所措。相信本章的推出,將為讀者解決類似的困惑提供有力的支持。
4.28章“CICS交易Dump分析及查錯”,全新的一章。
? 本章將以往只屬于專家級、高大上的CICS Dump分析,回歸到“人民懷抱”,讓“屌絲級”的普通程序員也能輕松看懂CICS Dump,找出交易出錯的原因,并提供解決方案。
? 本章通過介紹結構化的CICS Dump分析方法,讓讀者順藤摸瓜,一步一步接近問題的真相,從而找到解決的方法。
? 本章將密密麻麻、雜亂無章的Dump文檔,通過切片、分塊的方法,將每個部分變成一個個的“小精靈”,讓它們帶著我們找到需要的信息,直通問題的關鍵,使得問題的解決變得輕松愉快。
? 本章提供了幾個真實的例子,一步一步引導讀者,從CICS Dump中找到ASRA、ASRD和AICA等常見交易Abend的原因,提供有效的解決方案。
5.29章“CICS通道容器(Channel Container),全新的一章。
? 這一章完全是為了滿足現今如火如荼的互聯網應用系統的要求而準備的。隨著互聯網應用的普及,傳統的32KB的通信區已經完全滿足不了互聯網系統的要求。為此,IBM從CICS TS 3.1開始引進了通道和容器(Channel Container)的概念,本章對這一概念做了詳細的講解。
? 通過對各種應用情景的分析,我們推出了相應的解決方案。無論是對現有通信區的應用系統,還是新開發的系統,都給出了有效的遷移或開發方案,為需要使用通道容器技術的讀者解了燃眉之急。
6.30章“COBOL排序/合并與軟件質量控制”,全新的一章。
? 有幸邀請到了IBM主機資深的專家李小文先生執筆編寫本章,他對IBM主機和銀行系統有很高的造詣。
? 這一章介紹了IBM企業級COBOL中使用排序和合并的語法元素,并介紹了它們的用法。通過鮮活的程序例子,為我們展示了排序/合并的強大功能,以及使用過程中要注意的地方。同時加入軟件質量控制的研究心得與體會,筆者嘗試以輕松詞語和真實案例打破自古以來技術文章的枯燥沉悶,值得一看。
本次修訂版能夠面世,要感謝的人很多,尤其是在過去幾年中跟我們一起為西南某大型銀行核心系統開發并肩作戰的戰友們。在本次修訂版成文過程中,要特別感謝我們的同事陳超、王慧博、母云海和史碩先生,他們為本書提供了非常有益的建議。
參與本書編寫的還有王青萍女士,她提供了本書中全部的精美繪圖并提供了與圖相關的文字描述。本書由于時間跨度長,信息容量大,加上作者水平有限,一定有許多疏漏的地方,敬請廣大讀者批評指正。


前言
這是一本寫了20多年的書,是一本讓你學習IBM主機技術不求人的書!
開始萌發寫書的想法要追溯到20多年前,大學畢業分配到青島的一家國有銀行工作的時候。那時工作不是很忙,年輕的時候精力過剩,總想找點事情做做,但畢竟水平有限,能寫的東西不多,成不了型,也就放下了。后來有機會去香港工作幾年,然后又輾轉到深圳的一家比較知名的做銀行項目的民營公司,最后又到一家著名的外企,雖然這段時間的工作經歷為本書提供了豐富的素材,使得讀者對書中的講述有感同身受的親切感,但這段經歷繁忙到根本沒有時間和精力提筆寫書。
從2008年開始轉行做培訓方面的工作,就又有了寫書的念頭。因為有一件事,讓我感觸很深,在某個培訓班中,有一批學日語的學生,他們幾乎完全不會英語,但是卻會中文。而我們的教材通常是英文的,根本沒有這方面技術的中文書,使得有的學生實在學不下去,只好中途退學了。這件事,讓我決定盡快寫出一本通用的IBM主機技術方面的書,既能了卻20多年前的夙愿,又能對從事主機工作的同行們盡自己的微薄之力。經過幾年的努力,這本書終于面世了。
本書的定位是一本IBM主機技術方面專家級的參考書,既適合該行業的初學者入門的需要,也能滿足有多年相關工作經驗的行業高手進一步提高的要求。
本書有下面幾個鮮明的特點,特此提出來與讀者分享。
1.IBM主機技術的完整性
作者有多年的IBM主機技術應用的實踐經驗,非常清楚哪些技術是必須詳細講述的,哪些技術是可以一筆帶過的,因此對于重要的知識點和在實際工作中經常用到的內容,以及有一定難度,平常也有可能用到的內容,本書都做了詳細的講述,以滿足各種水平讀者的需要;對于那些過于晦澀,使用不多的內容,本書只是簡單講述,并提供相關的參考線索,為讀者進一步學習提供幫助。總之,本書希望能夠讓讀者有一本在手、別無它求的滿足感。
2.初學者入門的好幫手
多年的IBM主機技術培訓和銀行項目實訓的教學經驗,使得作者非常了解初學者對于學習IBM主機技術的需求,因此本書采用由淺入深、由易到難的編排順序,將IBM主機技術的相關內容串聯起來,使得讀者只要按照本書的順序閱讀,就可以快速入門,并隨著閱讀內容的增加和對每個章節后面高級議題的深入理解,由初學者變成行業高手。
3.IBM主機技術高手們的增值器
由于行業的分工越來越細,即使從事IBM主機開發工作多年的人,所能接觸的內容也是有限的,比如說,有的人做聯機方面的工作比較多,對CICS方面的內容就比較熟悉;有的人做批處理方面的工作比較多,相應地,對作業流(JCL)方面的內容了解就要多些。由于本書充分考慮了IBM主機技術的完整性,因此,讀者很容易通過本書,學到自己相對欠缺或不熟悉的知識,從而達到全面提高的目的。
此外,本書中有些議題,是目前國內書籍中很少討論的。作者查閱了大量的國外相關論文后匯總到本書中,比如,處理多文件交易合并的平衡線算法及在銀行應用系統中的應用、常用的MVS主控臺命令和程序設計風格方面的一些內容等。
4.大量的程序例子
本書避免空洞的概念陳述,而是通過鮮活的程序實例來介紹IBM主機技術的各種元素,讓讀者能夠從程序例子中了解技術元素的實際含義、在現實中的應用及使用過程中需要注意的地方。通過各種技術元素(程序、作業流、參數)的實際運用,讓讀者了解各種不同的技術元素是如何相互協作、相互配合、共同完成項目的。每個技術元素運行后的結果,都通過演示報表(Magic Report)的方法,清晰地呈現在讀者的面前,加深讀者對這些技術元素的理解。
5.查錯和糾錯技術的研討
根據實際開發中的經驗,作者深切地體會到,查錯和糾錯技術對于項目開發團隊是多么重要,而這一點正好又是很多新手甚至工作多年的高手所欠缺的。寫一個程序容易,但讓程序正確完成指定的任務卻不那么容易,這樣的例子太多了。當程序員完成了一個程序后,運行出來的結果卻是牛頭不對馬嘴,或運行中途異常結束的時候,很多讀者都是一臉茫然,不知所措。
為了解決這個問題,本書提供了兩種解決途徑。
一是所謂的源程序級查錯,即通過閱讀源程序來辨別出錯的原因。根據作者多年的實踐經驗,本書為各種類型的常見問題給出了幾種可能出錯的原因,比如,當你的程序出現死循環的時候,本書就為你提供了幾種可能的原因,幫助讀者通過閱讀源程序盡快找到問題的根源。
另一種是根據運行時系統提供的信息,比如,系統的返回碼或出錯的程序代碼的位移等,幫你順藤摸瓜,一步一步地確定出錯原因,從而找到解決辦法。

這本書能夠面世,要感謝的人很多。感謝以前在銀行或公司一起工作的同事們,正是跟他們一起工作的時光,使作者能夠博采他們出色的技術特長,汲取他們橫溢的技術精華,才能使本書的內容如此多姿多彩。限于篇幅,這里就不一一列出他們的名字了。
內容簡介:

本書由淺入深地講述了IBM主機技術的各個方面,共分30章,包括:TSO、ISPF、JCL、VSAM、COBOL、DB2、CICS和常用的MVS主控臺命令,通過演示報表(Magic Report)的方法,從實戰出發,通過大量的源程序例子講解了在應用開發過程中需要使用的IBM主機方面的技術,書中的例子都是作者親自編寫并運行成功的,可以作為讀者學習的參考。因為本書在系統地介紹所需的基本技術的同時,也為具備多年開發經驗的讀者提供了某些高級的議題,所以本書既可以作為從事IBM主機開發的初學者學習,也可以作為已有幾年甚至多年IBM主機開發經驗的人士參考。

目錄:

MVS操作系統導論
第1章 TSO、ISPF、ISPF/PDF介紹 2
1.1 什么是TSO(Time Sharing Option) 2
1.2 TSO終端 3
1.3 TSO使用環境(與MVS/OS390/ZOS,ISPF之間的關系) 3
1.4 RMF概述 4
1.5 ISPF和ISPF/PDF概述 4
1.5.1 程序開發設備(PDF) 4
1.5.2 ISPF/PDF顯示板的通用結構 5
1.6 ISPF設定功能——選項0 7
1.7 z/OS數據集介紹 8
1.7.1 順序數據集 8
1.7.2 分區數據集 8
1.7.3 VSAM數據集類型 9
1.7.4 磁盤目錄表(VTOC) 10
1.7.5 數據集命名規則 10
1.7.5.1 分區數據集命名規則 10
1.7.5.2 數據集命名慣例 10
1.8 查看數據集——選項1 11
1.9 編輯數據集——選項2 14
1.9.1 常用的行命令 15
1.9.2 常用的行命令(COMMAND)
的例子 16
1.9.3 基本命令及例子 20
1.9.3.1 FIND/F——檢索字符,
功能鍵PF5/17=重新查找
(REFIND) 20
1.9.3.2 CHANGE/C——改變指定
字符串數據的內容 21
1.9.3.3 EXCLUDE/X——不顯示與
檢索條件一致的行 22
1.9.3.4 COPY/MOVE——從其他
文件復制和移動數據到
正在編輯的文件 24
1.9.3.5 CUT/PASTE——剪切
(CUT)和粘貼(PASTE)
數據 24
1.9.3.6 CREATE/REPLACE——數據
文件的建立和替換 26
1.9.3.7 RESET——重置(RESET)
編輯界面中的各種
數據顯示 29
1.9.3.8 HEX——十六進制數顯示 30
1.9.3.9 SORT——數據排序 33
1.9.3.10 SUBMIT——使用TSO SUBMIT命令執行JOB 34
1.9.3.11 EDIT——編輯其他的
數據文件 34
1.9.3.12 START——建立新的會話 36
1.9.3.13 終止編輯會話 39
1.9.3.14 附加的基本命令 39
1.9.4 TSO編輯配置文件(PROFILE)
的控制和顯示 39
1.10 系統例程功能——選項3 41
1.10.1 庫維護選項(3.1) 42
1.10.1.1 BLANK——顯示分區
數據集中的成員清單 43
1.10.1.2 C——壓縮數據集 47
1.10.1.3 E——編輯數據集成員 49
1.10.1.4 V——查看數據集成員
內容 50
1.10.1.5 R——為數據集成員改名 50
1.10.1.6 D——刪除數據集成員 52
1.10.1.7 P——打印數據集成員
內容 52
1.10.1.8 X——打印數據集索引 54
1.10.1.9 L——打印整個數據集 54
1.10.1.10 I——顯示數據集信息 56
1.10.1.11 S——顯示數據集簡要
信息 57
1.10.2 數據集例程選項(3.2) 57
1.10.2.1 分配新數據集 58
1.10.2.2 為數據集改名 59
1.10.2.3 刪除數據集 61
1.10.2.4 將未登目數據集登目(Catalog) 61
1.10.2.5 將數據集從目錄中移除(Uncatalog) 63
1.10.2.6 顯示數據集簡短信息 63
1.10.2.7 VSAM例程 64
1.10.3 數據集移動和復制選項(3.3) 65
1.10.4 數據集清單列表選項(3.4) 69
1.10.4.1 數據集成員顯示、打印
和操作 69
1.10.4.2 VTOC信息的顯示和
打印 73
1.10.5 重置(RESET)統計信息選項(3.5) 74
1.10.6 數據集打印選項(3.6) 75
1.10.7 作業輸出清單選項(3.8) 76
1.10.8 TSO命令選項(3.9) 77
1.10.9 顯示格式設定選項(3.11) 77
1.10.10 數據集比較選項標準版(3.12)
和擴展版(3.13) 78
1.10.11 字符串檢索選項標準版(3.14)
和擴展版(3.15) 79
1.11 TSO命令 80
1.11.1 離開ISPF/PDF 80
1.11.2 輸入TSO命令 81
1.11.2.1 ISPF/PDF選項6——
TSO COMMAND 81
1.11.2.2 使用TSO前綴 82
1.11.3 TSO HELP 82
1.11.4 LISTCAT命令 83
1.11.5 LISTDS命令 85
1.11.6 LISTALC命令 86
1.11.7 DELETE命令 87
1.11.8 RENAME命令 87
第2章 作業控制語言(Job Control
Language——JCL) 89
2.1 作業控制語言JCL的基本結構 89
2.2 JOB語句 92
2.2.1 JOB語句中的位置參數 93
2.2.1.1 賬戶信息 93
2.2.1.2 程序員名 93
2.2.2 JOB語句中的關鍵字參數 93
2.2.2.1 MSGLEVEL 94
2.2.2.2 MSGCLASS 94
2.2.2.3 COND 95
2.2.2.4 ADDRSPC 96
2.2.2.5 CLASS 96
2.2.2.6 NOTIFY 97
2.2.2.7 PRTY 97
2.2.2.8 REGION 97
2.2.2.9 TIME 97
2.2.2.10 TYPRUN 98
2.2.2.11 USER參數 98
2.2.2.12 PASSWORD 99
2.2.2.13 多個關鍵字參數
一起使用 99
2.3 EXEC語句 99
2.3.1 EXEC語句的位置參數 100
2.3.1.1 PGM=位置參數 100
2.3.1.2 PROC=位置參數 101
2.3.1.3 省略PROC=關鍵字 101
2.3.2 關鍵字參數 101
2.3.2.1 PARM參數 102
2.3.2.2 COND參數 102
2.3.2.3 程序庫 104
2.4 DD語句 106
2.4.1 DD語句參數 107
2.4.2 DD語句的位置參數 108
2.4.2.1 流內數據 108
2.4.2.2 啞(Dummy)數據集 109
2.4.3 DD語句的關鍵字參數 110
2.4.3.1 DSN 110
2.4.3.2 DISP 111
2.4.3.3 UNIT 112
2.4.3.4 VOLUME 112
2.4.3.5 SPACE 112
2.4.3.6 LABEL 112
2.4.3.7 DCB 113
2.4.3.8 SYSOUT 113
2.4.3.9 數據集串聯
(Concatenation) 113
2.4.3.10 存儲管理子系統
(SMS) 114
2.5 向后引用(Backward Reference) 114
2.6 條件JCL 117
2.7 INCLUDE 組 122
2.8 從JCL向PROGRAM傳遞參數 123
2.9 JOB 提交 124
2.10 JES2——作業處理步驟 124
2.11 JES3——作業處理步驟 125
2.12 系統顯示和查詢功能(SDSF) 125
2.12.1 輸出隊列的顯示及操作 126
2.12.2 掛起隊列的顯示及操作 129
2.12.3 顯示活動的作業清單及操作 130
2.12.4 顯示所有作業清單及操作 131
2.12.5 輸入隊列清單及其操作 132
2.12.6 初始器(INIT)的顯示及操作 132
2.12.7 系統日志(LOG) 134
2.12.8 用戶日志(ULOG) 136
2.13 系統例程(Utility)及常用工具 136
2.13.1 選擇需要的例程 137
2.13.2 例程使用的ddname 138
2.13.3 例程控制語句 138
2.13.4 復制和打印順序數據集 139
2.13.5 編輯順序數據集 140
2.13.6 轉換順序數據集為分區數據集
的成員 142
2.13.7 轉換順序數據集到分區數據集
——增加新成員 143
2.13.8 IEBCOPY復制分區數據集或
分區數據集成員 144
2.13.9 分區數據集的壓縮 145
2.13.10 維護源程序庫 146
2.13.11 打印分區數據集(PDS)
目錄清單 148
2.13.12 IEBCOMPR比較分區數據集 149
2.13.13 比較順序數據集 150
2.13.14 比較分區數據集中的成員 150
2.13.15 IEFBR14順序文件的建立
和刪除 151
2.13.16 文件的成批復制和重命名 152
2.13.17 分類 153
2.13.17.1 數據集的排序 153
2.13.17.2 數據集的合并 155
2.13.17.3 數據集的復制 156
2.13.17.4 數據集記錄的篩選——
包含滿足條件的記錄 156
2.13.17.5 數據集記錄的篩選——
生成頭記錄 158
2.13.17.6 數據集記錄的篩選——
跳過第1條記錄 158
2.13.17.7 交易合計 159
2.13.17.8 將輸入文件分成
兩個文件 159
2.14 JCL過程的定義 160
2.15 JCL過程的調用 161
2.16 過程調用中COND參數的使用 162
2.17 JCL符號參數 162
2.18 JCL過程的測試 164
2.19 過程定義和調用的例子 164
2.19.1 定義和調用流內過程 164
2.19.2 調用定義在系統過程庫中的過程 165
2.19.3 調用定義在系統過程庫中的
過程并覆蓋原過程中的參數 165
2.19.4 調用私有過程庫中的過程并
覆蓋原過程中的某些參數 166
2.20 作業運行清單(JOB LOG)的
閱讀和查錯 169
2.21 JCL過程參數置換和RESTART
語句 171
第3章 VSAM文件處理 175
3.1 概念和設備 175
3.1.1 KSDS組成部分 175
3.1.2 ESDS組成部分 176
3.1.3 RRDS組成部分 177
3.1.4 控制間隔(CI) 177
3.1.5 控制區域(CA) 178
3.1.6 跨越記錄(Spanned) 178
3.1.7 KSDS文件的物理實現 179
3.1.8 VSAM文件共享選項(SHARE OPTIONS) 180
3.1.8.1 跨區域(Cross-Region)
選項 181
3.1.8.2 跨系統(Cross-System)
選項 181
3.1.9 VSAM目錄(VSAM Catalogs) 182
3.1.9.1 主目錄 183
3.1.9.2 用戶目錄 183
3.1.9.3 VSAM數據空間 183
3.1.9.4 VSAM族 183
3.1.9.5 非VSAM數據集
(Non-VSAM Datasets) 184
3.2 存取方式服務設施(Access Method Services) 184
3.2.1 語句的語法 184
3.2.2 定義用戶目錄 185
3.2.3 定義數據空間 186
3.2.4 定義別名 187
3.2.5 定義VSAM文件 188
3.2.6 裝載記錄到VSAM文件中 192
3.2.6.1 使用REPRO備份文件 194
3.2.6.2 從備份文件中恢復數據 194
3.2.7 建立VSAM文件的可移植備份 195
3.2.8 恢復VSAM文件的可移植備份 195
3.2.9 維護可移植備份的次索引 197
3.2.10 備份和恢復目錄 197
3.2.11 刪除VSAM和非VSAM目標 198
3.2.12 顯示目錄清單 199
3.2.13 打印或顯示數據集內容 200
3.2.14 修改文件屬性 201
3.2.15 輔助(次)索引 202
3.2.16 核實VSAM數據集 206
3.3 世代數據集GDG 206
3.3.1 GDG的定義及建立 207
3.3.2 GDG文件的應用 209
第4章 常用的MVS主控臺命令 211
4.1 JES2命令 211
4.1.1 $D JOB顯示特定作業(JOB)
的信息 211
4.1.1.1 顯示作業的輸出信息 212
4.1.1.2 顯示使用緩沖區(SPOOL1)
超過1%的作業信息 212
4.1.1.3 $D STC查看已啟動任務
的作業號和狀態 212
4.1.1.4 顯示系統中的TSU用戶
及其作業號 212
4.1.2 $D SPOOL顯示緩沖區(Spool)
的狀態 213
顯示系統中所有的緩存區及使用
百分比和總的緩沖區
使用百分比 213
4.1.3 $DA顯示系統中所有活動的作業
的狀態 213
4.1.3.1 顯示系統中所有活動作業
的狀態 213
4.1.3.2 顯示特定設備上所有活動
作業的狀態 213
4.1.4 $D U顯示JES2控制的設備
的狀態 213
4.1.5 $D I顯示JES中初始器(Initiator)
的狀態 214
4.1.5.1 顯示JES中所有的初始器(Initiator)所定義的分區
和狀態 214
4.1.5.2 顯示Initiator 3的
詳細信息 214
4.1.6 $D Q顯示系統中所有的隊列中
的作業信息 215
4.1.6.1 顯示系統中所有的隊列
中的作業信息 215
4.1.6.2 顯示緩沖區中所有掛起
(Hold)作業的信息 215
4.1.7 $C JOB取消作業、TSO用戶
和STC 215
4.1.8 $A A釋放系統中所有掛起的作業 215
4.1.9 $A JOB釋放掛起的作業 216
4.1.9.1 釋放作業34到40 216
4.1.9.2 釋放作業號為10到15
的所有批處理作業、STC
和TSU用戶 216
4.1.10 $H A暫停系統中的所有的作業 216
4.1.11 $H JOB暫停特定的作業 216
4.1.11.1 暫停作業10開始的
所有作業 217
4.1.11.2 暫停作業STC00051 217
4.1.12 $S I啟動初始器(Initiator) 217
4.1.12.1 將初始器Initiator 5從DRAINED狀態變成INACTIVE狀態 217
4.1.12.2 啟動Initiator 8到10 217
4.1.13 $S XEQ讓JES2開始從QUEUE
中選擇作業執行 217
4.1.14 $P JES2停止JES2的處理 218
4.1.15 $P I停止特定的初始器 218
4.1.16 $P O Job清除作業的輸出信息 218
4.1.16.1 刪除作業IBMUSERN
的輸出信息 218
4.1.16.2 將class A和B中的
所有作業輸出刪除掉 218
4.1.16.3 解決JES2緩沖區
(SPOOL)滿的問題 218
4.1.17 $T JOB修改作業的類別和
優先級 218
4.1.17.1 將作業45的運行CLASS
改為X 219
4.1.17.2 將作業45的優先級加2 219
4.1.17.3 將執行隊列中用戶為
IBMUSER的作業的運行
CLASS改為Y 219
4.1.17.4 將執行隊列中運行
CLASS為Y的作業的
CLASS改為A 219
4.2 MVS命令 220
4.2.1 DISPLAY JOBS顯示當前正在運行
的作業、TSO用戶和STC任務 220
4.2.1.1 顯示當前正在運行的
作業、TSO用戶和
STC任務 220
4.2.1.2 顯示TSO用戶IBMUSER
的詳細信息 220
4.2.1.3 顯示所有IBMUSER
用戶提交的交易 220
4.2.2 Display Request顯示控制臺上
沒有回答信息的總數 221
4.2.2.1 顯示控制臺上沒有回答
信息的總數 221
4.2.2.2 查詢未回答信息的
作業名 221
4.2.2.3 顯示以IBM開頭的作業
的未回答信息 221
4.2.3 DISPLAY SMF顯示系統中的
SMF配置 221
4.2.3.1 顯示系統中的SMF配置、
使用的文件及每個文件的
使用百分比 221
4.2.3.2 顯示SMF的當前
配置情況 222
4.2.4 DISPLAY CONSOLES顯示控制
臺MASTCONS上的詳細信息 222
4.2.4.1 顯示控制臺MASTCONS
上的詳細信息 222
4.2.4.2 查詢主控臺未回答信息的
個數及系統可容許的總數 222
4.2.5 DISPLAY M顯示當前系統設備
的配置信息 223
4.2.5.1 顯示當前系統的所有設備
的配置信息 223
4.2.5.2 顯示設備01C0的
狀態信息 223
4.2.6 DISPLAY OPDATA顯示
操作員信息 223
4.2.7 DISPLAY ASM顯示系統中
的PAGE數據集的信息 224
4.2.8 DISPLAY U顯示直接存取設備
的信息 224
4.2.9 DISPLAY DUMP顯示DUMP
數據集的信息 224
4.2.10 DISPLAY GRS監測資源
爭用狀況 225
4.2.10.1 顯示資源爭用
(Contention)信息 225
4.2.10.2 顯示等待某資源的作業 225
4.2.10.3 顯示某一特定資源的
使用情況 225
4.2.10.4 DEVSERV查看NON-SMS
管理的卷 226
COBOL程序設計導論
第5章 COBOL語言簡介 228
5.1 COBOL特性 228
5.2 標識部(Identification Division) 229
5.3 環境部(Environment Division) 229
5.4 數據部(Data Division) 230
5.5 過程部(Procedure Division) 230
5.5.1 節(Section) 230
5.5.2 段(Paragraph) 230
5.5.3 語句和句子 231
5.6 完整的COBOL程序 231
5.7 最精致的COBOL程序 231
5.8 普通COBOL程序編譯流程圖及
樣板作業流 232
5.9 COBOL編碼規則 235
5.10 名字的結構 236
5.11 數據描述和數據傳送(Move)
語句 236
5.11.1 COBOL數據類型及模式
(Picture)短語 237
5.11.2 級別號表達數據的層次 238
5.11.3 特殊級別號數據項 238
5.11.4 組合項和基本項 239
5.11.5 數據用法(USAGE)短語 240
5.11.6 數字編輯(EDITED)格式 242
5.11.7 數據傳送(MOVE)語句 244
5.11.8 程序例子(MOVE語句) 245
5.11.9 運行結果(MOVE語句) 250
第6章 COBOL語言數據處理 252
6.1 DISPLAY語句 252
6.2 ACCEPT語句 252
6.3 DISPLAY和ACCEPT語句的
程序例子 254
6.3.1 使用ACCEPT和DISPLAY的
完整程序 254
6.3.2 運行ACCEPT和DISPLAY的
程序的作業流 255
6.3.3 使用ACCEPT和DISPLAY的
程序的輸出結果 255
6.4 PERFORM語句 255
6.4.1 程序例子(PERFORM語句) 258
6.4.2 程序執行結果(PERFORM語句) 262
6.5 IF語句 262
6.6 SET語句 264
6.7 EVALUATE語句 264
6.8 CONTINUE和NEXT SENTENCE
語句 266
6.8.1 程序例子(CONTINUE和
NEXT SENTENCE語句) 267
6.8.2 運行結果報表(CONTINUE
和NEXT SENTENCE語句) 267
6.9 算術運算語句 268
6.9.1 四舍五入(ROUNDED)選項 268
6.9.2 數據溢出(ON SIZE ERROR)
選項 268
6.9.3 帶有余數(REMAINDER)選項
的DIVIDE語句 268
6.9.4 綜合運算(COMPUTE)語句 269
6.9.5 程序例子(算術運算) 269
6.9.6 程序運行結果(算術運算) 276
6.10 STRING命令 276
6.10.1 程序例子(STRING命令) 277
6.10.2 程序運行結果(STRING命令) 281
6.11 UNSTRING命令 281
6.11.1 程序例子(UNSTRING命令) 282
6.11.2 程序運行結果(UNSTRING
命令) 285
6.12 INSPECT語句 286
6.12.1 程序例子(INSPECT命令) 288
6.12.2 程序運行結果(INSPECT
命令) 290
6.13 COPY語句 290
6.13.1 程序例子(COPY命令) 291
6.13.2 程序編譯清單(COPY命令) 292
第7章 向COBOL專家邁進 296
7.1 主程序和子程序 296
7.1.1 主程序的CALL語句 296
7.1.2 子程序 298
7.1.3 主程序例子1(MAIN1) 299
7.1.4 子程序例子1(MYSUB1) 301
7.1.5 程序運行結果(MAIN1) 301
7.1.6 主程序例子2(MAIN2) 302
7.1.7 程序運行結果(MAIN2) 303
7.1.8 子程序例子2(MYSUB2) 304
7.1.9 JCL調用例子(MYSUB2) 304
7.1.10 程序運行結果(MYSUB2) 305
7.2 表處理 305
7.2.1 表的定義 305
7.2.2 下標、索引和SET索引語句 306
7.2.3 SEARCH動詞 307
7.2.4 表的初始化 310
7.2.5 二維表 311
7.2.6 表初始化程序例子(TABLE8) 313
7.2.7 表初始化作業流 315
7.2.8 表初始輸入數據 315
7.2.9 表初始化運行結果 316
7.2.10 二維表初始化程序例子
(TABLE6) 317
7.2.11 二維表初始化作業流 319
7.2.12 二維表初始輸入數據 319
7.2.13 二維表初始化運行結果 321
7.2.14 順序和折半檢索程序例子
(TABLE3) 322
7.2.15 運行作業流(TABLE3) 324
7.2.16 運行結果(TABLE3) 324
7.3 提要 325
第8章 順序文件的維護 326
8.1 COBOL的擴充 326
8.1.1 SELECT語句 326
8.1.2 在COBOL程序中使用ddname 329
8.1.3 FD項目 329
8.1.4 OPEN和CLOSE語句 331
8.2 平衡線算法 332
8.3 銀行主文件維護平衡線程序
(BKUPD1) 334
8.4 交易文件的格式 339
8.5 主文件的格式 340
8.6 運行銀行主文件維護平衡線程序
的作業流(GOBKUPD1) 341
8.7 交易文件(BKTRAN) 341
8.8 按照賬戶分類以后的交易文件(BKTRAN-SORT) 343
8.9 舊主文件(BKMASTO) 345
8.10 新主文件(BKMASTN) 346
8.11 銀行主文件維護的運行結果 346
8.12 銀行主文件維護平衡線程序
的擴充(BKUPD2) 348
8.13 運行銀行主文件維護平衡線
擴充程序的作業流(GOBKUPD2) 356
8.14 銀行主文件維護平衡線擴充程序
的運行結果 357
8.15 交易日報表 359
8.16 提要 362
第9章 索引文件 363
9.1 概要 363
9.2 文件組織的概念 363
9.3 COBOL要求 364
9.3.1 環境部 364
9.3.2 過程部 366
9.4 文件狀態關鍵字概述 367
9.5 非順序文件維護 369
9.6 平衡線算法的索引文件版程序(BKUPD3) 371
9.7 平衡線算法的索引文件版程序
運行作業流(GOBKUPD3) 379
9.8 運行結果清單 382
9.9 與順序文件輸出結果的比較 384
9.10 提要 384
第10章 結構程序設計及源程序級查錯 385
10.1 歷史回顧 385
10.2 定義 385
10.3 基本結構的充分性 386
10.4 COBOL中的實現 387
10.5 結構程序設計的優點 387
10.6 結構理論的擴充 387
10.7 GO TO論戰 388
10.8 源程序級查錯 389
10.9 常見運行錯誤 389
10.9.1 未能初始化(再初始化)計數器 389
10.9.2 計數器定義得太小 389
10.9.3 循環內的錯誤 389
10.9.4 SEARCH動詞的錯誤使用 390
10.9.5 不正確使用MOVE語句 390
10.9.6 與帶符號數字打交道要特別小心 390
10.9.7 不適當使用嵌套IF語句 390
10.9.8 遺漏或多余句號 391
10.9.9 WRITE后存取FD區域 391
10.9.10 從被PERFORM模塊中不
適當地跳出 391
10.9.11 未能設置或重新設置開關 391
10.9.12 不適當調用子程序 391
10.9.13 文件開始或結束條件錯誤 391
10.9.14 索引或下標非法 391
10.9.15 不適當使用注解 392
10.10 查找運行時錯誤產生的原因 392
10.10.1 確定導致程序異常終止的指令
的位移 393
10.10.2 生成帶有程序指令位移的
COBOL程序編譯清單 393
10.10.3 確定導致程序異常結束的
COBOL源程序語句 411
10.10.4 確定導致程序異常結束的原因 412
10.11 提要 413
第11章 程序設計風格的探討 414
11.1 保持動詞的層次關系 414
11.2 選擇有意義的名字 415
11.3 格式化數據部分 416
11.4 有吸引力的空白行 417
11.5 將句號(.)單獨寫在一行 417
11.6 避免使用逗號(,) 417
11.7 使用第73∼80列 417
11.8 限制開關和下標于單個用途 417
11.9 避免使用常數 418
11.10 放置模塊使得能找到它們 419
11.11 使用適當的注解 419
11.12 PERFORM 段而不是節 419
11.13 避免使用MOVE
CORRESPONDING 420
11.14 去掉77級項目 421
11.15 使用88級項目以減少復合條件 421
11.16 對復合算術運算使用
COMPUTE動詞 422
11.17 避免使用文字常數 422
11.18 動態初始化表 423
11.19 使用READ INTO、WRITE
FROM和WS BEGINS HERE 423
11.20 傳送單個01級到子程序 424
11.21 避免“聰明的代碼” 424
11.22 不要過于看重效率,但仔細
地選擇算法 425
11.23 預防式地編碼 426
11.24 首先考慮,然后編碼 427
11.25 提要 427
DB2實用程序設計
第12章 DB2的概念 430
12.1 DB2目標層次結構 430
12.2 數據庫的連接 431
12.3 SQL語言類型 431
12.4 數據定義語言(DDL) 431
12.4.1 DB2存儲組 431
12.4.2 數據庫(Database) 432
12.4.3 數據庫表空間(Tablespace) 433
12.4.4 數據庫的表(Table) 435
12.4.5 引用完整性(Referential
Integrity) 440
12.4.6 索引(Index) 441
12.4.7 視圖(View) 444
12.4.7.1 視圖之上的視圖 446
12.4.7.2 視圖上的SELECT、
插入、修改和刪除 446
12.4.7.3 UNION/UNION ALL
視圖 447
12.4.7.4 CHECK OPTION引起
視圖中的行消失了 448
12.4.7.5 WITH CHECK OPTION
的例子 449
12.4.8 同義詞(SYNONYM) 449
12.4.9 別名(ALIAS) 449
12.4.10 數據庫目標的刪除(DROP) 450
12.4.11 DDL語句的應用實例 451
12.5 數據控制語言(Data Control
Language——DCL) 454
12.5.1 賦予(GRANT)和廢除
(REVOKE)語句 454
12.5.2 賦予及廢除權限 457
12.6 數據操作語言(Data Manipulation
Language——DML) 463
12.6.1 數據檢索 464
12.6.1.1 檢索整個表 465
12.6.1.2 從表中挑選特定的列 465
12.6.1.3 改變列的排序 466
12.6.1.4 從表中挑選特定的行 466
12.6.1.5 使用多個條件挑選特定
的行 466
12.6.1.6 從多個表中選擇要求
的列 467
12.6.1.7 使用關系名 468
12.6.1.8 查詢結果排序 468
12.6.1.9 計算出的列 469
12.6.1.10 為計算出的列命名 470
12.6.1.11 函數(Functions) 470
12.6.1.12 分組合計(Grouping
Values) 472
12.6.1.13 約束一組數據的使用 472
12.6.1.14 去掉重復的記錄 473
12.6.1.15 字符串模式查找 474
12.6.1.16 按數據范圍搜索 474
12.6.1.17 搜索空值(Null
Values) 475
12.6.1.18 按否定的條件查詢 475
12.6.1.19 檢索一組值 476
12.6.2 數據更新 476
12.6.2.1 插入數據記錄 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 刪除數據 479
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) 484
12.6.4.3 表函數
(Table Functions) 484
12.6.4.4 執行用戶定義函數 485
12.6.5 觸發器 485
12.7 DB2I工具 487
12.7.1 DB2I工具概要 487
12.7.2 SPUFI 487
第13章 DB2程序準備 489
13.1 DB2程序編譯流程圖及樣板
作業流 489
13.2 預編譯和綁定 491
13.2.1 預編譯 491
13.2.1.1 預編譯器 492
13.2.1.2 修改過的源程序代碼 493
13.2.1.3 DBRM 493
13.2.2 綁定 494
13.2.2.1 綁定到包和直接綁定
方案的區別 495
13.2.2.2 方案、包和集合 496
13.2.2.3 運行時COBOL裝載
模塊調用DBRM 497
13.3 綁定與再綁定 497
13.3.1 自動再綁定 498
13.3.2 綁定與再綁定選項 498
13.3.3 讓綁定決定存取的目標 501
13.3.4 綁定的其他考慮因素 502
13.4 刪除包或方案 502
第14章 DB2程序結構 503
14.1 分隔符 503
14.2 主變量和主變量組合項 504
14.2.1 主變量的用法 505
14.2.2 主變量組合項的用法 506
14.2.3 主變量——接收單行數據 507
14.2.4 主變量——接收多行數據 507
14.2.5 主變量——插入記錄行 507
14.2.6 主變量——修改數據 508
14.2.7 主變量——各種語言的定義 508
14.3 DCLGEN 510
14.3.1 從DB2I主菜單進入DCLGEN
選項 510
14.3.2 DCLGEN輸出例子 511
14.4 處理空數據 512
14.5 SQLCA——SQL通信區 515
14.6 SQL INCLUDE 語句 517
14.7 查詢客戶資料程序 518
14.7.1 查詢DB2客戶資料源程序
(BKINQ) 519
14.7.2 數據庫表CUSTINFO的記錄
格式及DCLGEN輸出 520
14.7.3 數據庫表通信區SQLCA的記錄
格式 521
14.7.4 運行客戶資料查詢程序的JCL 522
14.7.5 程序運行結果 522
14.8 修改客戶資料程序(BKUPDT) 523
14.8.1 修改客戶資料源程序 523
14.8.2 程序運行前客戶資料表中的記錄 525
14.8.3 運行客戶資料修改程序的JCL 526
14.8.4 客戶資料修改的輸入文件 526
14.8.5 客戶資料修改后表中的內容 527
14.9 修改明細客戶資料程序——
空值和變長記錄處理 527
14.9.1 修改明細客戶資料源程序 528
14.9.2 客戶明細資料表CUSTINF1的
記錄格式及DCLGEN輸出結果 531
14.9.3 計算字符串長度子程序 532
14.9.4 明細客戶資料表中原來的內容 533
14.9.5 輸入文件CUSTINFO 534
14.9.6 運行明細客戶資料程序的JCL 534
14.9.7 修改后的明細客戶資料表 534
14.10 使用游標 535
14.10.1 定義游標 535
14.10.2 打開游標 536
14.10.3 執行SQL語句 537
14.10.3.1 取數據(FETCH) 537
14.10.3.2 定位修改(Positioned
UPDATE) 537
14.10.3.3 定位刪除(Positioned
DELETE) 538
14.10.3.4 游標定位修改或刪除
的一些限制 538
14.10.4 關閉游標 539
14.10.5 保持游標(Cursor WITH
HOLD) 539
14.10.6 游標的重新定位 539
14.11 瀏覽客戶資料表(BKNMINQ)
——使用游標處理多個記錄 541
14.11.1 瀏覽客戶資料表源程序 542
14.11.2 運行瀏覽客戶資料表程序
的JCL 544
14.11.3 程序運行前客戶資料表的內容 545
14.11.4 瀏覽客戶資料表程序的
查詢結果 545
第15章 DB2恢復和鎖定的概念 546
15.1 可恢復單元(Unit of Recovery) 546
15.2 提交(COMMIT)和回滾
(ROLLBACK) 547
15.3 保存點(SAVEPOINT) 548
15.4 數據恢復 550
15.4.1 日志 550
15.4.2 日志數據集 550
15.4.3 引導數據集BSDS 551
15.4.4 SYSIBM.SYSLGRNX 551
15.4.5 數據庫恢復三部曲 551
15.5 數據鎖 552
15.5.1 鎖的屬性 553
15.5.2 鎖的大小(Lock Sizes) 553
15.5.2.1 表鎖(Lock Table)
語句 554
15.5.2.2 鎖定選定的分區 554
15.5.2.3 大對象(LOB)鎖 554
15.5.3 鎖模式(Lock Modes) 555
15.5.3.1 表或表空間鎖 556
15.5.3.2 頁鎖或行鎖 557
15.5.4 表空間和表鎖的持續時間
(Lock Durations) 557
15.5.5 頁鎖或行鎖的持續時間——
隔離級別 558
15.5.5.1 可重復讀 559
15.5.5.2 讀穩定性 559
15.5.5.3 游標穩定性 559
15.5.5.4 未提交讀 560
15.5.6 WITH RR/RS/CS/UR短語的使用 560
15.5.7 鎖的覆蓋與避免 560
15.5.8 悲觀鎖定與樂觀鎖定 562
第16章 動態SQL介紹 563
16.1 使用動態SQL 563
16.2 在應用程序中嵌套動態SQL 563
16.3 完整的非SELECT語句 564
16.3.1 完整的非SELECT語句源程序(BKDYNA1) 564
16.3.2 完整的非SELECT語句——
程序運行前表中的內容 566
16.3.3 完整的非SELECT語句——
運行程序的作業流 567
16.3.4 完整的非SELECT語句——程序
運行后的顯示信息及表中的記錄 567
16.4 參數化的非SELECT語句 568
16.4.1 參數化的非SELECT語句
源程序(BKDYNA2) 568
16.4.2 參數化的非SELECT語句——
程序運行前表中的內容 570
16.4.3 參數化的非SELECT語句——
運行程序的作業流 570
16.4.4 參數化的非SELECT語句——程序
運行后的顯示信息及表中的記錄 571
16.5 固定列表的SELECT語句 571
16.5.1 固定列表的SELECT語句
源程序(BKDYNA3) 571
16.5.2 固定列表的SELECT語句——
運行程序的作業流 574
16.5.3 固定列表的SELECT語句——
程序運行結果 575
第17章 管理DB2測試數據 576
17.1 數據移動例程 576
17.1.1 裝載(Load)例程 576
17.1.2 裝載的完整作業流 577
17.1.2.1 增加或覆蓋 579
17.1.2.2 裝載排好序的行 580
17.1.2.3 裝載分區表 580
17.1.2.4 數據類型轉換 581
17.1.2.5 引用完整性(Referential Integrity) 581
17.1.2.6 不強制執行
(ENFORCE NO) 582
17.1.3 數據卸載(Unload)例程 582
17.1.4 使用DSNTIAUL程序卸載數據 585
17.2 數據統計 587
17.2.1 數據統計概述 588
17.2.2 統計(RUNSTATS)例程 588
17.2.2.1 輸出報告并修改DB2
編目表 589
17.2.2.2 運行統計例程時存取
數據庫 589
17.2.2.3 樣本數據 589
17.2.2.4 在DB2編目表上運行
統計例程 589
17.2.2.5 統計例程完整作業流 589
17.3 重組(REORG) 590
17.3.1 重組表空間 590
17.3.2 重組表空間的完整作業流 591
17.3.3 重組索引 592
第18章 DB2性能調優的理論及實踐 593
18.1 存取路徑及優化 593
18.2 DB2解釋(EXPLAIN)工具 594
18.3 收集解釋數據 594
18.4 分析解釋數據 596
18.5 存取路徑評估 599
18.5.1 索引存取 599
18.5.2 表存取 600
18.5.3 預取 601
18.6 存取路徑提示(優化提示) 601
18.7 使用解釋表輸出的指引 601
18.8 改善性能的索引設計 602
18.8.1 匹配索引掃描
(MATCHCOLS > 0) 602
18.8.2 索引篩選 603
18.8.3 不匹配索引掃描(ACCESSTYPE =
I而且MATCHCOLS = 0) 603
18.8.4 IN列表索引掃描
(ACCESSTYPE = N) 603
18.8.5 多索引存取(ACCESSTYPE為
M、MX、MI或MU) 603
18.8.6 一次獲取存取
(ACCESSTYPE = I1) 604
18.8.7 只存取索引
(INDEXONLY = Y) 604
18.8.8 相等唯一索引(MATCHCOLS =
索引列數) 604
18.9 使用索引以避免分類 604
18.10 避免死鎖 604
18.11 DB2索引、謂詞和DB2運行
架構 606
18.11.1 DB2索引回顧 606
18.11.2 DB2謂詞分析 606
18.11.3 索引管理器 607
18.11.4 常見問題及解答 609
18.12 大型銀行核心系統DB2調優
實踐 610
18.12.1 性能調優工作流程 610
18.12.2 典型案例1:公共轉睡眠戶
-CBF0070J 610
18.12.3 典型案例2:活期主檔掃描
-SDD0011J 612
CICS程序設計導論
第19章 CICS應用程序環境 616
19.1 CICS 基本概念回顧 616
19.2 CICS聯機交易 618
19.3 CICS模塊組成 620
19.3.1 CICS管理功能 620
19.3.2 CICS基本組成 620
19.3.3 CICS管理模塊 621
19.3.4 CICS系統控制表 622
19.3.5 CICS數據區域 623
19.4 CICS交易工作流程 625
19.5 CICS程序并行工作原理 625
第20章 CICS應用系統設計 627
20.1 對話與偽對話 627
20.2 通信區(COMMAREA) 629
20.3 偽對話程序的實現方法 630
第21章 CICS命令概述 632
21.1 編寫CICS命令 632
21.2 程序準備 634
21.3 基本界面支持(Basic Mapping
Support) 637
21.3.1 3270字段基本概念 637
21.3.2 界面定義樣本 638
21.3.2.1 如何編寫BMS宏命令 638
21.3.2.2 如何編寫匯編語言語句 638
21.3.2.3 如何使用DFHMSD
宏命令定義界面集
(Mapset) 640
21.3.2.4 如何使用DFHMDI
宏命令定義界面集中
的界面(Map) 643
21.3.2.5 如何使用DFHMDF
宏命令定義界面中
的字段 643
21.3.2.6 BMS字段定義模板 645
21.3.3 銀行柜員簽到程序的界面格式
及界面集完整代碼 647
21.4 界面準備 649
21.5 符號界面及符號界面格式 652
21.6 界面的輸出 654
21.7 界面的輸入 655
21.8 常用標識鍵描述(DFHAID) 656
21.9 界面顯示屬性常量
(DFHBMSCA) 658
21.10 異常狀態 660
第22章 CICS程序對程序的控制 662
22.1 CICS程序對程序的控制概述 662
22.2 LINK命令 662
22.3 XCTL命令 663
22.4 通信區長度不匹配的討論 664
22.5 COBOL CALL與LINK或XCTL
的比較 665
22.6 用戶表的裝載(LOAD)和釋放(RELEASE) 666
22.7 啟動新交易(START)并接收(RETRIEVE)所傳遞的數據 668
22.8 RETURN命令 669
第23章 CICS數據處理 670
23.1 CICS存取VSAM的方法 670
23.2 VSAM基本概念回顧 671
23.2.1 VSAM文件的組織形式和
存取方法 672
23.2.1.1 鍵順序數據組織 672
23.2.1.2 進入順序數據組織 672
23.2.1.3 相對順序數據組織 673
23.2.1.4 三種數據組織形式
的比較 673
23.2.2 VSAM的物理結構與邏輯結構 673
23.3 VSAM文件獨占控制 675
23.4 交易死鎖 676
23.5 工作單元的資源保護 676
23.6 聯機程序的組織結構 677
23.7 CICS中訪問VSAM文件的
常用命令 677
23.7.1 READ命令 678
23.7.2 WRITE命令 679
23.7.3 REWRITE命令 680
23.7.4 DELETE命令 681
23.7.5 UNLOCK命令 682
23.8 CICS中瀏覽VSAM文件的
常用命令 682
23.8.1 STARTBR命令 683
23.8.2 READNEXT命令 684
23.8.3 READPREV命令 685
23.8.4 ENDBR命令 687
23.8.5 RESETBR命令 688
23.8.6 CICS中按照次索引瀏覽
VSAM文件 689
23.9 銀行交易瀏覽程序例子 690
23.9.1 聯機交易文件的格式 690
23.9.2 定義交易文件新格式和次索引
的作業流 691
23.9.3 瀏覽交易界面源代碼 693
23.9.4 瀏覽交易簡化的符號界面 695
23.9.5 瀏覽交易COBOL程序完整
源代碼 696
23.9.6 銀行瀏覽交易聯機CICS
資源定義 706
23.9.7 銀行瀏覽交易聯機運行
結果演示 709
23.10 CICS存取DB2的方法 712
23.11 CICS訪問DB2的程序結構 712
23.12 CICS訪問DB2程序的編譯步驟 713
23.13 CICS應用程序訪問DB2
的準備工作 715
23.13.1 定義CICS與DB2之間
的連接(DB2CONN) 715
23.13.2 定義進入線程(DB2ENTRY) 717
23.13.3 定義DB2交易(DB2TRAN) 718
23.14 其他CICS常用命令 719
23.14.1 任務控制命令(ENQ和DEQ) 719
23.14.2 獲取系統日期和時間信息 721
23.14.2.1 ASKTIME命令 721
23.14.2.2 FORMATTIME命令 721
23.14.3 存取CICS系統公共信息
(ADDRESS命令) 722
23.14.4 內存管理命令(GETMAIN
和FREEMAIN) 723
23.14.4.1 GETMAIN命令 723
23.14.4.2 FREEMAIN命令 724
23.14.5 DELAY命令 725
23.14.6 CANCEL命令 726
23.14.7 ASSIGN命令 727
23.14.8 ALLOCATE(APPC)命令 728
23.14.9 CONNECT PROCESS命令 729
23.14.10 SEND(APPC)命令 731
23.14.11 RECEIVE(APPC)命令 732
23.14.12 DEFINE COUNTER命令 733
23.14.13 SUSPEND命令 734
第24章 CICS隊列 735
24.1 CICS隊列設備 735
24.2 分區內過渡隊列 735
24.3 分區外過渡隊列 736
24.3.1 定長記錄文件 737
24.3.2 變長記錄文件 738
24.3.3 結尾記錄文件 738
24.4 間接目的地 738
24.5 過渡隊列服務 739
24.5.1 輸出數據到過渡隊列 739
24.5.2 從過渡隊列中讀出數據 739
24.5.3 從過渡隊列中刪除數據 740
24.6 觸發交易啟動 740
24.7 臨時存儲隊列概述 741
24.8 臨時存儲隊列服務 741
24.8.1 寫數據到臨時存儲隊列 742
24.8.2 修改臨時存儲隊列中的數據 743
24.8.3 從臨時存儲隊列中讀取數據 743
24.8.4 刪除臨時存儲隊列中的數據 744
24.9 臨時存儲隊列的典型用法 744
24.10 臨時存儲隊列命名 745
24.11 刪除臨時存儲隊列 746
24.12 臨時數據的存放位置 746
24.13 隊列的老化 746
24.14 隊列屬性 746
24.15 過渡數據隊列和臨時存儲
隊列的比較 746
24.16 CEBR 747
24.16.1 默認TS隊列 747
24.16.2 CEBR的幫助 748
24.16.3 隊列顯示 748
24.16.4 獲取TD隊列 749
第25章 銀行系統實例 750
25.1 銀行系統流程圖 750
25.2 柜員簽到模塊 752
25.2.1 程序(EMLOGON) 752
25.2.2 交易(EMPL) 757
25.2.3 界面(EMPSET1) 757
25.2.4 柜員信息表(EMPLINFO) 758
25.3 賬戶維護菜單模塊 759
25.3.1 程序(EMMENU) 759
25.3.2 交易(EMME) 762
25.3.3 界面(EMESET1) 763
25.4 建立新賬戶模塊 764
25.4.1 程序(CREATE) 765
25.4.2 子程序(AUTOPE) 772
25.4.3 子程序(STRLEN) 773
25.4.4 子程序(NUMEDIT) 774
25.4.5 交易(CREA) 776
25.4.6 界面(CRESET1) 777
25.4.7 文件(AUTOPE) 780
25.4.8 客戶賬戶資料表(CUSTINFO) 781
25.4.9 交易流水表(OPERATIN) 782
第26章 CICS提供的交易及調試CICS
應用程序 784
26.1 CICS系統的啟動和關閉 784
26.2 CICS提供的交易 785
26.3 CICS簽到交易CESN 786
26.4 CICS簽退交易CESF 786
26.5 查看終端狀態交易CEOT 787
26.6 信息查找CMAC交易 788
26.7 命令層的解釋程序CECI和
CECS交易 788
26.8 CEMT(MASTER TERMINAL)
交易 791
26.8.1 移除資源(DISC) 791
26.8.2 查詢CICS資源狀態 792
26.8.2.1 查看CICS定義的
文件狀態 792
26.8.2.2 查看CICS定義的
程序狀態 792
26.8.2.3 查看CICS定義的
終端狀態 793
26.8.2.4 查看CICS定義的轉存
文件狀態 793
26.8.2.5 查看CICS運行的
任務狀態 793
26.8.2.6 查看CICS定義的
交易狀態 794
26.8.2.7 查看CICS定義的外部
連接狀態 794
26.8.3 修改CICS資源狀態 795
26.8.3.1 更新聯機程序的新版本 795
26.8.3.2 更改文件狀態 795
26.8.3.3 切換當前使用的轉存
(DUMP)文件 796
26.8.3.4 停止正在運行的任務
(TASK) 797
26.8.3.5 更改交易的狀態 797
26.8.3.6 更改終端的狀態 798
26.8.4 執行特殊的CICS功能 798
26.9 聯機資源定義交易(CEDA) 799
26.9.1 CEDA命令的子命令 800
26.9.2 CEDA DELETE命令和CEDA REMOVE命令的異同點 801
26.9.3 添加資源到成員清單的步驟 801
26.9.4 CEDA常用命令的使用方法 802
26.9.4.1 定義程序 802
26.9.4.2 定義界面集 802
26.9.4.3 定義文件 803
26.9.4.4 查看交易清單及交易
詳細定義 804
26.9.4.5 查看程序清單及程序
詳細定義 804
26.9.4.6 查看界面清單及
界面定義 805
26.9.4.7 查看DB2進入線程
清單及詳細定義 805
26.9.4.8 查看DB2交易清單及
詳細定義 805
26.9.4.9 安裝資源到CICS中 806
26.10 CICS聯機交易診斷工具 807
26.10.1 CEDF交易 807
26.10.1.1 開始EDF跟蹤
(單終端模式) 808
26.10.1.2 PF7/PF8滾動顯示 808
26.10.1.3 覆蓋參數(Argument)
的值 809
26.10.1.4 覆蓋返回碼
(Response) 810
26.10.1.5 顯示翻譯器中的源
程序行數 811
26.10.1.6 PF6顯示用戶界面 818
26.10.1.7 PF2以十六進制格式
顯示屏幕上的內容 818
26.10.1.8 PF5顯示工作存儲區 818
26.10.1.9 在存儲區界面用
PF4顯示EIB 819
26.10.1.10 在存儲區界面使用
PF2調用CEBR交易 819
26.10.1.11 在存儲區界面使用
PF5調用CECI交易 820
26.10.1.12 設定停止顯示的條件 821
26.10.1.13 顯示以前的命令 821
26.10.1.14 偽對話的繼續 821
26.10.1.15 程序終止 822
26.10.1.16 任務終止 822
26.10.1.17 申請異常中斷 822
26.10.1.18 開始EDF跟蹤
(雙終端模式) 822
26.10.2 CEDX交易 824
26.10.3 設置用戶跟蹤入口點 825
第27章 COBOL函數及編譯選項 827
27.1 COBOL提供的內部函數 827
27.1.1 內部函數的類型 828
27.1.2 嵌套函數 828
27.1.3 函數對數組項目的處理 828
27.2 數據項目轉換內部函數 829
27.2.1 轉換大小寫(UPPER-CASE,LOWER-CASE) 829
27.2.2 轉換字符串的排列次序
(REVERSE) 830
27.2.3 轉換成數字(NUMVAL,
NUMVAL-C) 830
27.2.4 數字去編輯(DE-EDITING) 831
27.2.5 代碼頁(Code page)轉換
(DISPLAY-OF和
NATIONAL-OF) 832
27.3 求數據項的值 835
27.3.1 求單個字符在代碼集中的
序號(ORD) 835
27.3.2 按代碼集中的序號返回對應
的字符(CHAR) 836
27.3.3 求數據項的最大值和最小值 836
27.3.4 返回最大和最小序號值
ORD-MAX和ORD-MIN 837
27.3.5 找出數據項的長度 837
27.3.6 字母數字(alphanumeric)函數
返回變長結果 838
27.4 找出程序編譯日期 838
27.5 EBCDIC和ASCII排列次序 839
27.5.1 EBCDIC排列次序
(collating sequence) 839
27.5.2 美國英語ASCII代碼頁
(code page) 842
27.6 貨幣符號的使用 845
27.7 日期相關的函數 846
27.7.1 獲取系統當前日期和時間(CURRENT-DATE) 847
27.7.2 獲取整數日子(INTEGER-
OF-DATE) 847
27.7.3 獲取整數日期(DATE-OF-
INTEGER) 848
27.7.4 轉換儒略日到整數日子
(INTEGER-OF-DAY) 848
27.7.5 轉換整數日子到儒略日
(DAY-OF-INTEGER) 848
27.8 數據統計 849
27.9 IBM企業級COBOL編譯選項 851
27.9.1 滿足COBOL 85標準的編譯選項 853
27.9.2 互相排斥的編譯選項 853
27.9.3 編譯選項說明 854
27.9.3.1 ADATA 854
27.9.3.2 ADV 855
27.9.3.3 ARITH 855
27.9.3.4 AWO 855
27.9.3.5 BUFSIZE 856
27.9.3.6 CICS 856
27.9.3.7 CODEPAGE 856
27.9.3.8 COMPILE 857
27.9.3.9 CURRENCY 857
27.9.3.10 DATA 858
27.9.3.11 DATEPROC 858
27.9.3.12 DBCS 859
27.9.3.13 DECK 859
27.9.3.14 DIAGTRUNC 859
27.9.3.15 DLL 860
27.9.3.16 DUMP 860
27.9.3.17 DYNAM 860
27.9.3.18 EXIT 861
27.9.3.19 EXPORTALL 861
27.9.3.20 FASTSRT 862
27.9.3.21 FLAG 862
27.9.3.22 FLAGSTD 862
27.9.3.23 INTDATE 863
27.9.3.24 LANGUAGE 864
27.9.3.25 LIB 864
27.9.3.26 LINECOUNT 864
27.9.3.27 LIST 865
27.9.3.28 MAP 865
27.9.3.29 NAME 866
27.9.3.30 NSYMBOL 866
27.9.3.31 NUMBER 866
27.9.3.32 NUMPROC 867
27.9.3.33 OBJECT 867
27.9.3.34 OFFSET 868
27.9.3.35 OPTIMIZE 868
27.9.3.36 OUTDD 868
27.9.3.37 PGMNAME 869
27.9.3.38 QUOTE/APOST 871
27.9.3.39 RENT 871
27.9.3.40 RMODE 871
27.9.3.41 SEQUENCE 872
27.9.3.42 SIZE 872
27.9.3.43 SOURCE 872
27.9.3.44 SPACE 873
27.9.3.45 SQL 873
27.9.3.46 SSRANGE 873
27.9.3.47 TERMINAL 874
27.9.3.48 TEST 874
27.9.3.49 THREAD 875
27.9.3.50 TRUNC 875
27.9.3.51 VBREF 878
27.9.3.52 WORD 878
27.9.3.53 XREF 878
27.9.3.54 YEARWINDOW 879
27.9.3.55 ZWB 879
提要 880
第28章 CICS交易Dump分析及查錯 881
28.1 CICS/ESA概覽 881
28.2 解決CICS問題的一般方法 887
28.2.1 確定問題前的初步檢查 887
28.2.2 確定問題的方法 888
28.3 解決CICS問題的主要資源 888
28.3.1 編譯輸出 888
28.3.2 編譯選項 889
28.3.3 CICS Log輸出 890
28.3.4 CICS信息格式 890
28.3.5 CICS的Abend代碼 891
28.3.6 CMAC交易 891
28.3.7 信息處置方法 891
28.3.8 交易軌跡(Traces)的類型 892
28.3.9 統計輸出(Statistics Output) 892
28.3.10 基本手冊(Essential Manuals) 893
28.4 CICS提供的交易 893
28.4.1 CEOT交易的執行 894
28.4.2 CEMT交易執行 894
28.4.3 CEMT查詢功能 894
28.4.4 CEMT查詢交易狀態 895
28.4.5 CEMT查詢交易的類別
(Tclass) 895
28.4.6 CEMT查詢程序的狀態 896
28.4.7 CEMT交易查詢文件狀態 896
28.4.8 CEMT查詢數據集(Dataset)
的狀態 897
28.4.9 CEMT交易查詢TD Queue狀態 897
28.4.10 CEMT查詢TS Queue狀態 897
28.4.11 CEMT查詢任務(Task)狀態 898
28.4.12 CEMT查詢VTAM通信狀態 899
28.4.13 CEMT查詢IRC的狀態 899
28.4.14 CEMT查詢連接(Connection)
狀態 900
28.4.15 從主控臺執行CICS提供
的交易 900
28.4.16 CRTE——執行遠程交易 901
28.4.17 CMSG交易傳遞信息 901
28.4.18 CEDF互動式查錯 902
28.5 使用Trace Tabel幫助查錯 902
28.6 讀懂CICS Trace記錄 906
28.7 使用CETR交易控制Trace
記錄內容 907
28.8 使用交易Dump幫助查錯 910
28.8.1 Dump中的十六進制計數 910
28.8.2 癥狀(Symptom)字符串和
寄存器組 911
28.8.3 任務控制區的用戶區
(Task Control Area - User Area) 912
28.8.4 任務控制區的系統區(Task
Control Area - System Area) 913
28.8.5 從CICSDump中找到TCAPCHS 913
28.8.6 從CICS DUMP中找到EIB
和EIS的內容 914
28.8.7 Dump中的交易內存區 915
28.8.8 TCTTE(Terminal Control Table Terminal Entry)數據區 916
28.8.9 Dump中的程序內存區 917
28.8.10 Dump的結尾 918
28.8.11 不經常訪問的Dump數據區域 919
28.8.12 CICS Command Level程序編碼 919
28.8.13 CICS程序初始化 920
28.8.14 CICS程序的執行 920
28.8.15 定位應用程序的RSA 920
28.8.16 從CICS Dump找到寄存器
14的三種方法 921
28.8.17 從CICS Dump中找到COBOL
程序出錯的EXEC CICS語句 922
28.8.18 從CICS Dump中找到COBOL
程序出錯的其他EXEC CICS語句 923
28.8.19 COBOL數據區域 924
28.8.20 COBOL內存映像
(Memory Map) 924
28.8.21 從CICS Dump中定位Working
Storage字段的方法 925
28.8.22 快速訪問被Link程序 927
28.8.23 設置Dump表交易 929
28.8.24 Dump處理 930
28.8.25 Abends的源頭 931
28.8.26 程序檢查(Program Checks) 932
28.8.27 程序狀態字(Program Status
Word,PSW) 934
28.8.28 交易Abend控制塊(Transaction
Abend Cobtrol Block – TACB) 935
28.9 使用交易Dump解決ASRA Abend
的實例 936
28.9.1 解決ASRA Abend問題的
通用方法 936
28.9.2 解決ASRA問題第1步 936
28.9.3 解決ASRA問題第2步 937
28.9.4 解決ASRA問題第3步 937
28.9.5 解決ASRA問題第4步 938
28.9.6 解決ASRA問題第5步 939
28.9.7 解決ASRA問題第6步 939
28.9.8 解決ASRA問題的一些提示 941
28.9.9 從CICS/ESA V3.2開始引入的
新Abend 941
28.10 使用交易Dump解決AEYD
Abend的方法 942
28.10.1 從CICS/ESA V4開始引入的
新Abend(AEYD) 942
28.10.2 解決AEYD Abend的方法 942
28.11 使用交易Dump解決死
循環(Loop)的方法 943
28.11.1 緊湊循環和執著循環
(Tight and Non-Yielding Loops) 944
28.11.2 柔軟的循環(Yielding Loop) 944
28.11.3 Trace Table的用法 944
28.11.4 解決循環的通用方法 945
28.11.5 其他的選項 945
28.12 使用交易Dump解決錯誤
輸出的方法 946
28.13 使用交易Dump解決ASRA
的真實案例 948
28.14 使用交易Dump解決AEYD
的真實案例 960
28.15 使用交易Dump解決循環
(Loop)的提示 967
提要 968
第29章 CICS通道容器
(Channel Container) 969
29.1 通道容器引入的背景 969
29.2 繞開32KB限制的非標準方法 970
29.3 通道容器的概念 971
29.3.1 當前通道(The Current
Channel) 972
29.3.2 通道的范圍(Scope of a
Channel) 974
29.3.3 通道的生命周期(Lifetime of a Channel) 975
29.4 通道容器相關的API命令 975
29.4.1 容器(Container)命令 975
29.4.2 程序調用/轉移命令 975
29.4.3 交易調用/轉移命令 976
29.4.4 查詢命令 976
29.4.5 容器瀏覽命令 976
29.5 數據轉換(Data Conversion) 976
29.6 應用場景 977
29.6.1 使用通道的基本應用場景 977
29.6.2 應用場景,多組件 978
29.6.3 應用場景,松耦合 978
29.7 遷移到通道容器 979
29.7.1 使用LINK程序的遷移 979
29.7.2 使用START程序的遷移 979
29.8 程序例子 981
29.9 最佳實踐 983
29.9.1 定義接口 984
29.9.2 DPL性能 984
提要 985
第30章 排序/合并及軟件質量控制 986
30.1 排序的概念 986
30.2 實現排序的步驟 987
30.3 COBOL中與排序有關的成分 988
30.4 SORT語句的第一種形式 990
30.5 SORT語句的第二種形式 994
30.6 MERGE(合并)語句 1001
30.7 軟件質量控制的一些思考 1003
30.7.1 軟件行業的最高指導原則——
KISS原則 1003
30.7.2 COBOL程序現狀 1003
30.7.3 COBOL程序質量低劣體現
在哪里 1005
30.7.4 如何鑒定程序質量的好壞 1006
30.7.5 如何做高質量的COBOL程序 1007
30.7.6 為何需要編程規范 1008
30.7.7 實際軟件開發規范細則 1008
30.7.8 讓COBOL全程自動監控I-O
操作的“DECLARATIVES” 1015
30.7.9 讓CICS全程自動監控CICS
命令的“HANDLE” 1016
30.7.10 聯機CICS程序中用戶功能鍵
的處理 1018
30.7.11 程序段(節)名前綴與
位置布局 1019
30.7.12 COBOL程序例子1(排序
程序改進版) 1022
30.7.13 COBOL程序例子2(報表
文件雙頁合并) 1026
30.7.14 文件對碰(MATCH)的
定式寫法 1029
提要 1035
第31章 數字貨幣及背后的技術 1036
31.1 數字貨幣 1036
31.2 比特幣 1037
31.3 區塊鏈 1041
31.3.1 區塊鏈是一種新的數據庫——
準備重寫一切 1041
31.3.2 逐漸走向去中心的世界 1044
31.3.3 系統的網絡效應 1045
31.3.4 比特幣與“其他的”區塊鏈 1046
31.4 數字貨幣多元化 1047
31.4.1 技術 1047
31.4.2 網絡效應(Network Effects) 1048
31.4.3 網絡效應和元貨幣(Metacoin) 1050
31.4.4 網絡效應和側鏈(Sidechains) 1050
31.4.5 修訂的貨幣網絡效應 1051
31.4.6 激勵與心理觀點 1052
31.4.7 新的策略 1053
31.5 以太坊 1054
31.5.1 為何需要新的平臺 1054
31.5.2 彩色幣 1055
31.5.3 元幣 1055
31.5.4 哲學 1056
31.5.5 基礎區塊創建 1057
31.5.6 修改實施幽靈協議 1057
31.5.7 以太坊客戶端P2P協議 1058
31.5.8 貨幣及其發行 1058
31.5.9 合約 1059
31.5.10 子貨幣 1059
31.5.11 未來應用 1059
31.5.12 以太坊小結 1060
31.6 應用案例和最新的進展 1060
31.6.1 國外應用情況 1060
31.6.2 國內應用情況 1062
提要 1063
附錄A 參考資料 1064
序: