无法初始化HikariCP池连接,无法加载本机库db2jcct2

时间:2015-06-10 12:04:34

标签: jdbc db2 hikaricp

我正在尝试将HikariCP与DB2一起使用,但会收到以下错误:

  

加载本机库db2jcct2失败,   java.lang.UnsatisfiedLinkError:db2jcct2

我的类路径中只有db2jcc4.jar文件。 以下hikari属性文件:

dataSourceClassName=com.ibm.db2.jcc.DB2SimpleDataSource
dataSource.user=username
dataSource.password=password
dataSource.databaseName=database
dataSource.serverName=server:50000

根据我的理解Hikari tries to use type 2 driver,因此它需要本机库db2jcct2是不是正确?如果是,我怎么能隐含地说它寻找4型驱动程序?

更新: 建议的答案并不能解决我的问题。它可以给出方向但我只能通过阅读答案才能得到正确的答案。同时,您可以在对此问题的评论中找到答案。

2 个答案:

答案 0 :(得分:1)

此问题相当于Why is DB2 Type 4 JDBC Driver looking for native library db2jcct2?

如果您在代码中配置DataSource,则需要执行此操作:

// Assuming dataSource is a com.ibm.db2.jcc.DB2SimpleDataSource
dataSource.setDriverType(4);

DataSources是javabeans。 javabeans的惯例是一对setXxxx / getXxx代表属性xxxx。因此,设置器setDriverType等同于属性driverType

hikari属性通过定义属性(然后通过反射设置)来配置数据源。要完成setDriverType(4)的等效操作,您需要使用属性driverType=4。鉴于该属性文件中使用的约定导致:

datasource.driverType=4

答案 1 :(得分:0)

对于DB2 4型驱动程序,请尝试以下配置。

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
    <property name="poolName" value="springHikariCP" />
    <property name="dataSourceClassName" value="com.ibm.db2.jcc.DB2SimpleDataSource"/>

    <property name="maximumPoolSize" value="${db.maxTotal}" />
    <property name="dataSourceProperties">
        <props>
            <prop key="driverType">4</prop>
            <prop key="serverName">192.168.xxx.xxx</prop>
            <prop key="databaseName">dbname</prop>
            <prop key="portNumber">50000</prop>
            <prop key="user">db2inst1</prop>
            <prop key="password">password</prop>
        </props>
    </property>

    <property name="jdbcUrl" value="${db.url}" />
    <property name="username" value="${db.username}" />
    <property name="password" value="${db.password}" />
</bean>
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
    <constructor-arg ref="hikariConfig" />
</bean>