此文章主要向大家講述的是DB2數據庫提供的2種DB連接方式type1與type2,在type1連接中connect 將斷開已連接好的DB2,其一個事務只允許連接一個庫,在type2連接中connect保留已連接好的數據庫,並連接一個新庫,這樣的事務叫分布式工作單元。
兩種方式都不允許AP同時對一個DB進行多次連接!
以下是偶在CLP下做的type2的實驗:
- QUOTE:
- $ db2 list applications
授權標識 應用程序名 應用程序 應用程序標識 DB 代理進程
句柄 名稱 序列號
- DB2ADMIN db2dasstm.exe 10 *LOCAL.DB2.00A180010035 DWCTRLDB 1
- DB2ADMIN db2dasstm.exe 9 *LOCAL.DB2.00A180010034 DWCTRLDB 1
- DB2ADMIN db2dasstm.exe 8 *LOCAL.DB2.00A180010020 DWCTRLDB 1
- $ db2 connect to otherdb
數據庫連接信息
數據庫服務器 = DB2數據庫/NT 8.1.2
SQL 授權標識 = DAVID
本地數據庫別名 = OTHERDB
- $ db2 connect to sample
數據庫連接信息
數據庫服務器 = DB2/NT 8.1.2
SQL 授權標識 = DAVID
本地數據庫別名 = SAMPLE
$ db2 list applications
授權標識 應用程序名 應用程序 應用程序標識 DB 代理進程
句柄 名稱 序列號
- DAVID db2bp.exe 22 *LOCAL.DB2.012480161735 SAMPLE 1
- DB2ADMIN db2dasstm.exe 10 *LOCAL.DB2.00A180010035 DWCTRLDB 1
- DB2ADMIN db2dasstm.exe 9 *LOCAL.DB2.00A180010034 DWCTRLDB 1
- DB2ADMIN db2dasstm.exe 8 *LOCAL.DB2.00A180010020 DWCTRLDB 1
- $ db2 set client connect 2
DB20000I SET CLIENT 命令成功完成。
- $ db2 connect to otherdb
數據庫連接信息
數據庫服務器 = DB2/NT 8.1.2
SQL 授權標識 = DAVID
本地數據庫別名 = OTHERDB
- $ db2 list applications
授權標識 應用程序名 應用程序 應用程序標識 DB 代理進程
句柄 名稱 序列號
- DAVID db2bp.exe 23 *LOCAL.DB2.012480161849 OTHERDB 1
- DAVID db2bp.exe 22 *LOCAL.DB2.012480161735 SAMPLE 1
- DB2ADMIN db2dasstm.exe 10 *LOCAL.DB2.00A180010035 DWCTRLDB 1
- DB2ADMIN db2dasstm.exe 9 *LOCAL.DB2.00A180010034 DWCTRLDB 1
- DB2ADMIN db2dasstm.exe 8 *LOCAL.DB2.00A180010020 DWCTRLDB 1
以上測試沒測試事務提交,如果測試,要把command option的自動提交關掉,就可以測試一個事務中的多個DB數據庫的連接和修改!另外type2的連接有三種方式:syncpoint onephase(默認)、syncpoint twophase、syncpoint none。
使用type2連接,可以在一個命令窗口裡打開多個連接,但是在執行操作的時候只對最後一個連接有效。如果想切換可以使用set connection ;