BSS系统中数据库连接的安全使用和事务问题汇总V1
1修改日期原因修改人2007-09-30根据zhaoxin的意见,修改了Hibernate的session连接管理刘世伟2007-11-8根据调优组当前的工作,补充了一些内容刘世伟几个名词解释:1、数据库连接池:众所周知,建立数据库连接是一个昂贵的操作,每次都得花费约0
05s~1s的时间,消耗一定的内存资源(Oracle9i的一个空闲连接约需2~5MB内存,非空闲连接约需几十MB左右内存),而且一旦到达临界点,系统会陷入资源管理的恶性循环:越来越慢
数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”
预先在缓冲池中放入一定数量的连接备用,减少使用时才创建、销毁的消耗
当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去
使用连接池后,数据库服务器减少了它并不擅长的连接管理工作,通过池连接的快速复用,可以为客户端提供更大的并发量,内存消耗也在可控范围内波动
我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接,控制数据库的压力
我们也可以通过连接池的管理机制监控数据库连接的数量﹑使用情况,为系统开发﹑测试及性能调优提供依据
2、真实连接:客户端程序直接和数据库建立的Connection,使用完毕需要及时、安全的关闭,否则会导致数据库内存资源泄漏、服务器宕机3、代理连接:客户端程序从连接池获取的Connection,它实际上是封装了真实连接,提供和真实连接相同的功能,使用完毕也需要及时、安全的关闭,否则连接池中的连接得不到释放,会导致连接池中可用的空闲连接越来越少
当然,由于存在连接池的控制,数据库不会因此而宕机
一、BSS数据库连接管理现状:BSS系统中对数据库连接的管理,是统一通过数据源(DataSource)管理的,存在连接池和单连接两种方式的数据源(详情参考modelxxx