`
xuyongping
  • 浏览: 123583 次
  • 性别: Icon_minigender_1
  • 来自: 部落格
社区版块
存档分类
最新评论

BoneCp的设置

阅读更多
一、BoneCP配置文件格式(bonecp-config.xml):

<?xml version="1.0" encoding="UTF-8"?>
<bonecp-config>
  <default-config>
   <!--  -->
<property name=""></property>
  </default-config>
</bonecp-config>
二、BoneCP主要配置参数
1.jdbcUrl
设置数据库URL
2.username
设置数据库用户名
3.password
设置数据库密码
4.partitionCount
设置分区个数。这个参数默认为1,建议3-4(根据特定应用程序而定)。
为了减少锁竞争和改善性能,从当前线程分区(thread-affinity)中获取一个connection,
也就是这个样子:partitions[Thread.currentThread().getId() % partitionCount]。当拥有充足的短期(short-lived)的线程时候,这个参数设置越大,性能越好。当超过一定的阀值时,连接池的维护工作就可能对性能造成一定的负面影响(仅当分区上的connection使用耗尽时)。
5.maxConnectionsPerPartition
设置每个分区含有connection最大个数。这个参数默认为2。如果小于2,BoneCP将设置为50。
比如:partitionCount设置为3,maxConnectionPerPartition设置为5,你就会拥有总共15个connection。
注意:BoneCP不会将这些connection一起创建出来,而是说在需要更多connection的时候从minConnectionsPerPartition参数开始逐步地增长connection数量。
6.minConnectionsPerPartition
设置每个分区含有connection最大小个数。这个参数默认为0。
7.acquireIncrement
设置分区中的connection增长数量。这个参数默认为1。
当每个分区中的connection大约快用完时,BoneCP动态批量创建connection,
这个属性控制一起创建多少个connection(不会大于maxConnectionsPerPartition)。
注意:这个配置属于每个分区的设置。
8.poolAvailabilityThreshold
设置连接池阀值。这个参数默认为20。如果小于0或是大于100,BoneCP将设置为20。
连接池观察线程(PoolWatchThread)试图为每个分区维护一定数量的可用connection。
这个数量趋于maxConnectionPerPartition和minConnectionPerPartition之间。这个参数是以百分比的形式来计算的。例如:设置为20,下面的条件如果成立:Free Connections / MaxConnections < poolAvailabilityThreshold;就会创建出新的connection。
换句话来说连接池为每个分区至少维持20%数量的可用connection。
设置为0时,每当需要connection的时候,连接池就要重新创建新connection,这个时候可能导致应用程序可能会为了获得新connection而小等一会。
9.connectionTimeout
设置获取connection超时的时间。这个参数默认为Long.MAX_VALUE;单位:毫秒。
在调用getConnection获取connection时,获取时间超过了这个参数,就视为超时并报异常。

三、BoneCP线程配置参数
1.releaseHelperThreads
设置connection助手线程个数。这个参数默认为3。如果小于0,BoneCP将设置为3。
设置为0时,应用程序线程被阻塞,直到连接池执行必要地清除和回收connection,并使connection在其它线程可用。
设置大于0时,连接池在每个分区中创建助手线程处理回收关闭后的connection(应用程序会通过助手线程异步地将这个connection放置到一个临时队列中进行处理)。
对于应用程序在每个connection上处理大量工作时非常有用。可能会降低运行速度,不过在高并发的应用中会提高性能。
2.statementReleaseHelperThreads
设置statement助手线程个数。这个参数默认为3。如果小于0,BoneCP将设置为3。
设置为0时,应用程序线程被阻塞,直到连接池或JDBC驱动程序关闭statement。
设置大于0时,连接池会在每个分区中创建助理线程,异步地帮助应用程序关闭statement当应用程序打开了大量的statement是非常有用的。可能会降低运行速度,不过在高并发的应用中会提高性能。
3.maxConnectionAge
设置connection的存活时间。这个参数默认为0,单位:毫秒。设置为0该功能失效。
通过ConnectionMaxAgeThread观察每个分区中的connection,不管connection是否空闲,如果这个connection距离创建的时间大于这个参数就会被清除。当前正在使用的connection不受影响,直到返回到连接池再做处理。
4.idleMaxAge
设置connection的空闲存活时间。这个参数默认为60,单位:分钟。设置为0该功能失效。
通过ConnectionTesterThread观察每个分区中的connection,如果这个connection距离最后使用的时间大于这个参数就会被清除。
注意:这个参数仅和idleConnectionTestPeriod搭配使用,而且不要在这里设置任何挑衅的参数!
5.idleConnectionTestPeriod
设置测试connection的间隔时间。这个参数默认为240,单位:分钟。设置为0该功能失效。
通过ConnectionTesterThread观察每个分区中的connection, 如果这个connection距离最后使用的时间大于这个参数并且距离上一次测试的时间大于这个参数就会向数据库发送一条测试语句,如果执行失败则将这个connection清除。
注意:这个值仅和idleMaxAge搭配使用,而且不要在这里设置任何挑衅的参数!

三、BoneCP可选配置参数
1.acquireRetryAttempts
设置重新获取连接的次数。这个参数默认为5。
获取某个connection失败之后会多次尝试重新连接,如果在这几次还是失败则放弃。
2.acquireRetryDelay
设置重新获取连接的次数间隔时间。这个参数默认为7000,单位:毫秒。如果小于等于0,BoneCP将设置为1000。
获取connection失败之后再次尝试获取connection的间隔时间。
3.lazyInit
设置连接池初始化功能。这个参数默认为false。
设置为true,连接池将会初始化为空,直到获取第一个connection。
4.statementsCacheSize
设置statement缓存个数。这个参数默认为0。
5.disableJMX
设置是否关闭JMX功能。这个参数默认为false。
6.poolName
设置连接池名字。用于当作JMX和助手线程名字的后缀。

四、BoneCP调试配置参数
1.closeConnectionWatch
设置是开启connection关闭情况监视器功能。这个参数默认为false。
每当调用getConnection()时,都会创建CloseThreadMonitor,监视connection有没有关闭或是关闭了两次。警告:这个参数对连接池性能有很大的负面影响,慎用!仅在调试阶段使用!
2.closeConnectionWatchTimeout
设置关闭connection监视器(CloseThreadMonitor)持续多长时间。这个参数默认为0;单位:毫秒。仅当closeConnectionWatch参数设置为可用时,设置这个参数才会起作用。
设置为0时,永远不关闭。
3.logStatementsEnabled
设置是否开启记录SQL语句功能。这个参数默认是false。
将执行的SQL记录到日志里面(包括参数值)。
4.queryExecuteTimeLimit
设置执行SQL的超时时间。这个参数默认为0;单位:毫秒。
当查询语句执行的时间超过这个参数,执行的情况就会被记录到日志中。
设置为0时,该功能失效。
5.disableConnectionTracking
设置是否关闭connection跟踪功能。这个参数默认为false。
设置为true,连接池则不会监控connection是否严格的关闭;设置为false,则启用跟踪功能(仅追踪通过Spring或一些事务管理等机制确保正确释放connection并放回到连接池中)。
6.transactionRecoveryEnabled
设置事务回放功能。这个参数默认为false。
设置为true时,MemorizeTransactionProxy可以记录所有在connection上操作的情况,当connetion操作失败的时候会自动回放先前的操作,如果在回放期间还是失败,则抛出异常。注意:这个功能会使连接池微弱地降低运行速度。

摘自红色黑客联盟(www.7747.net) 原文:http://www.7747.net/kf/201103/85866.html
分享到:
评论

相关推荐

    BoneCP数据源应用

    7. `partitionCount`: 设置分区的数量,这有助于管理多线程环境下的并发访问。 8. `acquireIncrement`: 当需要增加连接时,一次增长的数量。 9. `poolAvailabilityThreshold`: 当连接池中的可用连接低于这个阈值时,...

    bonecp-0.8.0.RELEASE.jar

    BoneCP 是一个高效的开源连接池实现,主要用于Java应用程序中数据库连接的管理。它提供了一种高效、可配置的方式来管理和复用数据库连接,从而提高应用程序的性能和稳定性。在标题中提到的 "bonecp-0.8.0.RELEASE....

    bonecp连接池demo

    在这个例子中,我们首先设置了 BoneCP 的配置,包括数据库URL、用户名、密码以及连接池的最小和最大连接数。接着,我们初始化数据源,并通过 `getConnection()` 方法获取数据库连接。在使用完连接后,自动关闭资源,...

    BoneCP(连接oracle例子+jar包)

    2. **配置 BoneCP**:在项目中创建一个配置文件(如bonecp.properties),设置数据库连接的相关参数,如数据库URL、用户名、密码、最大连接数、最小连接数等。 ``` # 示例配置 jdbc.url=jdbc:oracle:thin:@...

    Bonecp参数配置.doc

    BoneCP的参数配置灵活多样,通过合理设置上述参数,可以有效提升数据库访问的性能和稳定性。然而,参数的最优值往往依赖于具体的应用场景和负载情况,因此,在实际部署中,建议根据业务需求和监控数据进行细致调优,...

    BoneCP 连接池学习笔记

    创建一个 ` BoneCPConfig ` 对象,设置相关参数,例如最大连接数、最小连接数、超时时间等。然后,使用该配置创建 ` BoneCP ` 实例,并通过 ` getConnection ` 方法获取数据库连接。 **示例代码** ```java // 配置...

    BoneCP_数据源设置

    BoneCP 数据源设置是数据库连接管理的重要环节,它优化了数据库资源的分配和使用,提高了应用性能。BoneCP 是一个轻量级、高效的Java数据库连接池,设计用于减少数据库连接的开销,避免过多的数据库连接创建和销毁,...

    BoneCP的xml使用实例

    例如,你可以设置数据源的最大和最小连接数、连接超时时间、自动回收空闲连接的时间间隔等。一个基本的`bonecp-config.xml`可能包含以下内容: ```xml &lt;jdbcUrl&gt;jdbc:mysql://localhost:3306/test &lt;username&gt;...

    bonecp连接池

    在用C3P0数据连接池的时候,一旦并发上来就坑不住了,因为C3P0存在...在Hibernate中使用BoneCP除了需要上面提到的jar包之外,还需要下载一个名为bonecp-provider-0.7.0.jar的bonecp-provider的jar包,它的下载位置是:...

    Bonecp参数配置.pdf

    BoneCP是一种高效的数据库连接池(Database Connection Pool)实现,它被设计用来提高应用程序在处理数据库连接时的性能和效率。连接池允许重复使用已建立的数据库连接,避免了每次需要连接数据库时创建新连接的开销...

    BoneCP数据源jar包及配置

    在下载并引入这个jar包后,我们需要进行适当的配置以设置 BoneCP 的工作环境。 配置 BoneCP 主要涉及以下几个方面: 1. **依赖管理**:将 BoneCP 的jar包添加到项目的类路径中,通常通过Maven或Gradle等构建工具来...

    BoneCP.zip_BoneCP_BoneCP 源码_jdbc BoneCP_oracle

    1. **初始化配置**:BoneCP的配置主要通过` BoneCPConfig`类完成,你可以设置各种参数,如最大连接数、最小连接数、超时时间等。 2. **连接池的创建**:使用` BoneCP`类的静态方法`getInstance()`创建连接池实例,...

    BoneCp连接池详解及和Hibernate配置(当今最快的连接池)

    同时,还需要在`bonecp.properties`中设置Hibernate相关的属性,例如: ```properties hibernate.id.new_generator_mappings=false hibernate.hbm2ddl.auto=update ``` 至此,我们就完成了BoneCP的配置和与...

    数据库连接池BoneCP源码分析报告

    在实际使用中,开发者需要注意 BoneCP的配置优化,如合理设置最小、最大连接数,避免连接池过大导致资源浪费,或过小导致性能瓶颈。同时,还要关注并发策略,如预热连接(预先创建一部分连接)以减少初次请求时的...

    数据库连接池BoneCP源码分析报告.doc

    数据源会根据配置信息初始化 `BoneCP` 对象,这个过程涉及连接池大小设定、连接超时时间、重试策略等参数的设置。 - **连接获取**:当应用程序请求数据库连接时,`BoneCPDataSource.getConnection()` 方法会从连接...

    BoneCP 连接池所用到的jar集合

    BoneCP是一种高效的、开源的Java数据库连接池,它在处理多线程并发访问数据库时能够提供优秀的性能。在Java应用程序中,使用数据库连接池能够有效地管理数据库连接,避免频繁创建和销毁连接,从而提高系统效率并减少...

    BoneCP连接池和Ehcache注解缓存整合到Spring

    3. **配置 Ehcache**:设置Ehcache的配置,如缓存区域、缓存策略、过期时间等。可以使用XML配置文件或Java配置API。 4. **整合缓存**:使用Spring的AOP(面向切面编程)和Ehcache的注解,在需要缓存的方法上添加`@...

    Bonecp参数配置[借鉴].pdf

    BoneCP是一种高效的数据库连接池(JDBC Connection Pool)实现,用于优化Java应用的数据库访问性能。在软件开发中,配置数据库连接池是非常重要的一步,因为它直接影响到应用的响应速度和资源利用率。以下是对BoneCP...

    开源数据库连接池bonecp附教程

    骨CP(BoneCP)是一款高性能、轻量级的开源Java数据库连接池,它以其高效的并发性能和优秀的资源管理而受到开发者的青睐。本教程将深入探讨骨CP的基本概念、安装配置、使用方法以及优化策略。 一、骨CP简介 骨CP是...

    Spring+Mybatis+BoneCP配置实例

    接下来,我们配置Spring的主配置文件(`applicationContext.xml`),设置BoneCP连接池和Mybatis的SqlSessionFactory: ```xml &lt;bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method=...

Global site tag (gtag.js) - Google Analytics