WebSphere连接池夯住故障分析-阿里云开发者社区

开发者社区> 1835519634652392> 正文

WebSphere连接池夯住故障分析

简介: WebSphere是IBM的一款web应用服务器,数据库连接池对WebSphere运行起着至关重要的作用,在其运行过程中连接池夯住会给应用带来致命的影响。本文分享一个近期的客户案例,让大家感受如何快速定位解决此类问题。
+关注继续查看

本文节选自《云和恩墨技术通讯》(10月刊)

问题表现

WebSphere连接池夯住的主要表现为:WebSphere在运行过程中出现页面操作偶尔长时间没有反应,有时jdbc连接数达到最大值,同时发现数据库监听中的jdbc连接数飙高,运行不稳定。

分析过程

1. 监控连接池是否泄露

为运行server添加连接池诊断跟踪参数ConnLeakLogic=all:

./wsadmin.sh -user wasadmin -password wasadmin
set ds [$AdminControl queryNames"*:name=ds1,process=server1,node=app141Node01,j2eeType=JDBCDataSource,*"]
$AdminControl invoke $ds showPoolContents

查看产生的结果为:

    MCWrapper id 85b085b  Managed connection WSRdbManagedConnectionImpl@3f613f61  State:STATE_ACTIVE_INUSE Thread Id: 00000024 Thread Name: WebContainer : 0 Handle count 1 Used with transaction com.ibm.ws.LocalTransaction.LocalTranCoordImpl@432e432e;RUNNING;
    MCWrapper id 67236723  Managed connection WSRdbManagedConnectionImpl@4d134d13  State:STATE_ACTIVE_INUSE Thread Id: 00000024 Thread Name: WebContainer : 1 Handle count 1 Used with transaction com.ibm.ws.LocalTransaction.LocalTranCoordImpl@432e432e;RUNNING;
    MCWrapper id 37083708  Managed connection WSRdbManagedConnectionImpl@6b056b05  State:STATE_ACTIVE_INUSE Thread Id: 00000024 Thread Name: WebContainer : 2 Handle count 1 Used with transaction com.ibm.ws.LocalTransaction.LocalTranCoordImpl@432e432e;RUNNING;
    MCWrapper id 4dc44dc4  Managed connection WSRdbManagedConnectionImpl@6350635  State:STATE_ACTIVE_INUSE Thread Id: 00000024 Thread Name: WebContainer : 3 Handle count 1 Used with transaction com.ibm.ws.LocalTransaction.LocalTranCoordImpl@432e432e;RUNNING;
    MCWrapper id 39d039d0  Managed connection WSRdbManagedConnectionImpl@50875087  State:STATE_ACTIVE_INUSE Thread Id: 00000024 Thread Name: WebContainer : 4 Handle count 1 Used with transaction com.ibm.ws.LocalTransaction.LocalTranCoordImpl@432e432e;RUNNING;
    MCWrapper id 41e441e4  Managed connection WSRdbManagedConnectionImpl@78997899  State:STATE_ACTIVE_INUSE Thread Id: 00000024 Thread Name: WebContainer : 5 Handle count 1 Used with transaction com.ibm.ws.LocalTransaction.LocalTranCoordImpl@432e432e;RUNNING;
    MCWrapper id 38a938a9  Managed connection WSRdbManagedConnectionImpl@21392139  State:STATE_ACTIVE_INUSE Thread Id: 00000024 Thread Name: WebContainer : 6 Handle count 1 Used with transaction com.ibm.ws.LocalTransaction.LocalTranCoordImpl@432e432e;RUNNING;
    MCWrapper id 723b723b  Managed connection WSRdbManagedConnectionImpl@5a7a5a7a  State:STATE_ACTIVE_INUSE Thread Id: 00000024 Thread Name: WebContainer : 7 Handle count 1 Used with transaction com.ibm.ws.LocalTransaction.LocalTranCoordImpl@432e432e;RUNNING;
    MCWrapper id 7d6d7d6d  Managed connection WSRdbManagedConnectionImpl@31bb31bb  State:STATE_ACTIVE_INUSE Thread Id: 00000024 Thread Name: WebContainer : 8 Handle count 1 Used with transaction com.ibm.ws.LocalTransaction.LocalTranCoordImpl@432e432e;RUNNING;
    MCWrapper id 2c982c98  Managed connection WSRdbManagedConnectionImpl@13ee13ee  State:STATE_ACTIVE_INUSE Thread Id: 00000024 Thread Name: WebContainer : 9 Handle count 1 Used with transaction com.ibm.ws.LocalTransaction.LocalTranCoordImpl@432e432e;RUNNING;
  Total number of connection in unshared pool: 10

发现连接被10个线程占用,并且全部处于running状态。

2. 此时收集分析对应的javacore:

set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
$AdminControl invoke $jvm dumpThreads

发现线程都在等待下面的方法:

java.net.Inet4AddressImpl.lookupAllHostAddr

由此可以看到在jdbc申请时执行DNS Lookup时影响了性能。

3. 测试dns性能

nslookup TRFFDB1
....
NAME SERVER:   DNS.XX
ADDRESS:  XX.XX.1.10
looking up FILES
........

Lookup数据库的主机名时不稳定,时快时慢。

4. 查看WebSphere主机的/etc/hosts文件发现未配置db服务器的IP主机名映射。

问题原因

在jdbc申请db连接时,由于WebSphere主机的/etc/hosts文件中没有配置db服务器的 IP主机名映射,再加上本身DNS服务器的性能低下共同导致了这个问题。

故障解决及建议

  1. 每一台WebSphere主机/etc/hosts文件中配置db服务器的IP主机名映射。
  2. 增加连接池的初始值,尽量减少连接数的伸缩,在初始阶段就申请足够的连接数,保证在并发高时连接池已经保留了足够的连接数;同时考虑db层面能够允许的最大连接数。

活动预告:2019数据技术嘉年华于2019年11月15日-16日在北京举办,扫描下方二维码了解详情,欢迎大家携好友一同参会!
2019dtc.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
JDBC 连接 Oracle 11g Release 2
/********************************************************************************** * Created on Nov, 2011 Copyright(c) http://vigilance.co.in All Rights Reserved. ********************************
924 0
WebSphere连接池夯住故障分析
WebSphere是IBM的一款web应用服务器,数据库连接池对WebSphere运行起着至关重要的作用,在其运行过程中连接池夯住会给应用带来致命的影响。本文分享一个近期的客户案例,让大家感受如何快速定位解决此类问题。
741 0
走进JavaWeb技术世界3:JDBC的进化与连接池技术
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章首发于我的个人博客: www.how2playlife.com 本文是微信公众号【Java技术江湖】的《走进JavaWeb技术世界》其中一篇,本文部分内容来源于网络,为了把本文主题讲得清晰透彻,也整合了很多我认为不错的技术博客内容,引用其中了一些比较好的博客文章,如有侵权,请联系作者。
1916 0
淘宝视频内容标签的结构化分析和管理
淘宝视频是如何分类的?又是如何保持不同类别视频样本得到相对均衡?又是如何应用的?
136 0
weblogic连接RAC数据库
对于负载均衡的机器,要连接多个实例的数据库的时候,使用这种策略目前是比较好的一种方案,当然也可以使用weblogic自带的解决方案。 直接使用了RAC的负载均衡策略。   在Oracle中找到tnsnames.ora这个文件。
660 0
如何连接别人电脑上的ORACLE数据库
如何连接别人电脑上的ORACLE数据库 (以oracle9i版本为例,本机必须安装oralce9i的客户端) 第一步:orahome92-configuration and migration tools- net managers 第二步:在“服...
739 0
1
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载