Tomcat jdbc 连接池在热的变化

Posted

技术标签:

【中文标题】Tomcat jdbc 连接池在热的变化【英文标题】:Tomcat jdbc connection pool changes in hot 【发布时间】:2012-02-21 20:35:58 【问题描述】:

有什么办法可以在hot时改变tomcat的池连接,例如释放一个连接,或者在不取消部署应用(如果数据源在应用中)的情况下减少最大连接数或停止tomcat(如果数据源在Tomcat中)

【问题讨论】:

通常数据源定义一次,因此逻辑连接(您从池中获得)重用相同的套接字(因为创建它很昂贵)。因此,在部署上下文(在应用程序中)或在容器启动中(在 tomcat 配置文件中)时,它们会被初始化。要重新实例化这些类,需要重新启动上下文或重新启动容器 【参考方案1】:

您可以使用 JMX(例如使用 jconsole)连接到正在运行的应用并进行一些操作。这实际上就是 JMX 的设计目的。

我机器上连接的jconsole JMX 路径是MBeans -> Catalina -> DataSource -> javax.sql.DataSource -> <my data source> -> Operations

我当前的 Tomcat 允许删除/添加连接属性、获取和关闭连接。如果这还不够,您可以轻松编写一个 MBean 来满足您的需求。

【讨论】:

【参考方案2】:

WebLogic 等一些企业容器支持您的要求,但据我所知 Tomcat 不支持。

【讨论】:

以上是关于Tomcat jdbc 连接池在热的变化的主要内容,如果未能解决你的问题,请参考以下文章

c3p0连接池在spring中的配置

JDBC使用数据池连接数据库

Tomcat JDBC连接池(Tomcat 9)

如何记录 Tomcat 7 JDBC 连接池、连接创建

Spring boot (11) tomcat jdbc连接池

测试 Tomcat 的 JDBC 池连接