为啥 DB2 Type 4 JDBC Driver 正在寻找本机库 db2jcct2?
Posted
技术标签:
【中文标题】为啥 DB2 Type 4 JDBC Driver 正在寻找本机库 db2jcct2?【英文标题】:Why is DB2 Type 4 JDBC Driver looking for native library db2jcct2?为什么 DB2 Type 4 JDBC Driver 正在寻找本机库 db2jcct2? 【发布时间】:2012-01-09 15:32:53 【问题描述】:我认为 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();
【问题讨论】:
【参考方案1】:我怀疑问题在于您没有告诉它使用类型 4 驱动程序 - 我相信同一个 jar 文件包含类型 4 和类型 2 驱动程序。
试试:
main_db2_data_source.setDriverType(4);
【讨论】:
【参考方案2】:db2 驱动程序需要另一个包含许可证的 jar。
此许可证控制连接类型。如果您打算使用“db2 connect”作为 i 系列连接到大型机,您应该使用相应的许可证。如果您要连接到 Linux UNIX 或 Windows 服务器,则在获得“Data server client for JDBC”时会包含许可证
【讨论】:
谢谢,这不是问题,因为我没有连接到大型机,但在将来的某个时间点我需要连接,届时您的建议会很有用。跨度> 【参考方案3】:也试试这个:
Goto Configure Build Path --> Libraries
--> JRE System Libraries
--> Native Library Location : Set this to %DB2HOME%/BIN
(which is where db2jcct2.dll is saved)
【讨论】:
【参考方案4】:最近,当我从 Glassfish 服务器连接到 DB2 时,我遇到了这个问题。为此,我按照以下步骤解决了这个问题。 请检查以下步骤
step1) 我检查了 Domain.xml 文件中的 DB2 详细信息。我只看到了 用户名、密码、数据库名、服务器名、端口号,但我没有看到 DriverType。 表示驱动程序类型为 2 或 4。
2)为了添加我已经登录到 Glassfish 服务器管理控制台的驱动程序类型
资源-->JDBC-->连接池-->我们的池名--.添加额外的属性
这里我添加了驱动类型为 4。
所以我的问题已经解决了
谢谢, 拉迈亚·皮拉拉。
【讨论】:
以上是关于为啥 DB2 Type 4 JDBC Driver 正在寻找本机库 db2jcct2?的主要内容,如果未能解决你的问题,请参考以下文章
是否有适用于 DB2 v6 的 JDBC Type 4 驱动程序?
DB2 JDBC 驱动程序(类型 4)在 Execute() 上挂起
websphere容器启动jdbc连接异常,db2报Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=MARKET.ALL_SEQUENCES, DRIVER