首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

主機 DB2 存儲過程規劃與實施經驗:WLM 環境分類、DSNTIPX 配置、PTF/APAR 前置檢查

     編輯:DB2 教學

背景:DB2 for z/OS 存儲過程演進

  • DB2 9 起,所有存儲過程由 WLM (Workload Manager) 統一管理,通過應用環境 (Application Environment, AE) 隔離資源、控制並發。
  • 調用存儲過程時,WLM 根據 AE 啟動對應啟動 JCL (JOB/STC),管理執行環境。
  • 分類:系統內建存儲過程 (DB2 產品功能) + 用戶開發存儲過程 (業務邏輯)。

系統內建存儲過程:分類規劃與 AE 配置

依功能、開發語言、性能要求、安全域,劃分不同 AE:

安裝面板 DSNTIPX:存儲過程核心參數配置

DSNTIPX  INSTALL DB2 - ROUTINE PARAMETERS
===>
1  WLM PROC NAME    ===> DSN1WLM      WLM-established stored procedure JCL PROC
2  NUMBER OF TCBS   ===> 8            Number of concurrent TCBs (1-100)
3  MAX ABEND COUNT  ===> 0            Allowable ABENDs for a procedure (0-255)
4  TIMEOUT VALUE    ===> 180          Seconds to wait before SQL CALL fails (5-1800,NOLIMIT)
5  WLM ENVIRONMENT  ===> DEFAULT      Default WLM env name
6  MAX OPEN CURSORS ===> 500          Maximum open cursors per thread
7  MAX STORED PROCS ===> 2000         Maximum active stored procs per thread

關鍵參數調優指南

  • NUMBER OF TCBS:每個 AE 地址空間最大並發 TCB 數。高並發 AE 可調大 (如 50-100),受限於 MAX USERS 系統參數。
  • TIMEOUT VALUE:防止調用端無限等待。核心交易建議 30-60 秒;批量/分析類可設 NOLIMIT。
  • MAX OPEN CURSORS:防止游標洩漏耗盡資源。Java SP 需更大 (1000+)。
  • MAX STORED PROCS:單線程最大活躍 SP 數,防止遞歸/鏈式調用失控。

前置檢查:PTF/APAR 必裝清單

DB2 9 存儲過程功能增強多通過 PTF/APAR 交付,升級/新建環境必須確認:

  • PKxxxxxx:WLM 環境管理增強。
  • UKxxxxxx:Java SP JVM 穩定性修復。
  • PIxxxxxx:原生 SQL PL 編譯器優化。
  • 具體 PTF 編號請參考 IBM DB2 for z/OS Program Directory 及 Preventive Service Planning (PSP) Bucket。

用戶開發存儲過程:規劃原則

  1. 功能歸屬:核心交易 → 高性能 AE;報表/分析 → 通用 AE;實驗性 → DEBUG AE。
  2. 語言選擇:Native SQL PL (最佳性能、無 JVM 開銷) > Java (複雜邏輯、庫復用) > REXX (維護舊代碼)。
  3. 資源配額:在 AE 定義中設定 STORAGESIZE、CPULIMIT、IOLIMIT,防止單一失控 SP 拖垮整個 AE。
  4. 版本管理:採用 VERSION 機制,部署新版本不影響舊版本調用,支援平滑回滾。
  5. 監控指標:CALLS、ABENDS、CPU TIME、ELAPSED TIME、WAIT TIME (WLM 報告)、THREAD COUNT。

WLM 服務類別與目標設定

  • 為每個 AE 定義獨立服務類別,關聯性能目標 (Response Time / Velocity / Discretionary)。
  • 核心交易 AE → Velocity 目標 (高優先級、低延遲)。
  • 批量/工具 AE → Discretionary 目標 (低優先級、填充閒置資源)。
  • 配置分類規則:按 PROCNAME (啟動 JCL 名) 將工作分派至對應服務類別。

實施檢查清單

  1. [ ] 確認 PTF/APAR 已套用。
  2. [ ] 規劃 AE 分類矩陣 (名稱、用途、TCB 數、超時、存儲)。
  3. [ ] 編寫/收集各 AE 啟動 JCL (參考 DSN1WLM 模板)。
  4. [ ] 定義 WLM 服務類別、性能目標、分類規則。
  5. [ ] 在 DSNTIPX 面板錄入參數,生成安裝作業。
  6. [ ] 執行安裝/遷移作業,驗證 WLM 環境啟動正常 (D WLM,APPLENV=*)。
  7. [ ] 部署測試存儲過程至各 AE,驗證調用路徑、權限、資源隔離。
  8. [ ] 建立監控儀表板 (WLM + DB2 統計),設定告警閾值。

結語

主機 DB2 存儲過程的核心在於 WLM 環境分類隔離。通過科學劃分 AE、精細調優 DSNTIPX 參數、前置 PTF/APAR 檢查、建立服務類別與性能目標,可實現「核心交易極致低延遲、批量工具填充閒置資源、Java/REXX 隔離不互擾、故障域清晰可控」的理想運行狀態。將此規劃沉澱為標準化部署手冊、變更管理清單、容量規劃模型,是主機 DB2 團隊的核心資產。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
AE 名稱 (慣例)用途關鍵特徵典型存儲過程
DSNWLM_GENERAL通用、低優先級、非關鍵共享 TCB 池、標準優先級工具類、報表類
DSNWLM_PERF高性能、低延遲、關鍵業務專用 TCB、高優先級、大存儲核心交易、實時決策
DSNWLM_JAVAJava 存儲過程 (JDBC/SQLJ)JVM 參數調優、Heap 大小、GC 策略Java SP、外部 JAR
DSNWLM_REXXREXX 存儲過程REXX 解釋器環境老舊遷移、腳本封裝
DSNWLM_DEBUG調試環境啟用 Debug Tool、大存儲、長超時開發/測試專用
DSNWLM_UTIL系統工具類 (REORG, RUNSTATS, BACKUP...)長時間運行、高資源消耗ADMIN_* 系列、DSNACCOX 等