当前位置: 首页 > 知识库问答 >
问题:

Tomcat JDBC连接量vs netstat ESTABLISHED连接

澹台星光
2023-03-14

在我们的一个环境中,tomcat 8具有以下JDBC数据源配置:

<Resource   name="jdbc/mydatasource"
            auth="Container"
            type="javax.sql.DataSource"
            factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
            driverClassName="oracle.jdbc.OracleDriver"
            url="jdbc:oracle:thin:@myhostname:1521:dbname"
            username="username"
            password="password"
            removeAbandoned="false"
            removeAbandonedTimeout="300"
            logAbandoned="true"
            initialSize="5"
            maxActive="100"
            maxIdle="100"
            minIdle="5"
            maxWait="120000"
/>

netstat命令返回以下结果:

netstat -anu | grep ${pid}| grep ESTABLISHED | grep ${myhostname}:1521 | wc -l

55

这一结果在几天内保持稳定。

同时,我通过JMX监控tomcat数据源属性:

#0

#5

这些结果在几天内也保持稳定。

看起来tomcat创建了初始大小为5个连接的JDBC连接池,将空闲连接的数量保持在5个,但是由于某些原因,netstat显示的已建立连接的数量是原来的11倍。

当上下文中的minIdle=“5”时。xml和JMX显示numActive numIdle=5 netstat还应该显示5个已建立的连接,不是吗?

我假设,在维持JDBC池的同时,tomcat不断地打开和关闭到数据库的连接,从netstat的角度来看,这些连接保持在已建立的状态,直到被数据库删除为止。

我的问题是如何更改tomcat数据源配置,使netstat输出与此配置一致?

事先非常感谢。

共有1个答案

宁侯林
2023-03-14

这里有一些东西需要查看:
1)您的netstat命令只查看UDP连接(-u),这不是您想要的。改用:

netstat -ant | grep -c "${myhostname}:1521.*ESTABLISHED"

# -ant : all, numerical outptut, TCP connections
# grep -c : returns count of matches
# no need to grep PID unless you have more than one tomcat instance,
#  just matching host:1521 is enough.

2) 已建立连接上的本地端口是否正在更改?如果是,则池维护人员会主动打开和关闭连接
3)是否正确配置了DBCP JMX?也许你正在监视这一点,而不是你想要的。

要每1秒连续观察一次更改,请使用:

watch -n1 "netstat -ant | grep ':1521.*ESTABLISHED' | nl | tail -n 5"
    11  tcp        0      0 192.168.1.7:50890       172.17.0.23:1521     ESTABLISHED
    12  tcp        0      0 192.168.1.7:58192       172.17.0.23:1521       ESTABLISHED
    13  tcp        0      0 192.168.1.7:54224       172.17.0.23:1521        ESTABLISHED
    14  tcp        0      0 192.168.1.7:34500       172.17.0.23:1521     ESTABLISHED
    15  tcp        0      0 192.168.1.7:54888       172.17.0.23:1521      ESTABLISHED
 类似资料:
  • 如何为Kafka连接器启用jmx度量?我正在运行分布式连接。 我通过在中启用,为Kafka启用了jmx度量。 现在,尽管它已经开始为我提供很多与 Kafka 相关的指标,但我仍然看不到以下链接 http://kafka.apache.org/documentation.html#connect_monitoring 中提到的连接器特定指标。 下列域可用 JM实施 com.sun公司。管理 java

  • 我的设置如下:

  • 代码片段如下所示: 如果有人有决议,请帮忙?

  • 本文向大家介绍HTTP长连接、短连接?相关面试题,主要包含被问及HTTP长连接、短连接?时的应答技巧和注意事项,需要的朋友参考一下 在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个W

  • 问题内容: 我在两个表之间有多对多关系。 表包含我的餐厅。 表包含不同的类别。 表包含两列,每列分别包含两个表的ID。 以下陈述是我能想到的,但没有给我我想要的输出。 我希望输出是有关餐厅的信息,并在最后一列中是类别的连接行。 问题答案: 要串联值,可以使用。xml路径解决方案有误,应使用和特殊字符。 您也可以使用变量解决方案

  • 有人能告诉我在maven中scm连接和developerConnection之间的区别吗? 我正在尝试使用,它需要其中之一。 [错误]未能执行goal org . Apache . maven . plugins:maven-release-plugin:2 . 3 . 2:在项目was-topology-legacy-dsl上准备(default-cli ):缺少必需的设置:必须指定scm连接或