DB2 系統存儲過程標準化部署流程
DB2 for z/OS 提供豐富的系統存儲過程,透過客製化 DSNTIJSG 作業進行定義與安裝。本文闡述存儲過程四大功能分類、WLM 應用環境對應規劃、NUMTCB 設定原則、在線 Utility 類存儲過程的特殊配置 (串行化、臨時檔案分配),構建可重覆、可審計的部署標準。
存儲過程四大功能分類
| 類別 | 功能特性 | 代表存儲過程 | WLM AE 策略 |
| 1. 核心系統服務 | DB2 內部核心功能、目錄操作 | DSNACCOR, DSNACCOX, DSNUTILS | 獨立 AE,高優先序 |
| 2. 管理與維護 | 統計收集、重組、備份、歸檔 | DSNACCMG, DSNUTILU | 維護窗口 AE,低優先序 |
| 3. 應用支援服務 | XML、JSON、空間、文字搜尋 | DSNXML..., DSNJSON... | 業務 AE,中等優先序 |
| 4. 通用工具類 | 檔案操作、系統命令、轉換工具 | DSNUTILF, DSNLEUSR | 工具 AE,NUMTCB=1 |
分類依據與動態調整
- PTF 版本可能新增/移除存儲過程,部署前核對
DSNTIJSG 內容
NUMTCB 除依功能分類外,須考慮 z/OS 系統資源 (CPU、虛擬儲存、MAXPROCUSER)
- 建議 AE 名稱 = 啟動流程名稱,命名規範:
DB2_<類別> (如 DB2A_CORE)
- 分類粒度原則:滿足功能隔離前提下,最小化 AE 數量,降低 WLM 管理複雜度
在線 Utility 類存儲過程特殊配置
代表:DSNUTILS (同步)、DSNUTILU (非同步)
核心限制:NUMTCB=1 (強制串行)
原因:Utility 執行產生中間檔案 (SYSUT1, SORTOUT 等),並發將導致檔案覆蓋、資料損壞、不可預期 ABEND。
啟動 JCL 關鍵 DD 分配
| DDNAME | 用途 | 空間建議 |
| SYSIN | Utility 控制語句輸入 | CYL,(10,50) |
| SYSPRINT | Utility 輸出訊息 | CYL,(50,200) |
| RNPRIN01 | DFSORT 訊息 | CYL,(10,50) |
| UTPRINT | DFSORT 訊息 (備用) | CYL,(10,50) |
| DSSPRINT | Concurrent Copy 輸出 | CYL,(20,100) |
關鍵點:所有 DD 使用臨時空間 (&SYSUID..UTILITY),避免殘留佔用;DISP=(NEW,DELETE,DELETE) 確保異常結束也能釋放。
DSNTIJSG 客製化標準流程
- 複製
SDSNSAMP(DSNTIJSG) 至客製化 PDS
- 修改
WLM ENVIRONMENT 對應規劃的 AE 名稱
- 調整
NUMTCB 依分類設定
- 確認
STEPLIB 包含 APF 授權庫 (SDSNLOAD, SDSNEXIT)
- 提交作業,檢查
SYSPRINT 確認 CREATE PROCEDURE 成功
GRANT EXECUTE 至對應角色/用戶
- WLM 重新整理:
VARY WLM,APPLENV=ae_name,REFRESH
部署後驗證清單
- ☐
DISPLAY PROCEDURE(*.*) 狀態 = STOP/START 正確
- ☐
CALL SYSPROC.DSNUTILS(...) 測試執行無誤
- ☐ WLM 顯示 AE 下地址空間啟動正常
- ☐ 審計日誌記錄部署操作 (時間、操作員、變更內容)
用戶自訂存儲過程部署差異
- 同樣需規劃 AE、啟動 JCL、NUMTCB
- 額外步驟:Load Module 連結至授權庫、
CREATE PROCEDURE ... EXTERNAL NAME 'loadmod' LANGUAGE C/JAVA/COBOL
- Java SP 需配置
JVMPROPS、CLASSPATH、LE 運行時選項
將系統存儲過程部署標準化為「分類→AE→JCL→DSNTIJSG→驗證」五步驟,納入變更管理流程,配合 PTF 升級週期性重審,確保主機 DB2 存儲過程層始終處於已知、受控、高可用狀態。
- 上一篇文章: Oracle 密碼遺忘六大解密方案:從 SYSDBA 本地認證到 ORAPWD 緊急重建
- 下一篇文章: Oracle 存儲過程開發避坑指南:別名、INTO、NULL、Hibernate 調用六大高頻錯誤
Copyright ©
程式碼之家 All Rights Reserved