Openfire整合自有用户,使用内置连接池

[size=medium][b]Openfire版本:3.8.2[/b] 使用openfire整合自己的用户库之后,看其JDBCAuthProvider源码,可以看到getConnection()方法是直接从JDBC驱动去获得一个新的连接,如果在数据库连接教慢或者请求较多的时候会造成效率极其低下甚至有可能客户端登录超时,这是我们不能允许的,所以我们必须给他设置加个连接池。[/size]


if(pds == null){
jdbcUserName = JiveGlobals.getProperty("jdbcAuthProvider.jdbcUserName");
jdbcUserPassword = JiveGlobals.getProperty("jdbcAuthProvider.jdbcUserPassword");
minimumConnectionCount = JiveGlobals.getIntProperty("jdbcAuthProvider.minimumConnectionCount",10);
maximumConnectionCount = JiveGlobals.getIntProperty("jdbcAuthProvider.maximumConnectionCount",20);
prototypeCount = JiveGlobals.getIntProperty("jdbcAuthProvider.prototypeCount",20);
maximumActiveTime = JiveGlobals.getIntProperty("jdbcAuthProvider.maximumActiveTime",900000);
maximumConnectionLifetime = JiveGlobals.getIntProperty("jdbcAuthProvider.maximumConnectionLifetime",14400000);
jdbcDriver = JiveGlobals.getProperty("jdbcProvider.driver");
connectionString = JiveGlobals.getProperty("jdbcProvider.connectionString");

pds = new ProxoolDataSource();
pds.setDriver(jdbcDriver);
pds.setDriverUrl(connectionString);
pds.setUser(jdbcUserName);
pds.setPassword(jdbcUserPassword);
pds.setMinimumConnectionCount(minimumConnectionCount);
pds.setMaximumConnectionCount(maximumConnectionCount);
pds.setPrototypeCount(prototypeCount);
pds.setMaximumActiveTime(maximumActiveTime);
pds.setMaximumConnectionLifetime(maximumConnectionLifetime);
}
long conectionGetStartTime = System.currentTimeMillis();
// Connection connection = DriverManager.getConnection(connectionString);
Connection connection = pds.getConnection();
long conectionGetEndTime = System.currentTimeMillis();
Log.info("获得连接时间 : "+(conectionGetEndTime - conectionGetStartTime ) + " , 连接对象: "+connection.toString());

return connection;



[color=red] [版权声明]本站内文章,如未特别注明,均系原创或翻译之作,本人保留一切权利。本站原创及译作未经本人许可,不得用于商业用途及传统媒体。网络媒体可随意转载,或以此为基础进行演译,但务必以链接形式注明原始出处和作者信息,否则属于侵权行为。另对本站转载他处文章,俱有说明,如有侵权请联系本人,本人将会在第一时间删除侵权文章。及此说明,重中之重。[/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值