二、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操作失败的时候会自动回放先前的操作,如果在回放期间还是失败,则抛出异常。注意:这个功能会使连接池微弱地降低运行速度。

----------------------------------------

转载 http://blog.csdn.net/v1v1wang/article/details/6989201

BoneCP主要配置参数的更多相关文章

  1. druid 连接池的配置参数

    介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生 ...

  2. [转载]fullPage.js中文api 配置参数~

    fullPage.js中文api 配置参数 选项 类型 默认值 说明 verticalCentered 字符串 true 内容是否垂直居中 resize 布尔值 false 字体是否随着窗口缩放而缩放 ...

  3. kafka配置参数

    Kafka为broker,producer和consumer提供了很多的配置参数. 了解并理解这些配置参数对于我们使用kafka是非常重要的.本文列出了一些重要的配置参数. 官方的文档 Configu ...

  4. MySQL Cluster 7.3.5 集群配置参数优化(优化篇)

    按照前面的教程:MySQL Cluster 7.3.5 集群配置实例(入门篇),可快速搭建起基础版的MySQL Cluster集群,但是在生成环境中,还是有很多问题的,即配置参数需要优化下, 当前生产 ...

  5. mha配置参数详解

    mha配置参数详解: 参数名字 是否必须 参数作用域 默认值 示例 hostname Yes Local Only - hostname=mysql_server1, hostname=192.168 ...

  6. 微信公众号网页开发-jssdk config配置参数生成(Java版)

    一.配置参数 参考官方文档:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&la ...

  7. 项目中Zookeeper配置参数笔记

    ZooKeeper是以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxo ...

  8. Hadoop2.6.0配置参数查看小工具

    前言 使用Hadoop进行离线分析或者数据挖掘的工程师,经常会需要对Hadoop集群或者mapreduce作业进行性能调优.也许你知道通过浏览器访问http://master:18088/conf来查 ...

  9. struts2学习笔记之四:多配置文件支持和常用配置参数

    struts2支持可以按照不同模块分类的方式拆分配置文件,支持多人分工合作,各自维护自己的配置文件,但是所有配置文件中包名和action的名称不能重复   struts2的配置文件方式有两种,stru ...

随机推荐

  1. android标题栏(titlebar)显示进度条

    在后台线程中执行各种操作(网络连接.大数据存储)的时候,我们希望让客户能看到后台有操作在进行,那么既能有效的提示用户,又不占用当前操作空间,最好的方法就是在标题栏有个进度条. [代码] [Java]代 ...

  2. 【JavaScript】深入理解JavaScript之强大的原型和原型链

    由于JavaScript是唯一一个被广泛使用的基于原型继承的语言,所以理解两种继承模式的差异是需要一定时间的,今天我们就来了解一下原型和原型链. AD: hasOwnProperty函数: hasOw ...

  3. PEAR:使用PHPDoc轻松建立你的PEAR文档

    对于一个开发人员,文档总是最感到头疼的事情之一.而且,很可能你对待文档会采取截然不同的2种态度: 当你使用别人的代码库的时候,最希望得到的是它的技术文档,尤其是当时间很紧,而你又不得不硬着头皮去读那些 ...

  4. .net 后台获取当前请求的设备

    检查当前发起请求的设备是手持设备还是电脑端  以便显示不同的视图 public static bool CheckIsMobile(HttpRequestBase req) { bool flag = ...

  5. 观察者模式(一)--《Head First DesignPattern》

    观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖着都会受到通知并且自动更新. 我们先看下类图: 首先我们自己创建Subject接口,定义了注册观察者,移除观察者和通知 ...

  6. ASP.NET通过byte正确安全的判断上传文件格式

    本文介绍一种更安全的方式上传图片,他能有效的防止一些通过修改文件后缀或MIME来伪造的图片的上传,从而保证服务器的安全,希望对大家有所帮助. ASP.NET中在判断文件格式时,我们以前常用的方法就是通 ...

  7. 【Android 界面效果14】RelativeLayout里常用的位置属性

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- android:layout_toLeftOf—— 该组件位于引用组件的左方 android:layou ...

  8. centos下卸载rpm包

    rpm -qa|grep sphinx rpm -e sphinx..... 安全地卸载 RPM卸载软件包,并不是简单地将原来安装的文件逐个删除,那样做的话,可能会出现这样或那样的问题.如,A软件包依 ...

  9. Android中“再按一次返回键退出程序”实现

    private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyC ...

  10. Oracle基础 (十四)其他函数

    转换函数: TO_DATE:转换为日期 --将字符串转换为日期 SELECT TO_DATE('2014-12-31', 'yyyy-mm-dd') FROM DUAL; SELECT TO_DATE ...