物理连接关闭
WeblogicServer日志:
####<2014-9-5 上午02时10分12秒 GMT+08:00><Info><JDBC><nw_cpees_pichuli_3><BATCH4><Thread-2574368><<anonymous>><><><1409854212313><BEA-001128><或脊纤Connection for pool "SCDS" closed.>
在Weblogic Server日志中可以观察到大量的Connection for pool"SCDS" closed信息,表示系统在某一时刻会批量关闭一批连接,一般断掉物理连接会这么做(WebLogic配置池收缩也会这么做,如果未配置的话默认为900s检查一次,从您的配置文件发现未配置池收缩)。从线程名称看,是应用程序的线程关闭了连接。且在应用日志发现有大量如下日志信息:
972102: 0E9F01ITRG2C594F: 220809998 INFOcn.gwssi.common.dao.ds.source.DBController(close:321) - [gwssi] 线程[972102]关闭数据库连接;连接时间:2014/09/15 08:30:20 143;关闭时间:2014/09/15 08:30:20 147
建议让开发人员检查程序,为什么要关闭物理连接。一般我们不建议应用程序直接管理连接池的连接,这些都是Weblogic自身管理的,不然容易造野渣成混乱。应用程序只在需要时从连接池中获取连接,使用完成后调用connection.close()方法把连接还给池即可。(这里的close不是关闭连接物理连接,而是把连接还给连接池,以便应用程序再使用)
连接池参数不合理
WeblogicServer日志:
#####<2014-9-15 上午09时10分58秒 GMT+08:00><Info><Common><nw_cpees_pichuli_3><BATCH4><Thread-973306><<anonymous>><><><1410743458081><BEA-000628><Created "1" resources for pool"SCDS", out of which "1" are available and "0"are unavailable.>
在Weblogic Server日志中可以观察到大量的上述信息,表示系统业务高峰期时大量创建连接,另与现场工程师沟通发现出现过Reachedmaximum capacity of pool信息。可以看出当前连接池参数设置稍有不合理之处衫仿
数据库查询连接异常情况:
查询当前占用数据库连接较多的主机和登录用户名
select count(*),SCHEMANAME,machine from v$session group by SCHEMANAME,machine
如果某一主机占用连接数很大,明显不正常,进一步,检查造成这种情况的sql(最近执行过的):
select count(*),v.PREV_SQL_ADDR,v.PREV_HASH_VALUE from v$session v group by v.PREV_SQL_ADDR,v.PREV_HASH_VALUE order by count(*) desc
查询相关的SQL内容:
select * from v$sql s wheres.ADDRESS='C0000013B7BE85D8' and s.HASH_VALUE='32127143'
定位到sql后,修改未关闭连接处。
1、在weblogic的控制台中,点击“服务”,在左侧树形菜单中,选择“日志”,在右侧的旦塌“日志设置”中,点击“新建”,输入日志名称,选择“日志类型”为“文件”,点击“下一步”;2、在“唯敏日志文件”页面中,设置“日志文件名”,“日志文件路径”,指迟枝“日志文件大小”,“日志文件最大数量”,“日志文件切割”,“日志文件切割时间”,点击“完成”;
3、在“日志设置”页面中,点击“应用”,完成weblogic的out日志切割设置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)