Snap-ConnectionPool数据库资源管理工具
为了简化数据库开发,缺省有效地管理数据库资源,Snap-ConnectionPool以最简单的方式,为应用供以一个有效的数据库资源管理工具。
Snap-ConnectionPool以缓冲池的机制,在一定数量上限范围内,控制管理Connection,Statement和 ResultSet。任何数据库的资源是有限的,如果被耗尽,则无法获得更多的数据服务。在大多数情况下,资源的耗尽不是由于应用的正常负载过高,而是程 序原因。在实际工作中,数据资源往往是瓶颈资源,不同的应用都会访问同一数据源。其中某个应用耗尽了数据库资源后,意味其他的应用也无法正常运行。因此,Snap-ConnectionPool的第一个任务是限制:每个应用或系统可以拥有的最大资源。也就是确定连接池的大小(PoolSize)。
ConnectionPool的第二个任务:在连接池的大小(PoolSize)范围内,最大限度地使用资源,缩短数据库访问的使用周期。许多数据库中,连接(Connection)并不是资源的最小单元,控制Statement资源比Connection更重要。以Oracle为例:
- 每申请一个连接(Connection)会在物理网络(如 TCP/IP网络)上建立一个用于通讯的连接,在此连接上还可以申请一定数量的Statement。
- 同一连接可提供的活跃Statement数量可以达到几百。 在节约网络资源的同时,缩短了每次会话周期(物理连接的建立是个费时的操作)。
- 但在一般的应用中,多数按照下面范例操作,这样有10个程序调用,则会产生10次物理连接,每个Statement单独占用一个物理连接,这是极大的资源浪费。
- Snap-ConnectionPool可以解决这个问题,让几十、几百个Statement只占用同一个物理连接, 发挥数据库原有的优点。
对资源的申请、释放、回收、共享和同步,这些管理是复杂精密的。所以,Snap-ConnectionPool的另一个功能就是,封装这些操作,为应用提供简单的,甚至是不改变应用风格的调用接口。
评论