我有 4 个 Web 应用程序,它们对 Hibernate 实现有共同的引用,但在不同的 Tomcat 实例上运行。因此,例如,在 Hibernate 中配置的连接池的最小大小为 3(使用 c3p0
),将导致 12 连接打开(每个实例 3 个)当所有项目都在运行时。
我想与实例“共享”Hibernate 实现(因此总是打开 3 个连接而不是 12 个),我想知道实现它的最佳解决方案。
有什么建议吗?
谢谢
最佳答案
I'd like to "share" the Hibernate implementation with the instances (and so to have always 3 connections open instead of 12), and I was wondering about the best solution to achieve it. Any tips?
这不是一个好主意。简而言之,连接池的大小应该包含足够的连接来为传入的并发请求提供服务,而无需等待连接可用。对于 4 个应用程序,您很可能需要 3 个以上的连接。您的逻辑有问题(或不清楚)。
因此,我的建议是分配足够的资源并适当调整线程池和连接池的大小,以满足每个应用程序应该处理的并发请求,并且不会耗尽池。
另见
关于java - 在多个 Tomcat 实例上共享 Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3603092/