|
-- 會員 / 註冊 --
|
|
|
|
IBM主機技術一本通(第2版) ( 簡體 字) |
作者:呂新民,李小文,王青萍 | 類別:1. -> 程式設計 -> 綜合 |
譯者: |
出版社:電子工業出版社 | 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 |
序: |
|