下载此文档

Bonecp参数配置.docx


文档分类:IT计算机 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
该【Bonecp参数配置 】是由【guoxiachuanyue003】上传分享,文档一共【14】页,该文档可以免费在线阅读,需要了解更多关于【Bonecp参数配置 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。一、BoneCP配置文件格式(bonecp-):
Xml代码症闍V
<?xmlversion=""encoding="UTF-8"?>
<bonecp-config>
<default-config>
<!--...-->
<propertyname="...">...</property>
</default-config>
</bonecp-config>
二、BoneCP主要配置参数
jdbcUrl
设置数据库URL
username
设置数据库用户名
password设置数据库密码
partitionCount
设置分区个数。这个参数默认为1,建议3-4(根据特定应用程序而定)。为了减少锁竞争和改善性能,从当前线程分区(thread-affinity)中获取一个connection,
也就是这个样子:partitions[().getId()%partitionCount]当拥有充足的短期(short-lived)的线程时候,这个参数设置越大,性能越好。当超过一定的阀值时,连接池的维护工作就可能对性能造成一定的负面影响(仅当分区上的connection使用耗尽时)。
maxConnectionsPerPartition
设置每个分区含有connection最大个数。这个参数默认为2。如果小于2,BoneCP将设置为50。
比如:partitionCount设置为3,maxConnectionPerPartition设置为5,你就会拥有总共15个connection。
注意:BoneCP不会将这些connection一起创建出来,而是说在需要更多connection的时候从minConnectionsPerPartition参数开始逐步地增长connection数量。
minConnectionsPerPartition
设置每个分区含有connection最大小个数。这个参数默认为0。
acquireIncrement
设置分区中的connection增长数量。这个参数默认为1。
当每个分区中的connection大约快用完时,BoneCP动态批量创建connection,这个属性控制一起创建多少个connection(不会大于
maxConnectionsPerPartition)。
注意:这个配置属于每个分区的设置。
poolAvailabilityThreshold设置连接池阀值。这个参数默认为20。如果小于0或是大于100,BoneCP将设置为20。
连接池观察线程(PoolWatchThread)试图为每个分区维护一定数量的可用connection。
这个数量趋于maxConnectionPerPartition和minConnectionPerPartition之间。这个参数是以百分比的形式来计算的。例如:设置为20,下面的条件如果成立:FreeConnections/MaxConnections<poolAvailabilityThreshold;就会创建出新的connection。
换句话来说连接池为每个分区至少维持20%数量的可用connection。
设置为0时,每当需要connection的时候,连接池就要重新创建新connection,这个时候可能导致应用程序可能会为了获得新connection而小等一会。
connectionTimeout
设置获取connection超时的时间。;单位:毫秒。
在调用getConnection获取connection时,获取时间超过了这个参数,就视为超时并报异常。
三、BoneCP线程配置参数
releaseHelperThreads
设置connection助手线程个数。这个参数默认为3。如果小于0,BoneCP将设置为3。
设置为0时,应用程序线程被阻塞,直到连接池执行必要地清除和回收connection,并使connection在其它线程可用。
设置大于0时,连接池在每个分区中创建助手线程处理回收关闭后的connection(应用程序会通过助手线程异步地将这个connection放置到一个临时队列中进行处理)。
对于应用程序在每个connection上处理大量工作时非常有用。可能会降低运行速度,不过在高并发的应用中会提高性能。
statementReleaseHelperThreads
设置statement助手线程个数。这个参数默认为3。如果小于0,BoneCP将设置为3。
设置为0时,应用程序线程被阻塞,直到连接池或JDBC驱动程序关闭statement。设置大于0时,连接池会在每个分区中创建助理线程,异步地帮助应用程序关闭statement当应用程序打开了大量的statement是非常有用的。可能会降低运行速度,不过在高并发的应用中会提高性能。
maxConnectionAge
设置connection的存活时间。这个参数默认为0,单位:毫秒。设置为0该功能失效。
通过ConnectionMaxAgeThread观察每个分区中的connection,不管connection
是否空闲,如果这个connection距离创建的时间大于这个参数就会被清除。当前正在使用的connection不受影响,直到返回到连接池再做处理。

设置connection的空闲存活时间。这个参数默认为60,单位:分钟。设置为0该功能失效。
通过ConnectionTesterThread观察每个分区中的connection,如果这个connection距离最后使用的时间大于这个参数就会被清除。
注意:这个参数仅和idleConnectionTestPeriod搭配使用,而且不要在这里设置任何挑衅的参数!

