连接池技术及其影响
昨天被人问到这样一个问题:他们的SQL Server服务器经常会出现这样的情况,某个时间点的进程数能一下子到达几百个。排除了被人攻击的可能性,我帮他们分析下来可能是应用程序里面不恰当地使用了连接池导致的。他们的程序是jsp的,通过tomcat服务器运行。
关于连接池技术,我之前也有专门的文档介绍过。这里再截几个图来说明一下
【备注】使用连接池技术的主要考虑是对于某些访问数据库很频繁的应用,该技术可以提高连接的重复利用性,而不需要不断地打开和关闭连接。
为某个连接启用连接池的做法比较简单,如下图所示即可
值得一提的是,我查了一些资料,tomcat服务器可以通过配置直接在服务器启用连接池,这与IIS相比应该是一个优势。
可以参考下面的一个链接介绍如何在tomcat中配置连接字符串,并且启用连接池
http://www.javaeye.com/topic/25161
程序进入调试状态后,就可以在服务器端看到有一批连接(20个)而不是一个连接被建立了。
通过动态管理视图查看的效果,可以很清楚地看到20个进程