`
屌丝学Java
  • 浏览: 29871 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

proxool连接池的一种配置方式

    博客分类:
  • Java
 
阅读更多
今天看一个旧系统的连接池配置文件,用的Struts1 :

1、在web.xml中配置连接池控制器
<servlet>
	  <servlet-name>poolMonitor</servlet-name>
	  <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
	</servlet>

	<servlet-mapping>
	  <servlet-name>poolMonitor</servlet-name>
	  <url-pattern>/poolMonitor</url-pattern>
	</servlet-mapping>	

2、其它就直接在spring中配置了
<bean id="connectionProvider"		class="com.uncnet.base.database.proxoolsupport.ProxoolConnectionProvider"
		init-method="init">
		<property name="configFile">
			<value>/proxool.xml</value>
		</property>
	</bean>

	<bean id="myDataSource" class="com.uncnet.base.database.ConnectionProviderDataSource">
		<property name="connectionProvider">
			<ref local="connectionProvider" />
		</property>
		<property name="param">
			<value>spring</value><!-- 是指连接池的别名 -->
		</property>
	</bean>


3、在proxool.xml中配置数据库的各种连接参数,和连接池参数,程序员只需调用“myDataSource” 即可。 myDataSource 被放入sessionFactory中注入DAO,也被放入
TransactionManager中用于事务控制。
<alias>spring</alias>
<driver-url>jdbc:oracle:thin:@192.168.5.186:1521:orcl</driver-url> 
		<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
		<driver-properties>
				<property name="user" value="hebxzsp" />
 				<property name="password" value="HeBeXzSP#2015" /> 
		</driver-properties>

<minimum-connection-count>1</minimum-connection-count>
		<maximum-connection-count>20</maximum-connection-count>
		<maximum-connection-lifetime>18000000</maximum-connection-lifetime>  5 hours orcl
		<maximum-active-time>1800000</maximum-active-time> 30 mins 
		<house-keeping-test-sql>values(current TimeStamp)</house-keeping-test-sql>
		<statistics>15m,45m,1d</statistics>
		<statistics-log-level>WARN</statistics-log-level>

		<fatal-sql-exception>Connection is closed,SQLSTATE=08003,Error opening socket. SQLSTATE=08S01,SQLSTATE=08S01</fatal-sql-exception>
		<fatal-sql-exception-wrapper-class>org.logicalcobwebs.proxool.FatalRuntimeException</fatal-sql-exception-wrapper-class>
		<verbose>false</verbose>



看别人介绍的三种常用开源连接池:

为了应用便于移植以及可配置的角度,建议还是使用jndi统一进行连接池的配置。怎么配置其实网上都有很多例子,
这里简单举个例子(使用spring框架):
首先在应用的上下文定义中配置jndi名称,如一个resource.xml文件,里边的写法
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName"><value>jdbc/myapp</value></property>
    </bean>
注意dataSource这个bean在dao层(hibernate或jdbc)的配置文件里需要作为dataSource名称的属性配置到所有bean中
其中“jdbc/myds”这个就是jndi名称了,下一步就是在应用服务器连接池里进行数据库连接以及对应的jndi配置了

一 开源数据连接池
1 dbcp
dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧。
这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:dbcp.xml
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性
有所下降,此外不提供连接池监控

2 c3p0
c3p0是另外一个开源的连接池,在业界也是比较有名的,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。
这个连接池的配置参见附件压缩包中的:c3p0.xml。
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性相当不错,在大并发量的压力下稳定性也有一定保证,
          此外不提供连接池监控。
         
3 proxool
proxool这个连接池可能用到的人比较少,但也有一定知名度,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。
这个连接池的配置参见附件压缩包中的:proxool.xml。
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性有一定问题,有一个需要长时间跑批的任务场景任务,同样的代码
在另外2个开源连接池中成功结束,但在proxool中出现异常退出。
但是proxool有一个优势--连接池监控,这是个很诱人的东西,大概的配置方式就是在web.xml中添加如下定义:
    <servlet>
        <servlet-name>admin</servlet-name>
        <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>     
   </servlet>
   <servlet-mapping>
      <servlet-name>admin</servlet-name>
      <url-pattern>/admin</url-pattern>
   </servlet-mapping>  
并在应用启动后访问:http://localhost:8080/myapp/admin这个url即可监控
不过proxool本身的包在监测使用中会有编码问题,附件中有一个
解决此问题的包,参见附件压缩包中的:proxool-0.9.0RC3.jar。另外需要jdk1.5以上的环境。

总结时刻:
综上所述,这几种开源连接池各有优劣,推荐使用c3p0,经检验这种连接池性能稳定,承压能力强。而proxool尽管有明显的性能问题,
但由于它具备监控功能,因此建议在开发测试时使用,有助于确定是否有连接没有被关掉,可以排除一些代码的性能问题。
分享到:
评论

相关推荐

    proxool连接池用户名密码加密

    Proxool是一个开源的、轻量级的Java数据库连接池实现,它提供了一种高效、灵活的方式来管理数据库连接。在某些场景下,为了保护敏感信息,如数据库的用户名和密码,我们需要对这些数据进行加密处理。"proxool连接池...

    proxool连接池使用详细说明

    总的来说,Proxool连接池提供了一种有效管理数据库连接的方法,通过合理的配置和使用,能显著提升应用程序的性能和稳定性。不过,随着技术的发展,可能需要考虑采用更现代、更活跃维护的连接池解决方案。

    Hibernate Proxool连接池配置总结及常遇问题

    **Hibernate Proxool连接池配置详解** 在Java应用程序中,数据库连接池是管理数据库连接的一种高效方式,它可以显著提升系统性能,减少数据库资源的浪费。本文将深入探讨Hibernate与Proxool连接池的配置,以及在...

    Spring+Hibernate+Proxool连接池

    在描述中提到的“连接池配置文件”,通常是指像`proxoolconf.xml`这样的文件,其中包含了Proxool连接池的配置参数。这些参数包括但不限于: 1. **poolName**:唯一标识连接池的名称,方便管理和调试。 2. **...

    Proxool连接池jar包

    Proxool连接池是数据库连接管理的一个开源工具,它提供了一种高效且灵活的方式来管理和复用数据库连接,以提升应用程序的性能和响应速度。在Java应用程序中,尤其是在高并发环境下,数据库连接池扮演着至关重要的...

    ssh2简单案例,注解+proxool连接池+sf4j记录日志

    总结起来,这个案例涵盖了SSH2安全通信、Java注解简化配置、Proxool连接池优化数据库访问,以及SF4J的日志记录,这些都是Java开发中不可或缺的技术组件。通过学习和理解这个案例,开发者可以提升在构建安全、高效、...

    proxool连接池

    然而,Proxool 的简单性和易于配置使其在小型项目或学习数据库连接池概念时仍然是一种好的选择。 ### 总结: Proxool 是一款简洁的数据库连接池,它的主要优势在于易于配置和使用,同时提供了监控和诊断功能。虽然...

    配置Hibernate使用Proxool连接池

    本篇文章将详细讲解如何配置Hibernate框架以使用Proxool连接池。 首先,我们需要了解Hibernate和Proxool的基本概念。Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了Java应用与数据库之间的交互,...

    Proxool连接池实例.zip

    "G2"可能是一个辅助类或者测试用例,可能包含了数据库操作的逻辑,比如执行SQL查询、事务处理等,以便展示在使用Proxool连接池时的正确操作方式。而"H"可能是另一个相关文件,可能是配置文件或者额外的代码部分,...

    ssh小框架(proxool连接池)

    **Proxool连接池**:Proxool是数据库连接池的一种实现,它的主要作用是管理数据库连接,减少创建和销毁连接的开销。当多个用户请求数据库连接时,Proxool会复用已存在的连接,而不是每次请求都新建一个。这大大提高...

    java数据库连接池Proxool

    Java数据库连接池(Database Connection Pool)是Java应用中用于管理数据库连接的一种技术,它通过复用已存在的数据库连接,减少创建和销毁连接的开销,从而提高了应用的性能和效率。Proxool是其中一个轻量级、开源...

    Proxool连接池及使用文档

    在学习Proxool的过程中,提供的文档是十分重要的,它将详细介绍如何配置、使用和诊断Proxool连接池,以确保你在实际项目中能够充分利用其优势,优化数据库访问效率。通过阅读文档,你可以了解更深入的细节,例如连接...

    Jsp使用Proxool连接池

    **JSP与Proxool连接池的深度解析** 在Java Web开发中,数据库连接管理是一项重要的任务,它直接影响到应用程序的性能和资源利用率。`JSP`(JavaServer Pages)作为动态网页技术,常常需要与数据库进行交互。为了...

    FCK在线编译器JSP自定义函数Proxool连接池配置信息.

    总的来说,理解并熟练运用FCK在线编译器的JSP自定义函数和Proxool连接池配置,能够帮助开发者构建出更加高效、灵活的Web应用,同时优化数据库操作性能,提升用户体验。在实际开发过程中,结合文档学习和实践,可以更...

    使用数据库连接池proxool配置mysql数据库

    数据库连接池是应用程序管理数据库连接的一种高效方式,它在应用启动时预创建一定数量的数据库连接,供多个请求共享,避免了频繁地建立和关闭连接,从而提高了数据库操作的性能。Proxool是Apache的一个开源项目,...

    proxool连接池所需的jar包

    **Proxool连接池**是Java开发中一种常用的数据库连接池实现,它提供了一种高效、灵活的方式来管理和复用数据库连接。在Java应用程序中,尤其是在Web应用或企业级服务中,数据库连接池能够显著提高系统性能,降低资源...

    proxool.jar包,proxool连接池用到的两个jar包

    - **连接池配置**:Proxool支持通过XML配置文件灵活地设置连接池参数,如最大连接数、超时时间、空闲检测间隔等。 - **透明化使用**:Proxool遵循JDBC接口,因此对应用程序来说,使用连接池与直接使用数据库连接...

Global site tag (gtag.js) - Google Analytics