首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

DB2及JDBC安装部署若干有关问题

2012-07-04 
DB2及JDBC安装部署若干问题原文:http://tech.e800.com.cn/articles/2009/730/1248921490555_1.html?在DB2

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驱动。

热点排行