使用JDBC连接不同版本DB2的兼容性问题
2007-11-02 21:41:35 来源:WEB开发网B:这一步我们将测试 DB2 UDB 两个版本中随产品发布的 Type 2 JDBC 驱动程序连接与其本身不同版本的 DB2 UDB 系统时的兼容性。
在进行这步测试时,由于 Type 2 JDBC 驱动程序是针对本地数据库开发的,因此我们需要先将远程数据库编目(catalog)到本地,再尝试连接。下面先给出了采用 DB2 命令行工具编目远程数据库的例子。
远程数据库的相关信息示例如下:
目标数据库所在机器名:TESTSERVER
目标数据库所在机器 IP 地址:10.1.1.15
目标数据库所属实例名:TESTINSTANCE
目标数据库名:SAMPLEDB
目标数据库所在机器操作系统类型:WINDOWS
启动 DB2 命令行工具
在命令行提示符下键入命令:
CATALOG TCPIP NODE TESTSERVERREMOTE 10.1.1.15 SERVER 50000REMOTE_INSTANCE TESTINSTANCEOSTYPE WINDOWS
此命令将 TESTSERVER 这台机器以及其中指定的数据库实例编目到本地
在命令行提示符下键入命令:
CATALOG DATABASE SAMPLEDBAT NODE TESTSERVER
此命令将样本数据库 SAMPLEDB 编目到本地
在命令行提示符下键入命令:
COMMIT 此命令将上面基本的修改提交给 DB2 系统使之生效。
在命令行提示符下键入命令:LIST DB DIRECTORY
通过这个命令你可以查看所有本地的数据库以及编目到本地的远程数据库的信息,以验证编目是否成功。
编目远程数据库之后,我们就可以将其看作是本地数据库对其进行各种操作。(如果想进一步了解这些命令的更多内容,可以参考 DB2 联机帮助)
这部分的测试结果比较有趣,在实验结果中会详细描述。
C:完成了上一步之后,我们已经有了不少收获。在这一步中,我们测试了 DB2 UDB 两个版本中随产品发布的 Type 3 JDBC 驱动程序连接与其本身不同版本的 DB2 UDB 系统时的兼容性。
在这步当中,我们直接采用 COM.ibm.db2.jdbc.net.DB2Driver 这种网络 JDBC 驱动程序来尝试连接远程数据库,均以失败告终。这无论是编写代码测试,还是 DB2 命令行工具,或者是 DB2 命令中心,都是令人沮丧的结果,因而这种方式不推荐大家使用。
D:最后这步也许是大家所最关心的,就是 DB2 UDB V8.1 新增支持的 Type 4 JDBC 驱动程序连接 DB2 UDB V7.2 时的兼容性(同时也支持Type 2 体系结构访问)。
这里我们将 DB2 UDB V7.2 作为远程数据库,采用 Type 4 JDBC 驱动程序直接进行连接,同样以失败告终。我们转而先将其编目到本地,采用该驱动程序的 Type 2 方式进行访问,其现象与用随 DB2 UDB V8.1 产品发布的 COM.ibm.db2.jdbc.app.DB2Driver 进行测试的结果类似。
这似乎让我们对这种新增支持的 JDBC 驱动程序失去了信心,不过不要着急。下文中会给出一种解决方法,能够使得这种驱动程序顺利的实现对 DB2 UDB V7.2 数据库的连接和各种操作。
附件中给出了测试代码的框架,请有兴趣的读者自行更改各种 JDBC 驱动程序的包名和 URL 模式以完成各种实验组合。
实验结果:
A:对于这一类实验,我们对实验结果还是很有信心的,最后的实验结果也验证了我们事先的预想。
对于DB2 UDB V7.2
DB2 UDB V7.2本地数据库 | DB2 UDB V7.2远程数据库 | |
COM.ibm.db2.jdbc.app.DB2Driver | 成功 | 成功 |
COM.ibm.db2.jdbc.net.DB2Driver | 成功 | 成功 |
对于DB2 UDB V8.1
DB2 UDB V8.1 本地数据库 | DB2 UDB V8.1 远程数据库 | |
COM.ibm.db2.jdbc.app.DB2Driver | 成功 | 成功 |
COM.ibm.db2.jdbc.app.DB2Driver | 成功 | 成功 |
com.ibm.db2.jcc.DB2Driver(Type 2) | 成功 | 成功 |
com.ibm.db2.jcc.DB2Driver(Type 4) | 成功 | 成功 |
这步测试中,编写代码,DB2 命令行工具,DB2 命令中心测试结果一致。看来随产品发布的 JDBC 驱动程序对本产品的支持相当不错。
B:这类实验的结果差别还是比较大的,也比较有趣。
DB2 UDB V7.2 远程数据库 (编目成本地数据库) | DB2 UDB V8.1 远程数据库 (编目成本地数据库) | |
COM.ibm.db2.jdbc.app.DB2Driver(随 DB2 UDB V7.2 产品发布) | 无意义 | 成功 |
COM.ibm.db2.jdbc.app.DB2Driver(随 DB2 UDB V8.1 产品发布) | 连接成功,其它操作失败(CLP 除外) | 无意义 |
更多精彩
赞助商链接