asynchronous - EJB 3.1 中的 @Asynchronous 是否在 Async 方法完成时关闭/释放连接
问题描述
在 EJB 3.1 中,我们使用 @Asynchronous 注释了一个方法,并使用 Future.get 来获取结果。
问题是当我们执行 future.get() 时,连接池中的数据库连接和资源是否被释放,而这些资源正在用于该异步方法?
解决方案
数据库连接根据您配置的所用应用程序服务器的连接池策略关闭。
在谈论会话 bean 和容器管理的事务时,连接在最后返回到被调用业务方法的事务范围。
由于带有注释的会话 bean@Asynchronous
不支持事务传播(例如,参见 EJB 3.2 规范 4.5.3),如果方法配置为REQUIRED
或,则每次调用业务方法都会创建一个新事务REQUIRES_NEW
。因此,此事务范围以被调用的业务方法返回而结束。
推荐阅读
- jquery - 如何在 Handsontable 中使用自定义渲染器对列进行排序?
- ios - swift iOS更大的标题文本具有不同的颜色
- highcharts - Highcharts多个yAxis,第二个yAxis标签没有显示但标题是
- java - 如何在 Linux 中运行 LightWeight 并行 Java JAR 文件
- java - 删除 char 以按字母顺序打印最长的字符串
- javascript - Kendo UI - 弹出窗口
- reactjs - 反应清理功能不清理状态
- c# - 将 C# 7.2 'in' 参数修饰符放在任何地方有用吗
- jquery - 如何在 jquery ui 中自定义对话框图标
- javascript - Bootstrap btn-group 下拉点击 dropdown-item