`
awdxzc
  • 浏览: 335627 次
  • 性别: 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  
在哪里改这个? 

相关推荐

    [经典]Openfire整合现有用户

    在企业环境中,通常需要将Openfire与现有的用户管理系统进行整合,以便利用已有的用户数据,如LDAP(轻量级目录访问协议)或数据库中的用户信息。本文将详细介绍如何将Openfire与现有的用户资源进行整合,并扩展其...

    openfire扩展整合现有系统用户

    标题中的“openfire扩展整合现有系统用户”是指在Openfire这款开源即时通讯服务器上,将已有的用户系统(如企业内部的LDAP、AD等)与Openfire进行集成,实现用户身份验证和管理的一体化。Openfire是一款基于Java开发...

    openfire整合系统用户

    openfire 用户整合,手把手交你实现。

    OpenFire所有在线用户

    1. **安装和配置OpenFire**:首先,你需要在服务器上下载并安装OpenFire,配置数据库连接、SSL设置、防火墙规则等,确保服务器能够正常运行。 2. **创建用户**:使用OpenFire管理控制台或API创建用户账号,分配...

    openfire 集成用户数据库

    此时,Openfire应该能够成功连接到您的自定义数据库并开始使用其中的数据进行用户认证和信息查询。 #### 四、数据库查询定制 为了实现用户认证和信息查询功能,您需要编写特定的SQL查询语句,并将其配置到Openfire...

    openfire获取所有在线用户插件

    自己写的获取所有在线用户的openfire插件,直接上传到openfire服务器即可使用,访问路径为host:port/plugins/onlines/listall

    openfire插件,用户入群加web接口

    总之,"openfire插件,用户入群加web接口"涉及到的技术点包括Openfire插件开发、Web服务接口设计、Openfire API的使用以及系统安全性和集成测试。通过这样的实现,可以高效地自动化用户入群的过程,提高协作效率。

    openfire记录在线统计人数插件

    Openfire是一款开源、基于XMPP协议的即时通讯服务器软件,它允许用户进行实时通信和协作。在Openfire中,为了实现在线用户统计的功能,通常需要借助特定的插件来完成。"openfire记录在线统计人数插件"就是这样一个...

    使用openfire登录android

    MySQL则是一个广泛使用的开源关系型数据库管理系统,用于存储和管理Openfire中的用户信息。 首先,我们需要理解Openfire的安装和配置过程。Openfire的安装通常包括下载安装包,运行安装程序,配置服务器设置(如...

    libjingle连接openfire

    《libjingle0.6.14连接openfire:实现高效实时通信的探索》 libjingle和Openfire,这两个技术名词在IT行业中都扮演着重要的角色,尤其在实时通信(RTC)领域。libjingle是Google开源的一个库,主要用于实现P2P音...

    asmack连接openfire测试

    【asmack连接Openfire测试】是针对XMPP(Extensible Messaging and Presence Protocol)协议实现的一种客户端连接示例,主要用于教初学者如何使用asmack库与Openfire服务器进行交互。Openfire是一款开源、基于XMPP...

    openfire的用户接收消息计数器

    在Openfire的上下文中,这个计数器可能是一个独立的应用,能够连接到Openfire服务器,通过指定的用户身份(user_no和密码)登录,并实时记录接收的消息数目。 `config.ini`文件是配置文件,包含了连接到Openfire...

    openfire xmpp协议源码

    1. 数据安全:在Android客户端和Openfire服务器间使用SSL/TLS加密,保护用户隐私。 2. 性能优化:合理设计消息推送策略,避免过度耗电和网络资源。 3. 异常处理:对网络断开、服务器异常等状况进行优雅的处理,提高...

    基于Openfire服务器的用户行为审计插件设计与实现.pdf

    基于Openfire服务器的用户行为审计插件设计与实现 本文设计和实现了一个基于Openfire服务器的用户行为审计插件,名为actionAuditor。该插件由三个模块组成,能够实现用户行为记录、查询、存储、备份、导出、排序、...

    xmpp,openfire搭建ppt

    安装过程中,你需要指定Openfire的安装路径、数据库连接信息(默认使用内置的HSQLDB数据库)以及服务端口。 4. **启动Openfire**:安装完成后,可以通过桌面快捷方式或命令行启动Openfire服务。首次启动时,会引导...

    openfire深入浅出

    你还将了解到如何设置访问控制列表(ACL),以限制特定用户的权限,以及如何使用OpenFire的内置安全功能,如防止垃圾邮件和恶意行为。 OpenFire的扩展性和可定制性是其一大亮点。书中会讲述如何利用OpenFire的插件...

    Openfire strophejs 跨域访问

    Strophe.js是一个JavaScript库,专门用于与XMPP服务器(如Openfire)进行交互,支持XMLHttpRequest和WebSockets等多种连接方式。在Web开发中,由于浏览器的同源策略限制,JavaScript通常无法直接跨域访问不同域名的...

    openfire 3.9.3第二次开发集成所需要的包

    2. **SSL/TLS支持**:Openfire需要通过SSL/TLS协议为客户端提供安全连接,Bouncy Castle库能够帮助Openfire实现这一功能,提供安全的网络通信环境。 3. **证书管理**:在XMPP服务器中,X.509证书用于服务器身份验证...

    openfire使用hazelCast集群

    OpenFire 使用 HazelCast 集群 OpenFire 是一款流行的即时通信服务器软件,而 HazelCast 是一个高性能的分布式内存数据网格。OpenFire 使用 HazelCast 集群可以提高系统的可扩展性和高可用性。本文将从集群概念、两...

    Openfire用户密码加密方式详解

    NULL 博文链接:https://baobeituping.iteye.com/blog/1458842

Global site tag (gtag.js) - Google Analytics