c3p0常用配置整理

连接池基本配置

initialPoolSize, minPoolSize, maxPoolSize定义了由池管理的连接数量。请确保minPoolSize<=maxPoolSize。不合理的initialPoolSize值将会被忽略,然后使用 minPoolSize来替代。

容量和连接寿命配置

maxIdleTime定义了连接因在多少秒内未被使用而被连接池剔除的时间。maxConnectionAge决定了所有从数据库中获取的连接将在多少秒后被连接池剔除。maxIdleTimeExcessConnections用来最小化 c3p0 欠载(under load)时的连接数。默认情况下,在 c3p0 欠载时,c3p0 只会因连接测试失败或者连接过期而缩小池中的连接数。有一些用户需要在一些突然增大会连接数的操作之后快速地释放不必要的连接。你可以通过把maxIdleTimeExcessConnetions设定为一个比 maxIdleTime小得多的值来达到这个目的。超过最小连接数的那些连接会在较小的一段空闲时间之后被连接池剔除。

连接测试配置

idleConnetionTestPeriod, testConnectionOnCheckout和testConnectionOnCheckin 决定了连接何时被测试。automaticTestTable, connectionTesterClassName 和 preferredTestQuery决定了连接怎样被测试。

Statement池配置

maxStatement定义了每个数据源会缓存的PreparedStatement 的总数。池内的Statement 总数在达到这个限制时会销毁那些最近最近最少使用的(least-recently-used)Statement。这听起来很简单,不过事实上有些奇怪,因为从概念上来讲,被缓存的 Statement是属于单个的数据库连接的,它们并不是全局资源。为了弄清楚maxStatements 的大小,你不应该简单地认为它就是池中 statement的数量,你应该将你的应用程序中的最常用的PreparedStatement的数量乘以合理的连接数(比如在一个高负荷的应用中的 maxPoolSize值)。

数据库故障修复配置

当 c3p0 在尝试获取数据库连接失败时,会自动地重试 acquireRetryAttempts次,每次间隔 acquireRetryDelay。如果依然失败,所有在等待这些连接的客户端将会收到一个异常,用来表示不能获取连接。请注意,如果不是所有的获取连接尝试都失败,客户端并不会收到异常,这可能在初始化尝试获取连接之后还需要一点儿时间。如果acquireRetryAttempts 被设置为0,c3p0将会无限期地尝试获取一个新的连接,对 getConnection()的调用可能会无限阻塞下去,直到成功获取一个连接。

请注意,如果数据库重启了,一个连接池也许还维持着那些以前获取的而现在变得不可用的连接。默认情况下,这些陈旧的连接不会被马上发现并且清理掉,当一个应用程序使用它们的时候,会马上得到一个异常。设定 maxIdleTime 或者maxConnectionAge 可以帮助你加速替换掉这些不可用的连接。(见连接寿命的管理)如果你想完全避免应用程序因此遇到异常,你必须得指定一中连接测试策略用来在客户端使用不可用连接之前就清理掉它们。(见连接测试的配置)即使使用积极的连接测试(testConnectionsOnCheckout设置为true,或者testConnectionsOnCheckin为true并且设置了一个小的 idleConnectionTestPeriod值),你的应用程序在数据库重启的时候依然有可能遇到一个相关的异常,比如数据库在你已经将连接测试成功后才重启。

未结束事务处理方式配置

如果你想要 c3p0 在连接返回连接池时(checkin )提交未结束的事务,只需要把

autoCommitOnClose 设置为 true。如果你希望自己管理这些未结束的事务的话(并且没有设置连接的 autoCommit 属性), 你可以把forceIgnoreUnresolvedTransactions 设置为 true。我们强烈地不鼓励设置 forceIgnoreUnresolvedTransactions 的值,因为如果客户端在连接关闭前即没有回滚也没有提交事务,并且也没有开启自动提交的话,一些奇怪的不可再生的行为(unreproduceable behavior)和数据库被锁住的现象会发生。

时间: 2024-10-14 18:33:46

c3p0常用配置整理的相关文章

Linux的ntp常用配置整理

