【问题标题】:How to create custom Hibernate Session manager?如何创建自定义 Hibernate 会话管理器?
【发布时间】:2018-06-01 12:34:27
【问题描述】:

我有一个基本要求: 1)需要一个休眠会话管理器,每次我打开和关闭或使用会话做任何其他事情时都会调用它。 2)它应该作为休眠会话的包装器。 3) 例如:我创建了一个会话实用程序,它一次只允许创建 5 个会话,如果其中 5 个已被使用,我的请求必须等到我得到 5 个会话中的一个。

【问题讨论】:

  • 您的问题不太清楚。任何相关的代码或参考都会有所帮助
  • 任何解释你为什么要这样做而不是使用已经调试的现有基础设施的解释。
  • 这个论坛处理特定的 Java 编码问题。通常,问题应该与说明问题的示例代码一起发布。你的问题太笼统了。
  • 编辑了问题

标签: java spring hibernate threadpoolexecutor


【解决方案1】:

确实没有必要编写一个特殊的会话管理器来执行此操作,因为您可以利用连接池轻松地为您处理此行为。

您首先需要做的是使用最大可用连接数定义连接池,在您的情况下为 5。然后,您要配置连接池,使其具有合理的等待超时。只需了解此超时在拒绝服务攻击场景中可能会出现问题,因此使用风险自负。

在正确配置连接池的情况下,如果前 5 个正在执行一些需要几秒钟的长时间运行的任务并且第 6 个请求进来,它将等待从池中获取与数据库的连接,然后再继续,所以您的数据库在任何时候都只会发生 5 个并发连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-30
    • 2013-03-14
    • 2011-06-17
    • 2010-12-31
    • 1970-01-01
    • 2011-06-30
    • 2011-09-19
    • 1970-01-01
    相关资源
    最近更新 更多