原文:http://blog.csdn.net/chenleixing/article/details/45165753/ (druid 在spring中的配置及监控)
http://www.open-open.com/lib/view/open1430558786084.html (druid的内置监控及使用方法)
我再想买中的使用方法,因为我链接的mycat 集群环境的mysql
<!-- druid数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<!-- 基本属性 url、user、password -->
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="${druid.initialSize}" />
<property name="minIdle" value="${druid.minIdle}" />
<property name="maxActive" value="${druid.maxActive}" />
<!-- 配置获取连接等待时间 -->
<property name="maxWait" value="6000" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="120000" />
<property name="validationQuery" value="select 1" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="true" />
<property name="testOnReturn" value="true" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="50" />
<!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->
<!--<property name="filters" value="stat" /> -->
</bean>
dbcp样例
<
bean
id
=
"dataSource"
class
=
"org.apache.commons.dbcp.BasicDataSource"
destroy-method
=
"close"
>
<
property
name
=
"driverClassName"
value
=
"com.mysql.jdbc.Driver"
/>
<
property
name
=
"url"
value
=
"${jdbc.url}"
/>
<
property
name
=
"username"
value
=
"${jdbc.username}"
/>
<
property
name
=
"password"
value
=
"${jdbc.password}"
/>
<!-- 连接池启动时的初始值 -->
<
property
name
=
"initialSize"
value
=
"3"
/>
<!-- 连接池在同一时间能够分配的最大活动连接的数量, 如果设置为非正数则表示不限制 -->
<
property
name
=
"maxActive"
value
=
"15"
/>
<!-- 用来验证从连接池取出的连接,在将连接返回给调用者之前 -->
<
property
name
=
"validationQuery"
value
=
"select 1"
/>
<!-- 指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个,做了这个配置会降低性能。 -->
<
property
name
=
"testOnBorrow"
value
=
"false"
/>
<!-- 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除. -->
<
property
name
=
"testWhileIdle"
value
=
"true"
/>
<!-- 指明是否在归还到池中前进行检验,做了这个配置会降低性能。 -->
<
property
name
=
"testOnReturn"
value
=
"false"
/>
<!-- 连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为负数表示不限制 -->
<
property
name
=
"maxIdle"
value
=
"5"
/>
<!-- 连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为0则不创建 -->
<
property
name
=
"minIdle"
value
=
"3"
/>
<!-- 当没有可用连接时,连接池等待连接被归还的最大时间(以毫秒计数),超过时间则抛出异常,如果设置为-1表示无限等待 -->
<
property
name
=
"maxWait"
value
=
"90000"
/>
<!-- 泄露的连接可以被删除的超时值, 单位秒 -->
<
property
name
=
"removeAbandonedTimeout"
value
=
"120"
/>
<!-- 标记是否删除泄露的连接,如果他们超过了removeAbandonedTimout的限制.
如果空闲时间超过removeAbandonedTimeout,连接则被认为是被泄露并且会被删除. -->
<
property
name
=
"removeAbandoned"
value
=
"true"
/>
<!-- 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. 如果设置为非正数,则不运行空闲连接回收器线程 -->
<
property
name
=
"timeBetweenEvictionRunsMillis"
value
=
"60000"
/>
<!-- 连接在池中保持空闲而不被空闲连接回收器线程(如果有)回收的最小时间值,单位毫秒 -->
<
property
name
=
"minEvictableIdleTimeMillis"
value
=
"60000"
/>
</
bean
>
|
druid样例
<
bean
id
=
"dataSource"
class
=
"com.alibaba.druid.pool.DruidDataSource"
init-method
=
"init"
destroy-method
=
"close"
>
<!-- 基本属性 url、user、password -->
<
property
name
=
"url"
value
=
"${jdbc_url}"
/>
<
property
name
=
"username"
value
=
"${jdbc_user}"
/>
<
property
name
=
"password"
value
=
"${jdbc_password}"
/>
<!-- 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时 -->
<
property
name
=
"initialSize"
value
=
"3"
/>
<!-- 连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接 -->
<
property
name
=
"minIdle"
value
=
"3"
/>
<!-- 连接池在同一时间能够分配的最大活动连接的数量 -->
<
property
name
=
"maxActive"
value
=
"15"
/>
<!-- 获取新连接的等待超时的时间,单位毫秒 -->
<
property
name
=
"maxWait"
value
=
"60000"
/>
<!-- 间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<
property
name
=
"timeBetweenEvictionRunsMillis"
value
=
"60000"
/>
<!-- 接在池中保持空闲而不被空闲连接回收器线程(如果有)回收的最小时间值,单位毫秒 -->
<
property
name
=
"minEvictableIdleTimeMillis"
value
=
"120000"
/>
<!-- 用来检测连接是否有效的sql -->
<
property
name
=
"validationQuery"
value
=
"SELECT 1"
/>
<!-- 申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。-->
<
property
name
=
"testWhileIdle"
value
=
"true"
/>
<!-- 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。-->
<
property
name
=
"testOnBorrow"
value
=
"false"
/>
<!-- 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能 -->
<
property
name
=
"testOnReturn"
value
=
"false"
/>
<!-- 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。
在mysql5.5以下的版本中没有PSCache功能,建议关闭掉。-->
<
property
name
=
"poolPreparedStatements"
value
=
"true"
/>
<!-- 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。
在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100 -->
<
property
name
=
"maxPoolPreparedStatementPerConnectionSize"
value
=
"100"
/>
<!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计,这个在有配置druid监控的时候开启 -->
<!-- property name="filters" value="stat" / -->
</
bean
>
|
c3p0样例
<
bean
id
=
"dataSource"
class
=
"com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method
=
"close"
>
<!-- 基本属性 url、user、password -->
<
property
name
=
"driverClass"
value
=
"${jdbc.driverClassName}"
/>
<
property
name
=
"jdbcUrl"
value
=
"${jdbc.url}"
/>
<
property
name
=
"user"
value
=
"${jdbc.username}"
/>
<
property
name
=
"password"
value
=
"${jdbc.password}"
/>
<!-- 连接池中保留的最小连接数。-->
<
property
name
=
"minPoolSize"
value
=
"3"
/>
<!-- 连接池中保留的最大连接数。-->
<
property
name
=
"maxPoolSize"
value
=
"15"
/>
<!-- 初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间 -->
<
property
name
=
"initialPoolSize"
value
=
"3"
/>
<!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。-->
<
property
name
=
"acquireIncrement"
value
=
"3"
/>
<!-- 连接在池中保持空闲而不被空闲连接回收器线程(如果有)回收的最小时间值,单位秒。若为0则永不丢弃。-->
<
property
name
=
"maxIdleTime"
value
=
"120"
/>
<!-- 在空闲连接回收器线程运行期间休眠的时间值,以秒为单位 -->
<
property
name
=
"idleConnectionTestPeriod"
value
=
"60"
/>
<!-- 用来检测连接是否有效的sql -->
<
property
name
=
"preferredTestQuery"
value
=
"select 1"
/>
<!-- 定义在从数据库获取新连接失败后重复尝试的次数。-->
<
property
name
=
"acquireRetryAttempts"
value
=
"10"
/>
<!-- 因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候都将校验其有效性。
建议使用idleConnectionTestPeriod方法来提升连接测试的性能。-->
<
property
name
=
"testConnectionOnCheckout"
value
=
"false"
/>
<!-- c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能,通过多线程实现多个操作同时被执行 -->
<
property
name
=
"numHelperThreads"
value
=
"32"
/>
</
bean
>
|