设为首页 收藏本站
查看: 850|回复: 0

[经验分享] WebLogic Server 性能优化 (2) JDBC连接池篇

[复制链接]

尚未签到

发表于 2017-2-17 10:13:55 | 显示全部楼层 |阅读模式
  JDBC连接池是J2EE应用最常用的一个服务,JDBC连接池的设置相对比较简单一些。JDBC连接池的设置最主要的是Intial Capcity和Maximum Capacity两个属性。下面对于JDBC连接池的几个属性及优化配置方案进行描述:
  Initial Capacity: 初始容量,即WebLogic Server在建立连接池的时候创建的连接数量
  Maximum Capacity: 最大容量,即WebLogic Server允许的在这个连接池中的连接的最大数量。
  通 常,初始容量和最大容量设置为相等,并且不小于执行线程的数量。如果你的应用中配置了自定义执行线程队列,那么就要计算全部的用来给应用工作的线程的数 量。如此设置才能够起到Pool的作用,避免在应用运行过程中出现创建JDBC连接的请求。因为创建JDBC连接对于WebLogic Server和数据库服务器来说,都是开销比较大的动作。如果应用中存在在一个线程中获取多个连接的情况,那么初始容量和最大容量应该大于执行线程的数 量,甚至需要成倍增加。比如下面的JSP代码就会导致一个线程工作占用2个连接:
  ctx = new InitialContext();
ds = (DataSource)ctx.lookup(”lab.ds.pbjade”);
conn = ds.getConnection();
// do some query operations
  conn2 = ds.getConnection();
// do some query operations
  以 上这段代码,在执行过程中,第一个连接conn关闭之前,又获取了第二个连接conn2,这样一来,这个JSP页面在执行的时候(由一个线程来执行),会 同时获取2个连接,连接池容量的最优化设置是执行线程的数量的2倍。因为在极端情况下,如果在同一时刻,所有的请求都指向这个页面,那么就需要执行线程数 量2倍的连接才不会出现连接等待。
  Capcity Increment: 增长步长。如果初始容量和最大容量不相等,并且需要更多的连接时,WebLogic Server一次建立新连接的数量。
  Allow Shrinking: 允许自动收缩。如果连接池的初始容量和最大容量不相等,那么当池中的连接大于初始容量时,经过Shrink Frequency时间,如果连接池中的活动连接不高于初始容量个,那么连接池中连接的数量会减少到初始容量大。
  上面这几个参数是配置相关的,通常Initial Capacity=Maximum Capacity 并且>=执行线程的数量,并且不选择Allow Shrinking选项,避免不必要的周期检查。
  如 果WebLogic Server和数据库服务器之间的网络连接不稳定,或者两个服务器之间存在防火墙,导致JDBC连接不稳定,WebLogic Server还提供了一些测试策略以尽量保证应用难道的连接是有效的。主要有3个选项:Test Reserved Connections、Test Created Connections、Test Released Connections。测试的时机分别是应用获取连接、WebLogic Server创建连接、应用释放连接。通常这3个选项只需选择Test Reserved Connections即可,无需全部选择。根据测试数据,可能会有3%左右的性能下降。所以如果不是必要,也不必使用这些选项。
  在 使用JDBC连接池的过程中,最常见的一个问题就是连接池泄漏问题。一个池里面的资源是有限的,应用用完之后应该还回到池中,否则池中的资源会被耗尽。 WebLogic Server提供了一个Inactive Connection Timeout选项,默认是60秒,如果一个连接被应用拿走之后,超过这个时间还没有还回来,WebLogic Server会强制将这个连接回收。如果应用中不存在连接泄漏的问题,则不需要这个选项。设置为0即可禁用。
  总结一下,连接池的设置相对比较简单,主要是初始容量及最大容量两个参数。其他的选项不需要的可以去掉,避免不必要的性能开销。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-343330-1-1.html 上篇帖子: weblogic切换域后项目无法启动 下篇帖子: weblogic下部署报javax.el.expressionfactory
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表