ntp介绍: NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议: 在NTP中,定义了时间按照服务器的等级传播,按照离外部UTC源远近将所有的服务器归入不同的Stratum(层)中,例如把通过GPS(Global Positioning System,全球定位系统)取得发送标准时间的服务器叫Stratum-1的NTP服务器,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但St

华为5700系列交换机常用配置示例

华为S5700系列交换机,是我们项目中用的较多的一款,其中24与48口应用较多.现在将华为交换机的一些常用配置整理一下,进行记录.如有错误,请指正. 1 允许telnet(远程登录) 允许华为交换机能telnet,设置密码为[email protected] telnet server en # aaa authentication-scheme default authorization-scheme default accounting-scheme default domain defau

c3p0的常用配置方式

1:第一种方式非常简单 c3p0.driverClass=com.mysql.jdbc.Driver c3p0.jdbcUrl=jdbc:mysql://localhost:3308/database c3p0.user=root c3p0.password=root 文件名字为:c3p0.properties(放在src目录下面) //程序我写的比较简单,可以用来测试执行配置. package jdbc.mysql; import java.sql.Connection; import jav

C3P0的配置方式

C3p0的配置方式分为三种,分别是 1.setters一个个地设置各个配置项 2.类路径下提供一个c3p0.properties文件 3.类路径下提供一个c3p0-config.xml文件 1.setters一个个地设置各个配置项 这种方式最繁琐,形式一般是这样: Properties props = new Properties(); InputStream in = ConnectionManager.class.getResourceAsStream("/c3p0.properties&q

sublime常用快捷键整理(未完待续)

sublime常用快捷键整理: 基本操作 cmd+o 打开文件 cmd+w 关闭当前tab cmd+n 打开新页 cmd+shift+n 打开刚刚关闭的页签 一.选择命令 1.多个单词选择 cmd+d 2.多行选择 cmd + l 3.多行编辑 cmd + shift + l 二.界面配置 1.关闭和开启左侧项目菜单 cmd+ k 再 cmd+b 2.分割可视窗口  cmd+option+1(1个可视窗口)/2(2个可视窗口) 三. 寻找 1.调出资源文件:cmd+p 2.行数查找:cmd+p+

【转载】Git 常用命令整理

Git 常用命令整理 博客分类: Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux 初始化配置 C代码   #配置使用git仓库的人员姓名 git config --global user.name "Your Name Comes Here" #配置使用git仓库的人员email git config --global user.email [email protected] #配置到缓存 默认15分钟 git config

git常用指令整理及说明(详细)

git常用指令整理及说明(详细) git常用指令整理及说明详细 安装和配置 工作区版本库和暂存区 本地库和远程库 新建仓库 从远程库克隆 常用查看指令 常用修改指令 撤销修改和版本回退 分支管理 创建和合并分支 解决冲突 bug分支 远程分支 优秀教程笔记 本文是git系列博客的第二篇.本文对指令按照使用场景(建库,查看,修改,分支)进行分类归纳,介绍指令基本含义和用法,方便查阅. 安装和配置 参考我前面的博客:git在各操作系统平台下的安装和配置 工作区.版本库和暂存区 工作区:就是你在电脑里

MYSQL数据库常用知识整理

Evernote Export MYSQL数据库常用知识整理 什么是MYSQL MYSQL的特性 MYSQL存储引擎的分类以及数据文件的介绍 MYSQL赋权 MYSQL备份与恢复 MYSQL的基本操作:增删查改 MYSQL的基本故障判断与处理 MYSQL的调优 MYSQL主主.主从复制的实现 MYSQL大数据备份和恢复 数据文件的损坏与修复 什么是MYSQL MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.目前MySQL被广泛地应用在Internet上的中

oracle init.ora常用配置详解

参考网上整理了重要的配置文件 db_name = "51cto"   一个数据库标识符,应与CREATE DATABASE 语句中指定的名称相对应. instance_name = 51cto在多个例程使用相同服务名的情况下,用来唯一地标识一个数据库例程. INSTANCE_NAME 不应与 SID 混淆,它实际上是对在一台主机上共享内存的各个例程的唯一标识. service_names =  51cto为 Net8 监听程序可用于识别一个服务 (如:复制环境中的一个特定数据库) 的例