`
awdxzc
  • 浏览: 332641 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

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

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;



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

相关推荐

Global site tag (gtag.js) - Google Analytics