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 连接池在热的变化的主要内容,如果未能解决你的问题,请参考以下文章