【问题标题】:Hibernate getCurrentSession behavior with async servlet使用异步 servlet 的休眠 getCurrentSession 行为
【发布时间】:2012-04-11 19:30:37
【问题描述】:

Servlet 3.0 异步 API 的内部指定 Servlet 由多路复用器线程池处理。 getCurrentSession 的行为是什么?它会保持会话打开,直到多路复用器线程由于空闲而被破坏?

【问题讨论】:

    标签: java hibernate servlets


    【解决方案1】:

    Servlet 请求一直由线程池处理,因此 Servlet 3.0 在这里没有引入任何新内容。从getCurrentSession() 获得的线程绑定Sessions 在事务提交后(默认情况下)会被关闭,因此只要正确实现事务管理,线程池应该不会有任何问题。

    Servlet 3.0 的新功能是异步请求处理的不同阶段可以由不同的线程处理,因此您不能在这些阶段使用线程绑定Session。但是,您仍然可以在单个处理阶段中使用线程绑定的Session

    异步处理也给 Open Session in View 模式带来了问题。

    但是,只要您不使用异步 API,所有这些问题都无关紧要。

    【讨论】:

      猜你喜欢
      • 2011-12-24
      • 2015-11-12
      • 2011-04-17
      • 2015-03-20
      • 2016-04-19
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      相关资源
      最近更新 更多