在 DB2 Universal Database 中,代理是伺服器端處理應用程式請求的核心進程或執行緒。當外部應用程式連線至 DB2 實例並發起存取請求時,代理會被啟動以回應這些請求。這些代理通常被稱為「工作代理」,主要分為三種類型:
DB2 實例啟動時會建立一個代理池,初始代理數量由 NUM_INITAGENTS 參數決定。這些代理初始為閒置狀態。當有外部程式連線資料庫時,閒置代理轉為作用中協調代理,並將請求細分分派給子代理。若現有代理均忙碌,資料庫管理器會動態建立新代理。事務完成且連線斷開後,協調代理視 NUM_POOLAGENTS 設定決定是返回代理池變回閒置代理,還是自動銷毀。
透過 DB2 GET DBM CFG 可檢視以下核心參數:
| 參數名稱 | 功能說明 | 備註 |
|---|---|---|
| MAXAGENTS | 實例中所有代理總數上限(含協調、閒置、子代理) | DB2 V9.5 已廢棄 |
| NUM_POOLAGENTS | 控制代理池中閒置代理最大數量 | 連接集中器啟動時可暫時超過此值應對突發連線 |
| NUM_INITAGENTS | 實例啟動時預建立的閒置代理數 | 提升首次連線回應效能 |
| MAX_COORDAGENTS | 同一時刻最大協調代理數(MPP 環境指單節點) | 直接限制並發活動連線數 |
| MAX_CONNECTIONS | 允許連線至實例的最大連線數(MPP 環境指單節點) | 大於 MAX_COORDAGENTS 時啟用連接集中器 |
| MAXCAGENTS | 實例中令牌數量,協調代理需獲取令牌才能服務 | DB2 V9.5 已廢棄 |
此外,資料庫層級參數 MAXAPPLS(透過 DB2 GET DB CFG FOR database_name 取得)控制單一資料庫最大並發連線數,所有資料庫的 MAXAPPLS 總和不得超過實例級 MAX_CONNECTIONS。
自 DB2 V8 起引入連接集中器功能。預設情況下 MAX_CONNECTIONS 與 MAX_COORDAGENTS 數值相等,即每個連線獨佔一個協調代理,造成伺服器資源壓力。當設定 MAX_CONNECTIONS > MAX_COORDAGENTS 時,連接集中器即被啟用,允許多個連線共享一個協調代理。
MAX_CONNECTIONS > MAX_COORDAGENTS 啟用功能。透過合理配置連接集中器,企業可在有限硬體資源下支援更高併發連線,是大型 DB2 部署環境中不可或缺的優化手段。