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

DB2 連線模式深度解析:TYPE 1 vs TYPE 2(分散式工作單元)

     編輯:DB2 教學

核心差異一覽

特性TYPE 1(遠端單元)TYPE 2(分散式單元)
CONNECT 行為斷開現有連線,建立新連線保留現有連線,新增新連線
單一交易可連線數1 個資料庫多個資料庫(分散式交易)
交易類型Remote Unit of Work (RUOW)Distributed Unit of Work (DUOW)
同步點選項無ONEPHASE(預設) / TWOPHASE / NONE
共同限制不允許同一應用程式對同一 DB 重複連線

CLP 實測:TYPE 2 多資料庫連線

$ db2set CLIENT CONNECT 2          # 切換至 TYPE 2
DB20000I SET CLIENT 命令成功完成。

$ db2 connect to otherdb           # 連線第 1 個 DB
$ db2 connect to sample            # 連線第 2 個 DB(保留 otherdb)

$ db2 list applications
# 可見同一 Application Handle (22) 同時持有 SAMPLE 與 OTHERDB 兩條連線

關鍵操作:切換當前連線

TYPE 2 模式下,SQL 語句預設對最近建立的連線生效。若需操作先前連線,必須明確切換:

SET CONNECTION otherdb;   -- 切換至 otherdb
SET CONNECTION sample;    -- 切換回 sample

同步點模式選擇指南

  • ONEPHASE(預設):單階段提交,效能最好,適合非關鍵資料或可重試業務。
  • TWOPHASE:兩階段提交(XA),保證跨資料庫 ACID,效能較低,適合金融、核心交易。
  • NONE:無同步點,應用程式自行管理,極少使用。

實務建議

  1. 微服務架構下,單一服務若需跨多 DB 寫入 → 必須啟用 TYPE 2 + TWOPHASE。
  2. 舊系統遷移若僅單 DB 存取 → 維持 TYPE 1 簡化邏輯。
  3. CLP 測試時記得 db2set CLIENT CONNECT 2 後重啟 CLP 視窗 生效。
  4. 關閉自動提交(db2 +c)才能完整驗證分散式交易行為。

小結

TYPE 2 連線模式是 DB2 支援分散式交易的基石。理解 CONNECT 行為差異、掌握 SET CONNECTION 切換技巧、正確選擇同步點模式,能讓跨資料庫應用開發事半功倍。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved