关于在 Glassfish 上使用 BoneCP 连接池的问题

红薯 发布于 2011/04/22 11:04
阅读 434
收藏 2

来自 BoneCP 的一个帖子

在 glassfish 3.1 中使用 bonecp 时无法设置数据库访问用户名的问题,无论怎么设置,glassfish 都无法调用到 BoneCPConfig 的 setUsername 方法:

class BoneCPConfig {
...
public void setUsername(String username) {
this.username = username;
}
}

设置方法是:

在 glassfish 管理控制台中 Resources->JDBC->JDBC Connection Pool->General Tab 设置:
Pool Name: BoneCPPool
Resource Type: javax.sql.DataSource
Datasource Classname: com.jolbox.bonecp.BoneCPDataSource

然后 Resources->JDBC->JDBC Connection Pool->Additional Properties 添加下列属性:

password mypassword
username myusername
driverClass oracle.jdbc.driver.OracleDriver
jdbcUrl jdbc:oracle:thin:@localhost:1521:xe
releaseHelperThreads 3
statementsCacheSize 100
acquireIncrement 5
partitionCount 1
minConnectionsPerPartition 5
maxConnectionsPerPartition 10
ideMaxAge 240
idleConnectionTestPeriod 60

但 glassfish 似乎把 username 属性给忽略了,联想到 oracle 连接池用的是 setUser(username) 的方法,于是在 BoneCPConfig 中增加一个 setUser 方法:

class BoneCPConfig {
...
public void setUsername(String username) {
this.username = username;
}

public void setUser(String username) {
this.username = username;
}

}

然后把前面的username属性改为 user,一切就OK了。

目前 bonecp 已经发布了一个补丁版本来解决这个问题(尽管这算不上是bonecp的问题)

下载补丁版本:
https://oss.sonatype.org/content/repositories/snapshots/com/jolbox/bonecp/

加载中
返回顶部
顶部