java - Tomcat 中的连接池 Scanario

标签 java database tomcat jdbc connection-pooling

我正在尝试了解数据库连接池中的特定场景。对此的任何指示都会非常有帮助。

设置:

  1. Tomcat 网络服务器
  2. MySQL 服务器(最大连接数 = 18)

webapp的配置:
webapp 的 context.xml 具有数据库连接池的这些参数:

<Context path=...
   <Resource name=... maxActive="20" maxIdle="18" 
    removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
    validationQuery="select 1" testOnBorrow="true"... />
</Context>

场景:
webapp 打开和关闭了很多连接。但是,当 web 应用程序不再与 dB 进行交易时,池会保留其中的 18 个(因为 maxIdle=18)。
此时,一个单独的纯 Java 独立应用程序请求数据库连接。 MySQL 服务器将如何响应?

  1. 它会通过关闭池中持有的空闲连接来提供连接吗?
  2. 它是否会拒绝连接,因为最大数量的 dB 连接已经打开(由池持有)

如果我不清楚场景,请告诉我,我会进一步澄清。

干杯, 罗黑特什

最佳答案

数据库服务器不知道打开的连接是否来自池。对于数据库服务器来说,它只是一个打开的连接,它永远不会主动关闭它。

关于java - Tomcat 中的连接池 Scanario,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16806218/

相关文章:

java - 无法对批处理创建的文件执行任何操作

java - Spring Tool Suite Maven配置问题

tomcat - 如何在 Tomcat 6 上配置 SSL 证书?

tomcat - 如何从 tomcat 日志中删除日期模式

java - 如何将月份缩写为 3 个字符?

java - 如果 jar 已经在运行,则阻止它运行?

php - 哪种是编程和显示数据库中多对多关系的最佳且简单的方法

sql - 如何从 Visual Studio 2013 或 2010 中的解决方案资源管理器运行 sql 脚本

php - 如何创建包含用户的所有特定行的选择?

java - 将 Axis 安装到 Tomcat 容器