小编bkh*_*jkt的帖子

有没有一种方法可以在运行时重新加载Tomcat的连接池?

我的情况如下:

  • 我必须维护一个以Tomcat(6)作为Web服务器的服务器,上面有一堆Web应用程序。这些Web应用程序由其他人维护。我们的服务器已连接到另一个部门的数据库服务器,该服务器具有我们的Web应用程序需要显示的信息。如果没有适当的池化策略,我们的服务器很快就会陷入灾难。

  • 现在,我向所有人介绍了Pooling(我选择了BoneCP-0.7),我们将创建一个驻留在Tomcat全局JNDI Context上的单个池,并让每个人都从中获得连接。我想那应该可以解决问题。

我担心的是:如何完全控制此Pooling?我有一些要求:

  • 我想在运行时手动或以编程方式重新加载DataSource配置(将在需要时尝试连接到备份服务器)

  • 更改可以不时更改的连接数(最小,最大,空闲连接)

  • 保持Tomcat存活为佳

  • 我打算构建一个使用JMX来连接和检索信息的警报系统,并有一个按钮来重新加载Pool(我知道所有Pooling策略都具有某种恢复能力,但是其他DB服务器会定期崩溃,因此请手动重新启动连接是比较可取的)。

我想到了一些可能的解决方案:

  • 告诉Tomcat重新启动其全局JNDI上下文
  • 告诉Tomcat重新启动其DataSource对象
  • 告诉BoneCP重新启动其池,并在必要时重新创建连接
  • 重新启动Tomcat本身

我的问题是:

  1. 我可以安全地执行上述解决方案而不影响Tomcat(和其他Web应用程序)吗?
  2. 我是否应该这样做呢?(我想只是重新启动Tomcat)

tomcat connection-pooling java-ee bonecp

5
推荐指数
1
解决办法
2938
查看次数

标签 统计

bonecp ×1

connection-pooling ×1

java-ee ×1

tomcat ×1