Hpunix下jdbc连接数据库问题解决过程

以前都是用javawindows下处理,最近需要在Hpunix进行处理,但是将程序发布到Hpunix后,连接数据库一直提示“No suitable driver”,估计为驱动问题,临时编写数据连接小测试程序,发现提示为:

  1. ava.sql.SQLException: java.lang.UnsatisfiedLinkError: /opt/IBM/db2/V8.1/lib64/libdb2jdbc.sl: specified file is not a shared library, or a format error was detected.
  2.         at COM.ibm.db2.jdbc.app.DB2Driver.<init>(DB2Driver.java:355)
  3.         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  4.         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
  5.         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
  6.         at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
  7.         at java.lang.Class.newInstance0(Class.java:308)
  8.         at java.lang.Class.newInstance(Class.java:261)
  9.         at DBTest.db3(DBTest.java:106)
  10.         at DBTest.main(DBTest.java:342)

 

查看用户.profile文件,echo $PATHecho $CLASSPATH,均正常,db2profile已经加入.profile文件;判断为驱动可以找到,但该驱动(COM.ibm.db2.jdbc.app.DB2Driver)为Type 2,这类驱动程序部分用 JAVA 编程语言编写,部分用本机代码编写。这些驱动程序使用特定于所连接数据源的本机客户端库,所以在执行过程中由于本机代码的原因造成无法正确运行。

 

首先在网上对此进行了搜索,发现此问题,但无人回答。扩大搜索范围,大部分碰到的为未正确的共享链接库文件,但我这里此文件存在。

 

然后查看日志文件,/var/adm/syslog/syslog.log<instance_home>/sqllib/db2dump/db2diag.log,均未发现错误;

 

此时只能怀疑DB2java环境设置存在问题,因为前段时间我们的DB2版本刚进行过升级。从DB2信息中心中查看DB2java环境设置,只发现/usr/lib/pa20_64下的链接文件少了两个:libmawt.sllibjcpm.sl,稳妥期间使用ln –s添加,测试问题仍然存在!

 

这个时候郁闷了,先在CSDN上来个高分求教:),无人回答?哈,看来大家都不屑回答此问题啊

 

因时间要求较紧,为了绕开使用本地共享链接库问题,决定更换驱动类型,Type 3COM.ibm.db2.jdbc.net.DB2Driver,测试:

COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] CLI0616E  打开套接字时出错。SQLSTATE=08S01,应该为服务未启动,执行db2jstrt 6789,再次测试,数据库连接成功,但中文乱码,好办,执行时指定参数java -Dfile.encoding=GBK DBTestOK,中文显示正常,Good

 

突然想到Type 2是不是也是参数指定问题,执行java –help,查看参数,发现32位与64位的参数:

    -d32          use a 32-bit data model if available

    -d64          use a 64-bit data model if available

因为提示的是找不到lib64下的libdb2jdbc.sl,执行添加参数“-d32”,仍然失败,错误同前,死马当活马医啦,指定参数“-d64”,执行成功!!!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值