首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jt400 AS400JDBCDataSource配置HikariCP

如何使用jt400 AS400JDBCDataSource配置HikariCP
EN

Stack Overflow用户
提问于 2015-12-03 01:56:23
回答 2查看 2.4K关注 0票数 2

我尝试在jt400 AS400JDBCDataSource (8.7)中使用HikariCP连接池(2.4.2)。

当我直接配置DataSource时,一切正常,我可以使用连接。

代码语言:javascript
复制
AS400JDBCDataSource ds = new AS400JDBCDataSource();
ds.setUser("user");
ds.setPassword("password");
ds.setServerName("serverName");
ds.setLibraries("libraries");

当我通过属性配置HikariCP时

代码语言:javascript
复制
dataSourceClassName=com.ibm.as400.access.AS400JDBCDataSource
dataSource.user=user
dataSource.password=password
dataSource.libraries=libraries
dataSource.serverName=serverName

我得到以下错误:

代码语言:javascript
复制
java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30008ms.
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:196)
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:148)
at com.zaxxer.hikari.pool.HikariPool.initializeConnections(HikariPool.java:519)
at com.zaxxer.hikari.pool.HikariPool.initializeConnections(HikariPool.java:535)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:137)
at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:71)

当我用PostgreSQL做同样的事情时,一切都很好:

代码语言:javascript
复制
dataSourceClassName=org.postgresql.ds.PGSimpleDataSource
dataSource.user=user
dataSource.password=password
dataSource.databaseName=databaseName
dataSource.serverName=serverName
EN

回答 2

Stack Overflow用户

发布于 2015-12-03 01:56:23

问题是我必须用AS400JDBCDataSource设置connectionTestQuery属性。

代码语言:javascript
复制
dataSourceClassName=com.ibm.as400.access.AS400JDBCDataSource
connectionTestQuery=values 1
dataSource.user=user
dataSource.password=password
dataSource.libraries=libraries
dataSource.serverName=serverName

请注意,以下方法也适用:

代码语言:javascript
复制
driverClassName=com.ibm.as400.access.AS400JDBCDriver
jdbcUrl=jdbc:as400://serverName;libraries=libraries;naming=system;trace=false;prompt=false;errors=full
connectionTestQuery=values 1
username=username
password=password
票数 4
EN

Stack Overflow用户

发布于 2019-08-09 15:47:49

代码语言:javascript
复制
static DataSource dataSource() {
    HikariConfig dataSourceConfig = new HikariConfig();
    dataSourceConfig.setDriverClassName("com.ibm.as400.access.AS400JDBCDriver");
    dataSourceConfig.setJdbcUrl("jdbc:as400://+serverIP+;prompt=false");
    dataSourceConfig.setUsername(username);
    dataSourceConfig.setPassword(password);
    return new HikariDataSource(dataSourceConfig);
}

在main方法中:

代码语言:javascript
复制
DataSource dataSource =  dataSource();
conn = dataSource.getConnection();

在上面或下面使用

代码语言:javascript
复制
AS400JDBCDataSource AS400DataSource = new AS400JDBCDataSource();
AS400DataSource.setUser(userName);
AS400DataSource.setPassword(password);
AS400DataSource.setServerName(host);

DataSource dataSource = AS400DataSource ;
conn = dataSource.getConnection();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34049699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档