DB2提供的两种DB连接方式type1和type2:
在type1连接中connect将断开已连接好的数据库,一个事务只能连接一个库
在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 ;