`
ylz4647
  • 浏览: 49918 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

DB2及JDBC安装部署若干问题

阅读更多

原文:http://tech.e800.com.cn/articles/2009/730/1248921490555_1.html

 

在DB2的安装和JDBC开发中,会遇到一些常见的问题做个记录以备忘:

1. license

DB2的正版与否取决于license,然而在安装过程中不会有提示。license安装:

db2licm -a [path]/db2ese.lic

如果license不正确,最大的影响是:数据库无法向除本机以外的其他服务器提供服务。这是个致命的问题...谁装DB2是为了自己玩玩呢...当然你也可以自己玩玩,那就必须注意下面一个问题:

2.app与net

JDBC type2与type3是相似的连接方法。一个是本地应用,一个是远程应用。

type2的主要代码:
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver";).newInstance();
Connection c = DriverManager.getConnection("jdbc:db2://[localDBName]", "[user]", "[password]");

Type 2 的 JDBC 驱动程序,它通过 DB2 本地客户机库的帮助建立和 DB2本地数据库或是远程数据库的连接(事先将远程数据库编目到本地)。因此,我们必须在应用系统所在的机器上同时部署 DB2 本地客户机库,这也许是它最大的一个不足之处。
type3的主要代码:
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver";).newInstance();
Connection c = DriverManager.getConnection("jdbc:db2://[serverIP]:[port默认6789]/[DBName]", "[user]", "[password]");

注意,这里的端口号,是远程客户端给我们的端口号,并不是数据库的端口号50000.

Type 3 的 JDBC 驱动程序,它通过与一台已经部署了 DB2 本地客户机库的机器通信来建立和 DB2 远程数据库的连接。

注意,如果没有license,可能会造成远程连接不可用哦。

3.CODEPAGE错误

如果远程连接系统与本地有编码差异,则可能出现代码页问题,提示信息例如:

SQL0332N  There is no available conversion for
the source code page "1386" to the target code
page "819".  Reason Code "1".  SQLSTATE=57017

建库的时候CODESET 指定为GBK
那么该库的CODEPAGE 为1386

而AIX系统下DB2默认的CODEPAGE为819
由于连接的客户端与数据库的CODEPAGE要一致
因此可以首先通过 db2 get db cfg for dbname 得到对应数据库的CODEPAGE
然后通过db2set设置DB2CODEPAGE
重启数据库后生效

例:

db2set db2codepage=819

db2 terminate

附:CODEPAGE代码页列表

Conversion between any of the following codepages is provided.

   37  (=x0025)  EBCDIC US Einglsh
   273 (=x0111)  EBCDIC German
   277 (=x0115)  EBCDIC Danish/Norwegian
   278 (=x0116)  EBCDIC Finnish/Swedish
   280 (=x0118)  EBCDIC Italian
   284 (=x011C)  EBCDIC Spanish
   285 (=x011D)  EBCDIC UK English
   297 (=x0129)  EBCDIC French
   300 (=x012C)  EBCDIC Japanese DBCS
   301 (=x012D)  Japanese PC DBCS
   420 (=x01A4)  EBCDIC Arabic
   424 (=x01A8)  EBCDIC Arabic
   437 (=x01B5)  PC-ASCII US
   500 (=x01F4)  EBCDIC International
   803 (=x0323)  Hebrew Set A
   813 (=x032D)  ISO8859-7 Greek
   819 (=x0333)  ISO8859-1 Western European
   833 (=x0341)  IBM-833: Korean
   834 (=x0342)  IBM-834: Korean Host DBCS
   835 (=x0343)  EBCDIC Traditional Chinese DBCS
   836 (=x0344)  EBCDIC Simplified Chinese SBCS
   838 (=x0346)  EBCDIC Thai SBCS
   850 (=x0352)  ISO8859-1 Western European
   852 (=x0354)  PC-ASCII Eastern European
   855 (=x0357)  PC-ASCII Cyrillic
   856 (=x0358)  PC-ASCII Hebrew
   857 (=x0359)  PC-ASCII Turkish
   858 (=x035A)  PC-ASCII Western European with Euro
   860 (=x035C)  PC-ASCII Portuguese
   861 (=x035D)  PC-ASCII Icelandic
   862 (=x035E)  PC-ASCII Hebrew
   863 (=x035F)  PC-ASCII Canadian French
   864 (=x0360)  PC-ASCII Arabic
   865 (=x0361)  PC-ASCII Scandinavian
   866 (=x0362)  PC-ASCII Cyrillic #2
   868 (=x0364)  PC-ASCII Urdu
   869 (=x0365)  PC-ASCII Greek
   870 (=x0366)  EBCDIC Eastern Europe
   871 (=x0367)  EBCDIC Icelandic
   872 (=x0368)  PC-ASCII Cyrillic with Euro
   874 (=x036A)  PC-ASCII Thai SBCS
   875 (=x036B)  EBCDIC Greek
   880 (=x0370)  EBCDIC Cyrillic
   891 (=x037B)  IBM-891: Korean
   897 (=x0381)  PC-ASCII Japan Data SBCS
   903 (=x0387)  PC Simplified Chinese SBCS
   904 (=x0388)  PC Traditional Chinese Data - SBCS
   912 (=x0390)  ISO8859-2 Eastern European
   915 (=x0393)  ISO8859-5 Cyrillic
   916 (=x0394)  ISO8859-8 Hebrew
   918 (=x0396)  EBCDIC Urdu
   920 (=x0398)  ISO8859-9 Turkish
   921 (=x0399)  ISO Baltic
   922 (=x039A)  ISO Estonian
   923 (=x039B)  ISO8859-15 Western Europe with euro (Latin 9)
   924 (=x039C)  EBCDIC Western Europe with euro
   927 (=x039F)  PC Traditional Chinese DBCS
   928 (=x03A0)  PC Simplified Chinese DBCS
   930 (=x03A2)  EBCDIC Japanese Katakana/Kanji mixed
   932 (=x03A4)  Japanese OS/2
   933 (=x03A5)  EBCDIC Korean Mixed
   935 (=x03A7)  EBCDIC Simplified Chinese Mixed
   937 (=x03A9)  EBCDIC Traditional Chinese Mixed
   939 (=x03AB)  EBCDIC Japanese Latin/Kanji mixed
   941 (=x03AD)  Japanese PC DBCS - for open systems
   942 (=x03AE)  Japanese PC Data Mixed - extended SBCS
   943 (=x03AF)  Japanese PC Mixed - for open systems
   944 (=x03BO)  Korean PC data Mixed - extended SBCS
   946 (=x03B2)  Simplified Chinese PC data Mixed - extended SBCS
   947 (=x03B3)  PC Traditional Chinese DBCS
   948 (=x03B4)  PC Traditional Chinese Mixed - extended SBCS
   949 (=x03B5)  PC Korean Mixed - KS code
   950 (=x03B6)  PC Traditional Chinese Mixed - big5
   951 (=x03B7)  PC Korean DBCS - KS code
   970 (=x03CA)  euc Korean
   1004 (=x03EC)  PC Data Latin1
   1006 (=x03EE)  ISO Urdu
   1008 (=x03F0)  ASCII Arabic 8-bit ISO
   1025 (=x0401)  EBCDIC Cyrillic
   1026 (=x0402)  EBCDIC Turkish
   1027 (=x0403)  EBCDIC Japanese Latin
   1040 (=x0410)  IBM-1040: Korean
   1041 (=x0411)  Japanese PC - extended SBCS
   1042 (=x0412)  PC Simplified Chinese - extended SBCS
   1043 (=x0413)  PC Traditional Chinese - extended SBCS
   1046 (=x0416)  PC-ASCII Arabic
   1047 (=x0417)  IBM-1047: Western European
   1051 (=x041B)  ASCII roman8 for HP Western European
   1088 (=x0440)  PC Korean SBCS - KS code
   1089 (=x0441)  ISO8859-6 Arabic
   1097 (=x0449)  EBCDIC Farsi
   1098 (=x044A)  PC-ASCII Farsi
   1112 (=x0458)  EBCDIC Baltic (Latvian/Lithuanian)
   1114 (=x045A)  PC Traditional Chinese - big 5 SBCS
   1115 (=x045B)  PC Simplified Chinese SBCS
   1122 (=x0462)  EBCDIC Estonian
   1123 (=x0463)  EBCDIC Ukrainian
   1124 (=x0464)  UNIX-ASCII Ukrainian
   1131 (=x046B)  PC-ASCII Belarus
   1140 (=x0474)  EBCDIC USA, with euro (like 037)
   1141 (=x0475)  EBCDIC Austria, Germany, with euro (like 273)
   1142 (=x0476)  EBCDIC Denmark, Norway, with euro (like 277)
   1143 (=x0477)  EBCDIC Finland, Sweden, with euro (like 278)
   1144 (=x0478)  EBCDIC Italy, with euro (like 280)
   1145 (=x0479)  EBCDIC Spain, with euro (like 284)
   1146 (=x047A)  EBCDIC UK, with euro (like 285)
   1147 (=x047B)  EBCDIC France, with euro (like 297)
   1148 (=x047C)  EBCDIC International, with euro (like 500)
   1149 (=x047D)  EBCDIC Iceland, with euro (like 871)
   1200 (=x04B0)  Unicode - UCS-2
   1208 (=x04B8)  Unicode - UTF-8
   1250 (=x04E2)  Windows - Eastern European
   1251 (=x04E3)  Windows - Cyrillic
   1252 (=x04E4)  Windows - Western European
   1253 (=x04E5)  Windows - Greek
   1254 (=x04E6)  Windows - Turkish
   1255 (=x04E7)  Windows - Hebrew
   1256 (=x04E8)  Windows - Arabic
   1257 (=x04E9)  Windows - Baltic Rim
   1275 (=x04FB)  Apple - Western European
   1280 (=x0500)  Apple - Greek
   1281 (=x0501)  Apple - Turkish
   1282 (=x0502)  Apple - Eastern European
   1283 (=x0503)  Apple - Cyrillic
   1284 (=x0504)  IBM-504: Eastern European
   1285 (=x0505)  IBM-505: Eastern European
   1363 (=x0553)  Windows Korean PC Mixed including 11,172 full hangul
   1364 (=x0554)  Korean Host Mixed extended including 11,172 full hangul
   1380 (=x0564)  PC Simplified Chinese DBCS
   1381 (=x0565)  PC Simplified Chinese Mixed
   1383 (=x0567)  euc Simplified Chinese Mixed
   1386 (=x056A)  PC Simplified Chinese Data GBK Mixed
   1388 (=x056C)  DBCS Host Simplified Chinese Data GBK Mixed
   5346 (=x14E2)  Windows-Eastern European with Euro (like 1250)
   5347 (=x14E3)  Windows - Cyrillic with Euro (like 1251)
   5348 (=x14E4)  Windows-Western European with Euro (like 1252)
   5349 (=x14E5)  Windows-Windows - Greek with Euro (like 1253)
   5350 (=x14E6)  Windows - Turkish with Euro (like 1254)
   5351 (=x14E7)  Windows - Hebrew with Euro (like 1255)
   5352 (=x14E8)  Windows - Arabic with Euro (like 1256)
   5353 (=x14E9)  Windows - Baltic Rim with Euro (like 1257)
   5354 (=x14EA)  'Windows - Vietnamese with Euro (like 1258)

4.还是编码问题,代码编码

    在java代码编译时,也要考虑编译编码与数据库编码是否相配的问题。一般如果代码中不存在汉字的硬编码的话,不会有问题。但如果有硬编码,则需要考虑写 入数据库的信息是否能被正常识别而不会造成乱码。解决方法与上面类似db2 get db cfg for dbname 查看数据库的编码类型。使得java编译编码同其一致。

5.系统用户权限

    安装好DB2之后,默认有两个用户可以有DB2的管理权限:administrator 和db2admin。如果用其他的用户登录windows,不做设置是无法对DB2进行配置管理的。也可以通过将db2admin组用户权限赋予其他系统 用户的方式来通过其他用户管理DB2。

 6.JDBC驱动

    如果是自己安装DB2.在DB2的安装目录下会有db2java.zip、db2jcc.jar、Common.jar、sqlj.zip、 db2fs.jar。这些是IBM送给广大java发烧友最好的东东,千万记得用。不要到别的地方去找,这里的才是最吻合的lib。其中 db2java.zip就是JDBCtype2和type3用的包。可以将他改名为db2java.jar加到我们的工程中去。db2jcc.jar中提 供JDBC Type4支持。Type4驱动程序是仅纯 Java 的 JDBC 驱动程序,它直接连接到数据库服务器。其实现包名为com.ibm.db2.jcc.DB2Driver。

    如果开发者不是DB2安装者,应该搞清楚DB2版本后取得相应的JDBC驱动。

分享到:
评论

相关推荐

    DB2的JDBC驱动包

    DB2的JDBC驱动包是连接IBM DB2数据库的关键组件,它允许Java应用程序通过Java Database Connectivity (JDBC) API与DB2数据库进行交互。在Java编程中,JDBC驱动是桥梁,将Java代码与数据库系统连接起来,实现数据的...

    DB2 11.5版本 jdbc db2jcc db2jcc4驱动

    5. **db2dbgm.jar**:可能涉及到DB2的调试工具或功能,帮助开发者诊断和解决数据库问题。 6. **db2ext.jar**:扩展库,可能包含了额外的功能或对特定数据库特性的支持。 7. **db2qgjdbc.jar**:与db2qgjava.jar...

    DB2的JDBC驱动

    DB2的JDBC驱动是IBM公司为连接到DB2数据库而设计的一种Java数据库连接(JDBC)驱动程序。它是Java应用程序与DB2数据库之间通信的关键组件,使得开发人员能够使用Java语言来执行SQL语句、处理结果集以及管理数据库...

    DB2 JDBC jar包驱动

    DB2 JDBC jar包驱动是Java应用程序与IBM DB2数据库之间通信的重要组件。JDBC(Java Database Connectivity)是Java平台的标准接口,它允许Java程序通过Java API来访问各种类型的数据库,包括DB2。在这个场景中,"DB2...

    DB2_JDBC驱动.rar

    DB2 JDBC驱动是Java应用程序与IBM DB2数据库交互的关键组件,它实现了Java Database Connectivity (JDBC) API,允许Java开发者在应用程序中执行SQL语句、管理数据库事务以及处理结果集。在本压缩包中,包含了以下三...

    IBM DB2 jdbc 驱动 for v10.5(官方版)

    总结起来,IBM DB2 JDBC驱动v10.5是Java开发者与DB2数据库交互的高效工具,它提供了全面的数据库访问功能,并且支持跨平台部署。通过合理地使用和配置,可以构建出高效、可靠的Java数据库应用程序。在实际开发中,...

    DB2JDBC JAR包

    DB2JDBC JAR包是IBM DB2数据库与Java应用程序之间通信的重要组件,它使得Java开发者能够通过Java Database Connectivity (JDBC) API来执行对DB2数据库的各种操作,包括增、删、改、查等基本功能。在Java环境中,JDBC...

    DB2 jdbc driver

    DB2 JDBC驱动程序是IBM公司提供的用于连接Java应用程序与DB2数据库的关键组件。JDBC(Java Database Connectivity)是Java编程语言中的一个标准API,它允许Java应用程序通过网络进行数据交互,而DB2 JDBC驱动则是这...

    DB2 jdbc jar包

    DB2 JDBC Jar包是IBM公司提供的Java数据库连接(JDBC)驱动程序,它允许Java应用程序与DB2数据库进行通信。这个驱动程序是一个重要的组件,因为它实现了Java编程语言和DB2数据库之间的桥梁,使得开发人员可以利用...

    DB2 v10.5.0.8 jdbc驱动 官方版

    2. **db2jcc4.jar**:此驱动适用于Java SE 7及更高版本,它实现了JDBC 4.1和4.2规范,提供了更多新特性和改进,如更好的异常处理和新的时间日期类型支持。如果你的应用环境运行在Java 7或更新的版本上,应该优先考虑...

    DB2 JDBC驱动

    DB2 JDBC驱动是IBM公司为连接其DB2数据库系统提供的一种Java数据库连接(JDBC)驱动程序。JDBC驱动程序是Java程序员与各种数据库进行交互的桥梁,它允许Java应用程序通过标准的Java API来访问数据库。在本压缩包中,...

    db2 jdbc 通过客户端连接db2

    DB2 JDBC 通过客户端连接DB2是数据库管理中常见的操作,尤其在Java开发环境中。JDBC(Java Database Connectivity)是Java编程语言与各种数据库交互的标准接口。本篇将深入探讨如何利用DB2 JDBC驱动程序建立从Java...

    db2_db2driver_for_jdbc_v11.5.tar.gz

    在"db2_db2driver_for_jdbc_v11.5.tar.gz"中,主要包含的文件可能有JDBC驱动的jar文件,如`jdbc_sqlj`,这个文件可能是DB2 JDBC驱动的核心组件,用于Java程序加载并使用DB2的JDBC驱动。使用这个驱动,开发者可以编写...

    db2数据库JDBC驱动

    DB2数据库JDBC驱动是IBM公司为Java应用程序提供与DB2数据库进行交互的接口,它遵循Java Database Connectivity(JDBC)标准。JDBC是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和...

    db2 jdbc驱动

    IBM DB2 JDBC驱动通常指的是Type 4驱动,也称为网络协议驱动,因为它完全基于Java,无需安装任何本地库,具备跨平台的特性。 在压缩包中,有两个关键文件: 1. `db2jcc.jar`:这是DB2 JDBC驱动的主要类库,包含了...

    DB2 JDBC 应用实例

    DB2 JDBC 应用实例是基于Java Database Connectivity (JDBC) API与IBM的DB2数据库进行交互的一个实际项目。这个实例提供了丰富的学习材料,帮助开发者理解如何利用JDBC技术来设计、实现和优化与DB2数据库连接的应用...

    db2驱动\Java配置db2-jdbc.doc

    本文将详细讲解如何在Java环境中安装和使用DB2 JDBC驱动,以及展示一个简单的连接和查询示例。 首先,DB2数据库提供了多种JDBC驱动程序以适应不同的连接需求: 1. **APP驱动**(COM.ibm.db2.jdbc.app.DB2Driver)...

    DB2 JDBC驱动程序及其支持的功能简介

    在Unix系统上文件名为`db2jcct2`,若使用通用JDBC驱动程序的第二类驱动程序,则安装在`lib`目录下。 - **环境配置**:使用JDBC时,需要在`CLASSPATH`环境变量中设置相应的JDBC驱动程序文件路径。 #### 四、DB2版本8...

    通过JDBC通过java连接DB2数据库

    - 在使用JDBC连接DB2之前,首先需要确保已经安装了DB2的JDBC驱动,并且在项目中正确配置了驱动的位置。这通常涉及到将DB2的JDBC驱动jar文件添加到项目的类路径中。 2. **获取数据库连接** - 使用`DriverManager....

Global site tag (gtag.js) - Google Analytics