精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

如何為大型機開啟CICS存儲保護

責任編輯:vivian

2012-03-22 09:20:59

摘自:TechTarget中國

存儲重復占位段是調試時最棘手的問題之一,大型機存儲重復占位段可使數據、CICS區域遭到破壞,或可能造成計劃外的初始化程序加載。

存儲重復占位段是調試時最棘手的問題之一,大型機存儲重復占位段可使數據、CICS區域遭到破壞,或可能造成計劃外的初始化程序加載。CICS特別容易受到重復占位段破壞,因為它的結構分配程序和系統內存在一個地址空間,有效地繞過z/OS保護鎖,為了解決這個問題,IBM引入了三個功能,包括存儲保護,在這篇文章中,我將解釋什么是存儲保護,以及如何用它規避存儲重復占位段。
大型機存儲保護

借助存儲保護,CICS通過將系統和用戶數據放入不同的鎖來使用z/OS存儲鎖保護,這種方法允許CICS系統把對讀編碼,并寫入用戶和系統存儲,相反,應用程序可以讀,但不能更新CICS存儲,即使可以隨意控制用戶存儲,因此,正確實現的應用程序重復占位段系統存儲會產生一個保護異常(0C4),而不會讓CICS當掉。

你可以通過將系統初始化參數STGPORT設為YES為某個區域開啟存儲保護,這個參數不是動態的,CICS必須返回開關狀態。

激活存儲保護時,一些事務和程序屬性變得非常重要,例如,對某個事務,TASKDATAKEY屬性指定CICS使用哪一個鎖保護該事務,包括EXEC Interface Block事務工作區。

程序屬性EXECKEY告訴CICS當它進入程序時使用哪一個存儲鎖。

存儲保護和上面的資源屬性使事情變得更復雜,例如,一個有TASKDATAKEY的CICS事務不能調用有EXECKEY的USER程序,因為程序不能寫任務存儲,幸虧CICS可以感知到,并殺掉事務。

注意,如果STGPORT被設為NO,TASKDATAKEY和EXECKEY都將無效。

應用程序變化

設置CICS參數是最容易的部分,更大的挑戰是找出并修復不能與大型機存儲保護功能一起工作的應用程序。

修改CICS數據區域的程序將不再受存儲保護的控制,一個好的源掃描工具和一串CICS數據區域將幫助你快速找到它們。

一旦發現,可以修改程序使用CICS廣泛的系統編程接口(SPI),如果沒有SPI命令,CICS就退出或替換可用的進程,有些人需要確定功能是否仍然需要。

程序可以調用操作系統服務進行內存管理,資源序列化或事件同步,這些服務可能在一個不正確的鎖中使用存儲,有些系統級代碼總是需要操作系統服務,大多數調用應該調整,以便使用CICS的應用程序編程接口(API)。

需要注意的是,這些很可能是匯編程序,面向高級語言的運行時庫通常是很智能的,當它們知道它們處于在線環境中時,它們可以調用CICS服務。

但是,對大多數其它程序而言,適宜采用暴力方法,這就需要打開存儲保護,運行一個應用程序,獲得dump數據,修復代碼再次嘗試,雖然這會撼動一些較突出的問題,但真正的存儲違反行為可能不會出現,除非進行壓力測試。

存儲保護的實現和局限性

商家可能會采用多個策略實現存儲保護,一個選擇可能是在開發和測試階段早期中斷保護,程序員然后促進模塊和代碼質量的提高,測試移動到開啟了存儲保護的區域,捕捉余下的錯誤,理想情況下,存儲保護應該被關閉,假設所有重復占位段在開發期間全部被消除,但是,生產環境將產生程序員從來都沒想過的錯誤,大多數系統程序員希望給生產區域提供一些保護措施。

還需要注意的是,大型機存儲保護不會捕捉到所有重復占位段,一個運行在用戶鎖中的事務可能會覆蓋其它事務的用戶鎖存儲,此外,程序可能覆蓋它自己或其它應用程序的代碼。

為了修復這個缺點,CICS引入了兩個額外的大型機存儲保護功能:

重新載入程序,進入類似于z/OS鏈路包區域的只讀存儲,需要注意的是,這并沒有聽起來那么簡單,某些程序可能會引起問題,因為它們修改了自己或靜態存儲區域,根據程序行為的不同,重載程序進行保護模式可能比實施存儲保護更困難。

事務隔離將分配給任務的存儲分解為子空間,模仿z/OS地址空間,確保每個任務有它自己的子空間,并保證它們不能寫其它任務的子空間,但是,事務隔離會引起大量的CPU開銷,CICS必須管理子空間開關,這又會引起額外的內存開銷,因為子空間有存儲邊界,需要分段。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 湘乡市| 光泽县| 孝感市| 康马县| 茶陵县| 玉环县| 东平县| 左云县| 保定市| 自贡市| 惠东县| 郸城县| 阳泉市| 太康县| 积石山| 霞浦县| 九龙县| 乌兰察布市| 绿春县| 西乌珠穆沁旗| 石景山区| 普洱| 行唐县| 新巴尔虎左旗| 随州市| 平罗县| 白银市| 姚安县| 罗江县| 怀宁县| 运城市| 大安市| 石景山区| 思茅市| 固始县| 疏勒县| 古交市| 商丘市| 株洲市| 张家界市| 精河县|