为什么DB2 Type 4 JDBC Driver正在寻找本机库db2jcct2?

时间:2011-11-30 11:32:36

标签: java jdbc db2

我认为Type 4 JDBC驱动程序是纯Java,不需要本机库。

当我将db2jcc4.jar放入打包为.war文件的Tomcat应用程序的WEB-INF / lib目录中时,在尝试使用该应用程序时出现以下错误:Got SQLException: com.ibm.db2.jcc.am.SqlException: [jcc][10389][12245][4.12.55] Failure in loading native library db2jcct2, java.lang.UnsatisfiedLinkError

相关的应用程序代码如下,由于列表中的最后一行引发了异常:

        import com.ibm.db2.jcc.DB2SimpleDataSource;

        // ...

        DB2SimpleDataSource main_db2_data_source = new DB2SimpleDataSource();
        main_db2_data_source.setUser(main_database_user);
        main_db2_data_source.setPassword(main_database_password);
        main_db2_data_source.setServerName(main_database_host);
        try {
          Integer main_database_port_integer = Integer.parseInt(main_database_port);
          main_db2_data_source.setPortNumber(main_database_port_integer);
        } catch (NumberFormatException exception) {
          throw new WebException("...");
        }
        Connection main_connection = null;
        try {
          main_connection = main_db2_data_source.getConnection();

4 个答案:

答案 0 :(得分:16)

我怀疑问题是你没有告诉它使用类型4驱动程序 - 我相信同一个jar文件包含类型4和类型2驱动程序。

尝试:

main_db2_data_source.setDriverType(4);

答案 1 :(得分:2)

db2驱动程序需要另一个包含许可证的jar。

此许可证控制连接类型。如果您打算使用" db2 connect"要作为i系列连接到大型机,您应该使用相应的许可证。如果要连接到Linux UNIX或Windows服务器,则在获得" Data server client for JDBC"

时会包含许可证。

答案 2 :(得分:1)

也试试这个:

Goto Configure Build Path --> Libraries 
                             --> JRE System Libraries 
                                --> Native Library Location : Set this to %DB2HOME%/BIN 
                             (which is where db2jcct2.dll is saved)

答案 3 :(得分:0)

最近,当我从Glassfish服务器连接到DB2时,我遇到了这个问题。为此我已按照以下步骤解决了这个问题。 请检查以下步骤

step1)我已检查过Domain.xml文件中的DB2详细信息。我只看到过 username,pwd,databaseName,serverName,portnumber,但我还没看到DriverType。 手段类型为2或4。

2)添加已登录Glassfish服务器管理控制台的驱动程序类型

资源 - > JDBC - >连接池 - >我们的poolname - 。添加额外属性

这里我添加了drivertype是4。

因此我的问题已经解决了

谢谢, Ramaiah Pillala。