设置测试connection的间隔时间。这个参数默认为240,单位:分钟。设置为0该功能失效。
通过ConnectionTesterThread观察每个分区中的connection,如果这个connection距离最后使用的时间大于这个参数并且距离上一次测试的时间大于这个参数就会向数据库发送一条测试语句,如果执行失败则将这个connection清除。
注意:这个值仅和idleMaxAge搭配使用,而且不要在这里设置任何挑衅的参数!
三、BoneCP可选配置参数
acquireRetryAttempts设置重新获取连接的次数。这个参数默认为5。
获取某个connection失败之后会多次尝试重新连接,如果在这几次还是失败则放弃。
acquireRetryDelay
设置重新获取连接的次数间隔时间。这个参数默认为7000,单位:毫秒。如果小于等于0,BoneCP将设置为1000。
获取connection失败之后再次尝试获取connection的间隔时间。
。这个参数默认为false。
设置为true,连接池将会初始化为空,直到获取第一个connection。
statementsCacheSize
设置statement缓存个数。这个参数默认为0。
disableJMX
设置是否关闭JMX功能。这个参数默认为false。
poolName
设置连接池名字。用于当作JMX和助手线程名字的后缀。
四、BoneCP调试配置参数
closeConnectionWatch
设置是开启connection关闭情况监视器功能。这个参数默认为false。
每当调用getConnection()时,都会创建CloseThreadMonitor监视connection有没有关闭或是关闭了两次。警告:这个参数对连接池性能有很大的负面影响,慎用!仅在调试阶段使用!
closeConnectionWatchTimeout
设置关闭connection监视器(CloseThreadMonitor)持续多长时间。这个参数默认为0;单位:毫秒。仅当closeConnectionWatch参数设置为可用时,设置这个参数才会起作用。
设置为0时,永远不关闭。
。这个参数默认是false。
将执行的SQL记录到日志里面(包括参数值)。
设置执行SQL的超时时间。这个参数默认为0;单位:毫秒。当查询语句执行的时间超过这个参数,执行的情况就会被记录到日志中。设置为0时,该功能失效。
disableConnectionTracking设置是否关闭connection跟踪功能。这个参数默认为false。
设置为true,连接池则不会监控connection是否严格的关闭;设置为false,则启用跟踪功能(仅追踪通过Spring或一些事务管理等机制确保正确释放connection并放回到连接池中)。
transactionRecoveryEnabled设置事务回放功能。这个参数默认为false。
设置为true时,MemorizeTransactionProxy可以记录所有在connection上操作的情况,当connetion操作失败的时候会自动回放先前的操作,如果在回放期间还是失败,则抛出异常。注意:这个功能会使连接池微弱地降低运行速度。
文来自:,在当时的使用过程中遇到了一些问题,为此曾写过一篇名为《关于Proxool使用的一点问题》的博客,网址是
,博文发布以后有很多朋友在博文下面留言,因为它们也遇到了类似的问题。,最近在Hibernate中发现它也带了这个Java数据库连接池实现,,应该是这些年来没有更新了。前些天研究一个项目的时候发现了项目中使用了BoneCP这个Java的数据库连接池,抱着好奇的态度学习了一下,觉得还不错,所以写了这篇博文跟大家分享一下。BoneCP也是一个开源的Java数据库连接池,它的官方网站网址是:/。
据BoneCP网站官方报告称,BoneCP比性能排名第二的Java数据库连接池性高高25倍以上,并且支持Hibernate和DataNucleus这样的数据持久框架(当然支持JDBC这种直接方式了)。
使用BoneCP的必备条件
使用BoneCP需要如下类库支持:
被连接的数据库的JDBC驱动程序,这个可以到该数据库厂商网站下载;Google的集合框架Guava,它的网址是:
-libraries/,这个需要说明的是BoneCP官方网站说的必备框架是GoogleCollect框架,但是这个框架已经不再支持了,而是转为新的集合框架Guava;
SLF4J日志类库(在早期的BoneCP版本中直接使用了Log4J类库);。
下面是测试项目中的类库截图:
也就是需要了如下Jar包:
bonecp-
mysql-connector-java--
slf4j-log4j12--api---,,,文件内容如下:viewplaincopytoclipboardprint?
#=DEBUG,CONSOLE,A1,=DEBUG,CONSOLE
=true
#==DEBUG
===[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n
#=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]n%c[CATEGORY]%n%m[MESSAGE]%n%n
#应用于文件#=#=
#=false#=#=[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n
#UsethislayoutforLogFactor5analysis
#应用于文件回滚
#=
#=ERROR
#
=//????,??????${}?
#
=true//true\:??false\:??
#=10KB//??????
#=1//???
#=
#=[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n
#应用于socket#=#=localhost
#=5001#=true
#SetupforLogFacter5#=
#=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n#LogFactor5Appender#=#=2000
#发送日志给邮件#=#=FATAL#=10
#[email=\=******@]\=******@[/email]
#=#=Log4JMessage
#=#=[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n
#==jdbc:mysql://localhost:3306/====INSERTINTOLOG4J(Message)VALUES('[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n')==[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n#=#=#=yyyyMMdd-HH'.log4j'#=#自定义Appender#=#=#=username#=password
#******@#=
#=[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n#=DEBUG,CONSOLE,A1,=DEBUG,=true
#==DEBUG
===[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n
#=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]n%c[CATEGORY]%n%m[MESSAGE]%n%n#应用于文件
#=#=
#=false#=#=[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n
#UsethislayoutforLogFactor5analysis
#应用于文件回滚
#=
#=ERROR
#
=//????,??????${}?
#=true//true\:??false\:??
#=10KB//??????
#=1//???
#=
#=[framework]%d
-%c-%-4r[%t]%-5p%c%x-%m%n
#应用于socket#=#=localhost
#=5001#=true
#SetupforLogFacter5#=#=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n
#LogFactor5Appender#=
#=2000
#发送日志给邮件#=#=FATAL#=10
#[email=\=******@]\=******@[/email]
#=#=Log4JMessage
#=#=[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n
#==jdbc:mysql://localhost:3306/====INSERTINTOLOG4J(Message)VALUES('[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n')==[framework]%d-%c-%-4r[%t]%-5p%c%x
-%m%n
#=#=#=yyyyMMdd-HH'.log4j'#=#自定义Appender
#=#=#=username#=password
#******@
#=#

Bonecp参数配置 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息