2

我面临一个问题,实际上我在我的项目中使用 c3p0 进行连接池,它还使用 Spring、Hibernate 和 JSF。我的问题是,在我的网页中,我们有一个名为“注销”的链接,当用户单击注销时,应该释放连接,并且 www.google.com 回到池中,这怎么可能。

在此先感谢普拉尚特

4

1 回答 1

1

您期望的是控制登录系统的并发用户数

当第三个用户尝试登录时,他应该等待连接释放

现在,您可以使用并发计数器来实现它

  • 创建一个过滤器来过滤所有请求。
  • 每当创建新请求时,都会增加计数器
  • 当用户注销时减少计数器
  • 当计数器达到最大值时,使该线程等待直到插槽可用。

您可以通过 JMX 或单独的管理控制台控制最大用户数。此外,当处理它的线程终止时,应该释放一个连接(因为会话对象没有任何引用,它可以被 GC 处理,超时后它将在池中重用)。

最好不要使用数据库资源造成瓶颈。

于 2012-04-10T11:48:22.437 回答