如何将HikariCP与WebSphere Liberty一起使用

时间:2017-05-23 15:12:18

标签: websphere websphere-liberty hikaricp

我们正在使用oracle数据库,这是我们如何在自由配置文件中针对oracle配置JNDI,我想使用hikarui-cp而不是javax.sql.ConnectionPoolDataSource。

 <library id="oracleJDBCJars" name="oracleJDBCJars">
            <fileset dir="${shared.resource.dir}/oracle-jars" includes="*.jar"/>
        </library>

        <dataSource beginTranForResultSetScrollingAPIs="true" 
                    beginTranForVendorAPIs="false" 
                    commitOrRollbackOnCleanup="rollback" 
                    connectionManagerRef="default-conn-mgr" 
                    isolationLevel="TRANSACTION_READ_COMMITTED" 
                    jndiName="jdbc/dev" 
                    transactional="true" 
                    type="javax.sql.ConnectionPoolDataSource">
            <jdbcDriver libraryRef="oracleJDBCJars"/>
            <properties.oracle currentSchema="DEV" 
                                databaseName="DBU" 
                                password="Admin12" 
                                portNumber="3714" 
                                serverName="host.local.com" 
                                user="ADMIN"/>
        </dataSource>

1 个答案:

答案 0 :(得分:3)

意见部分:
首先,我会说可能没有必要将HikariCP与Java EE应用服务器一起使用。根据我的阅读,HikariCP是一个很棒的连接池,如果您在Java SE环境中,则使用是有意义的。在EE环境中使用HikariCP可能会获得一些好处,但是当您可以使用Liberty连接池时,您需要跳过额外的环节以使其正常工作。在我看来,你的开发时间会更好地花在其他地方,因为Liberty已经有一个经过良好测试,性能良好的连接池。在已经提供好的应用服务器上使用备用连接池似乎是不必要的微优化。
免责声明:我是一名Liberty开发人员,负责连接池以及其他工作。

回答你的问题:
您的配置适用于DB2数据库,而不是Oracle数据库(即应使用properties.oracle而不是properties.db2.jcc)。此外,它还指定了许多其他必需属性。

您的配置可以简化为:

<library id="oracleJDBCJars" name="oracleJDBCJars">
  <fileset dir="${shared.resource.dir}/oracle-jars" includes="*.jar"/>
</library>

<dataSource jndiName="jdbc/dev">
  <jdbcDriver libraryRef="DB2JCC4Jars"/>
  <properties.oracle URL="jdbc:oracle:thin:@//host.local.com:3714/DBU"
                     password="Admin12"
                     user="ADMIN"/>
</dataSource>

有关在Liberty中配置数据源的详细信息,请参阅此文档:
Configuring relational database connectivity in Liberty

验证您的配置:
如果您有4月测试版或更新版,则可以使用测试连接服务来检查数据源配置是否有效。请参阅此文章,了解如何执行此操作:
Testing database connections in Liberty apps with REST APIs
如果您没有4月测试版或更新版,您可以编写一个简单的测试servlet来尝试建立连接。

尝试使用HikariCP:
您需要修改jdbc驱动程序<library>以包含HikariCP jar。

接下来,修改您的<dataSource>以指向HikariDataSource实施。您需要设置2个属性(如下所示):

<!-- Tell the <dataSource> to use `javax.sql.DataSource` (as opposed to auto-detecting ConnectionPoolDataSource or XADataSource) -->
<dataSource jndiName="jdbc/dev" type="javax.sql.DataSource">
  <!-- Tell the <jdbcDriver> what implementation class to use for `javax.sql.DataSource` -->
  <jdbcDriver libraryRef="DB2JCC4Jars" javax.sql.DataSource="com.zaxxer.hikari.HikariDataSource"/>
  <properties.oracle URL="jdbc:oracle:thin:@//host.local.com:3714/DBU"
                     password="Admin12"
                     user="ADMIN"/>
</dataSource>