我试图了解数据库连接池中的特定场景。对此的任何指示都会非常有帮助。
设置:
- Tomcat 网络服务器
- 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 打开和关闭很多连接。但是,当 webapp 不再与 dB 进行交易时,池会保留其中的 18 个(maxIdle=18)。
现在此时,一个单独的 Pure Java 独立应用程序请求数据库连接。MySQL 服务器将如何响应?
- 它会通过关闭池中的空闲连接来提供连接吗?
- 它会拒绝连接,因为最大 dB 连接数已经打开(由池持有)
如果我对场景不清楚,请告诉我,我会进一步澄清。
干杯,罗希特什