`

连接池

    博客分类:
  • java
阅读更多

hibernate开发组推荐c3p0,spring开发组推荐dbcp,但是dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法 reconnect ,告诉连接被重置,这个设置可以解决。hibernate in action推荐c3p0和proxool。 

我推荐proxool,因为他不但可以监控后台。还可以有效的释放连接。在connection close时,也就是归还connection,关闭所有的statement,并且判断是否autocommit,如果不行,就rollback,并且设置true,可以参考proxool的org.logicalcobwebs.proxool.ConnectionResetter类
connection pool把connection reset置回initial state。
dbcp的配置:

<bean id="dataSource"    
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
<property name="driverClassName" value="${db.driverClassName}"/>  
<property name="url" value="${db.url}"/>  
<property name="username" value="${db.username}"/>  
<property name="password" value="${db.password}"/>  
<property name="validationQuery">  
<value>Select 1</value>  
</property>  
<property name="testOnBorrow">  
<value>true</value>  
</property>  
</bean>  

 

c3p0的配置:
注意是''driverClass' , 'jdbcUrl', 'user' , 'password' 

<bean id="dataSource"    
class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">  
 <property name="driverClass">  
<value>net.sourceforge.jtds.jdbc.Driver</value>  
</property>  
<property name="jdbcUrl">  
<value>jdbc:jtds:sqlserver://localhost:1433/hua</value>  
</property>  
<property name="user">  
<value>sa</value>  
</property>  
<property name="password">  
<value>hua</value>  
</property>  
<property name="minPoolSize">  
<value>15</value>  
</property>  
<property name="acquireIncrement">  
<value>5</value>  
</property>  
<property name="maxPoolSize">  
<value>25</value>  
</property>  
</bean>

 

或者

<bean id="c3p0DataSource"    
class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">  
    <property name="driverClass">  
           <value>${db.driverClass}</value>  
     </property>  
      <property name="jdbcUrl">  
           <value>${db.url}</value>  
     </property> 
     <!--   
    <property name="user">  
           <value>${db.user}</value>  
     </property>  
    <property name="password">  
          <value>${db.pass}</value>  
    </property>      -->  
    <property name="properties">  
         <props>  
            <prop key="c3p0.acquire_increment">5</prop>  
             <prop key="c3p0.idle_test_period">100</prop>  
             <prop key="c3p0.max_size">100</prop>  
             <prop key="c3p0.max_statements">0</prop>  
               <prop key="c3p0.min_size">10</prop>  
              <prop key="user">${db.user}</prop>  
              <prop key="password">${db.pass}</prop>  
          </props>  
   </property>  
</bean>

 

xapool的配置:

<bean id="dataSource" class="org.objectweb.cjdbc.driver.DataSource">  
  <property name="url">  
      <value>jdbc:cjdbc://127.0.0.1:25322/vdb?user=vuser</value>  
   </property>  
</bean>

 

weblogic的连接池解决办法:
Test Reserved Connections: 如果选择了这个选项,服务器会在把连接提供给客户端之前对其进行测试。 
Test Created Connections: 如果选择了这个选项,就会在创建一个JDBC连接之后和在把它添加到JDBC连接池中的可用连接列表之前,对该JDBC连接进行测试。
tomcat的jndi关于dbcp的配置:

<parameter>  
     <name>factory</name>  
     <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>  
</parameter>  
<parameter>  
     <name>driverClassName</name>  
     <value>com.sybase.jdbc2.jdbc.SybDriver</value>  
</parameter>  
<parameter>  
     <name>url</name>  
     <value>xyz</value>  
</parameter>  
<parameter>  
     <name>username</name>  
     <value>xyz</value>  
</parameter>  
<parameter>  
     <name>password</name>  
     <value>xyz</value>  
</parameter>  
<parameter>  
     <name>maxActive</name>  
     <value>5</value>  
</parameter>  
<parameter>  
     <name>maxIdle</name>  
     <value>5</value>  
</parameter>  
<parameter>  
     <name>maxWait</name>  
     <value>-1</value>  
</parameter>  
<parameter>  
     <name>removeAbandoned</name>  
     <value>true</value>  
</parameter>  
<parameter>  
     <name>validationQuery</name>  
     <value>select count(*) from sometable where 1 = 0</value>  
</parameter>  
<parameter>  
     <name>testOnBorrow</name>  
     <value>true</value>  
</parameter>

 

proxool

<bean id="proxooldataSource"    
class="*.proxool.ProxoolDataSource" destroy-method="close">    
     <property name="alias"><value>newstest</value></property>    
     <property name="driver">  
          <value>net.sourceforge.jtds.jdbc.Driver</value>  
     </property>    
     <property name="driverUrl">  
          <value>jdbc:jtds:sqlserver://127.0.0.1:1433/news<value>  
     </property>    
     <property name="user"><value>sa</value></property>    
     <property name="password"><value>1</value></property>    
     <property name="houseKeepingSleepTime"><value>90000</value></property>    
     <property name="prototypeCount"><value>5</value></property>    
     <property name="maximumConnectionCount"><value>100</value></property>    
     <property name="minimumConnectionCount"><value>10</value></property>    
     <property name="trace"><value>true</value></property>    
     <property name="verbose"><value>true</value></property>    
</bean> 

 

分享到:
评论

相关推荐

    连接池案例 连接池案例

    在IT行业中,数据库连接池是优化数据库访问性能和资源管理的重要技术。连接池的基本思想是重用已建立的数据库连接,避免频繁创建和销毁连接带来的性能开销。本篇文章将深入探讨连接池的概念、工作原理以及如何在实际...

    kafka生产者连接池

    为了优化性能和提高效率,开发人员常常会利用连接池技术来管理Kafka生产者的连接。本文将深入探讨"Kafka生产者连接池"的概念、实现原理以及它如何提升系统性能。 Kafka生产者连接池是一种资源复用机制,它允许多个...

    okhttp中连接池实现

    它的核心特性之一就是连接池(Connection Pool),它在提高网络性能和减少延迟方面起到了关键作用。本文将深入探讨OkHttp中的连接池实现,包括连接对象的添加、移除机制以及其工作原理。 首先,我们需要了解什么是...

    java ftp连接池

    Java FTP连接池是一种用于管理FTP(文件传输协议)连接的资源池,它的主要目标是提高应用程序的性能和效率。在传统的FTP操作中,每次需要连接到FTP服务器时都会创建一个新的连接,这会消耗大量时间和系统资源。而...

    tomcat连接池与阿里Druid连接池

    Tomcat 连接池和阿里 Druid 连接池的配置和比较 Tomcat 连接池是一种基于 Java 的数据库连接池实现,提供了高效、可靠的数据库连接管理。阿里 Druid 连接池是阿里巴巴开发的开源连接池,提供了高性能、可靠的数据库...

    Mongodb连接池for java

    在标签中,“MongoDB”是数据库的名字,“Mongo连接池”指的是针对MongoDB数据库的连接池,“连接池”是数据库连接管理的一个通用概念,适用于各种数据库系统。 在压缩包“mongodb_pool”中,可能包含了以下内容: ...

    C#高效数据库连接池源码

    数据库连接池是数据库管理中的重要概念,特别是在高并发和大数据量的应用场景下,它能显著提升性能并降低系统资源消耗。在C#编程环境中,我们可以使用自定义的数据库连接池来实现这一功能。本篇文章将深入探讨“C#...

    数据库连接池配置

    ### 数据库连接池配置 #### 一、引言 在基于数据库的应用开发中,数据库连接的管理和优化至关重要。本文档详细介绍了MySQL数据库连接池的配置方法及其工作原理,并结合具体的编程场景进行了阐述。 #### 二、传统...

    java 数据库 连接池驱动.rar

    Java数据库连接池驱动是Java应用程序在访问数据库时用于优化资源管理的一种技术。它提供了一种在多个数据库操作之间重用数据库连接的方式,从而避免了频繁创建和关闭连接带来的性能开销。连接池的核心思想是池化资源...

    Tomcat连接池配置.doc

    Tomcat 连接池配置详解 Tomcat 连接池配置是 Web 应用程序中一个非常重要的组件,它负责管理和维护数据库连接,确保数据访问的高速和安全性。本文将详细介绍 Tomcat 连接池配置的步骤和原理,帮助读者快速掌握 ...

    RabbitMQ客户端连接池的原理及源码

    本文将深入探讨RabbitMQ客户端连接池的工作原理,并分析其源码,以期帮助读者理解如何有效地利用连接池优化系统性能。 连接池的基本思想是预先创建一定数量的连接并保持空闲状态,当应用需要时可以从池中获取,使用...

    C# 数据库连接池 C# 数据库连接池

    数据库连接池是数据库管理中的一个重要概念,它在C#编程中扮演着优化数据库操作的关键角色。C#数据库连接池是一种管理数据库连接的技术,通过复用已存在的连接而不是每次请求时都创建新的连接,从而提高数据库操作的...

    spring中 连接池的使用

    在Spring框架中,数据库连接池是管理数据库连接的关键组件,它能有效地提高应用程序的性能和资源利用率。在上述内容中,提到了两种常用的连接池实现:Apache的DBCP(BasicDataSource)和C3P0(ComboPooledDataSource...

    c# mysql数据库连接池实现

    在.NET Core 2.1框架下,可以使用.NET Standard库来实现高效、优化的数据库连接管理,特别是通过连接池来提高性能。本文将深入探讨如何在C#中使用MySQL数据库连接池。 首先,我们需要了解什么是数据库连接池。...

    数据库连接池技术详解

    对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接的配置,实现数据库连接池技术。某一应用最大可用数据库连接数的限制,避免某一应用独占所有数据库资源。 在较为完备的数据库连接池实现中,可根据...

    MySql数据库连接池C#代码(有注释含测试代码)

    MySQL数据库连接池是提高应用程序性能的一种重要技术,它允许开发者管理多个数据库连接并高效地复用这些连接,而不是每次需要时都创建新的连接。在C#编程中,我们可以使用自定义的连接池或者第三方库如ADO.NET的...

    socket 客户端连接池实现

    Socket客户端连接池是一种在分布式系统或网络编程中提高性能和效率的重要技术。它允许应用程序预先创建并维护一组可重用的Socket连接,从而避免了每次通信时建立新连接的开销。本文将深入探讨Socket客户端连接池的...

    使用连接池技术时的配置

    使用连接池技术时的配置 在本文中,我们将讨论使用连接池技术时的配置,特别是关于 Tomcat、MySQL 和 Eclipse 的数据库连接池配置。 一、开发工具介绍 为了配置连接池,我们需要使用以下开发工具: * Tomcat ...

    java socket连接池 实现

    Java Socket 连接池实现是提高网络应用性能和效率的关键技术之一。在高并发的网络环境中,频繁地创建和销毁Socket连接会导致大量的系统资源浪费,影响整体性能。为了解决这个问题,开发人员通常会使用连接池来管理和...

    oracle 数据库,在C++中用连接池实现高速连接与访问.rar

    2. 创建连接池:通过oci池化函数ociPoolCreate创建连接池,指定最小、最大连接数以及空闲连接超时时间。 3. 获取连接:当需要访问数据库时,从连接池中获取一个已建立的连接,而不是每次都新建。 4. 使用连接:执行...

Global site tag (gtag.js) - Google Analytics