合理设置连接池大小:根据应用并发需求调整Initial Capacity(初始连接数,建议设为预期峰值的1/3~1/2)、Max Capacity(最大连接数,需结合数据库授权数和服务器资源,如CPU核心数×5~10)和Min Capacity(最小空闲连接数,保持少量空闲连接以应对突发请求)。避免设置过小导致频繁创建/销毁连接,或过大浪费数据库资源。
配置连接增长与收缩策略:设置Capacity Increment(每次扩展的连接数,建议为5~10),避免一次性创建过多连接冲击数据库;启用Allow Shrinking(允许收缩,默认true)并设置Shrink Period Minutes(收缩间隔,如15~30分钟),当连接数低于Min Capacity时自动回收空闲连接,释放资源。
启用连接有效性测试:设置Test Reserved Connections(借用时测试连接)、Test Released Connections(释放时测试连接)为true,并指定Test Table Name(如Oracle的DUAL表或MySQL的SELECT 1),定期检查连接有效性,避免将无效连接提供给应用。
调整连接超时参数:设置Inactive Connection Timeout(非活动连接超时,如300~600秒),回收长时间未使用的连接;设置Login Delay Secs(创建连接延迟,如2~5秒),避免短时间内大量连接请求冲击数据库。
调整文件描述符限制:编辑/etc/security/limits.conf文件,增加WebLogic用户的文件描述符限制(如weblogic soft nofile 65535、weblogic hard nofile 65535),避免因连接数过多导致“Too many open files”错误。
优化TCP/IP参数:编辑/etc/sysctl.conf文件,调整以下参数提升网络性能:
net.ipv4.tcp_fin_timeout=30(TCP连接超时时间,减少TIME_WAIT状态连接);net.ipv4.tcp_tw_reuse=1(允许复用TIME_WAIT状态的连接);net.core.somaxconn=1024(监听队列最大长度,避免连接被拒绝);sysctl -p使配置生效。启用连接泄漏检测:在WebLogic控制台的Connection Pools→Diagnostics中,启用Connection Leak Profiling,设置泄漏阈值(如30秒),当连接未在规定时间内释放时,日志会记录“A JDBC pool connection leak was detected”信息,帮助定位泄漏代码。
分析日志与监控指标:定期检查WebLogic日志(AdminServer.out、server_name.log)中的连接相关错误(如ORA-01000: maximum open cursors exceeded);使用WebLogic控制台的Monitoring→JDBC→Connection Pools查看Waiting For Connection High Count(等待连接的高峰数)、Current Capacity(当前连接数)等指标,判断连接池是否成为瓶颈。
关闭无用服务:停止WebLogic中不必要的服务(如不必要的JMS、JMX服务),释放系统资源,减少对数据库连接的占用。
使用高性能负载均衡:通过WebLogic集群实现负载均衡,将请求分发到多台服务器,降低单台服务器的连接压力;配合Nginx/Apache作为反向代理,提升请求处理能力。
定期维护数据库:优化数据库性能(如添加索引、优化SQL语句),减少数据库响应时间,间接提升连接的使用效率;定期重启数据库,清理过期连接和缓存。