oracle - 在 Java EE 容器管理事务中使用 Oracle DB 链接的 XA 数据源
问题描述
我有以下环境:
WebSphere 9 上的 EAR 应用程序,使用 XA 数据源用于 Oracle 19c 数据库的容器管理事务(我们将其命名为数据库“A”)。
问题是数据源(在某些事务中),即数据库“A”通过数据库链接调用数据库“B”(数据库“B”也是 Oracle 19c)。
由于 2 阶段提交,连接池收到“使用中的数据库链接过多”错误消息。假设最大。正在使用的数据库链接数为 4,如果我第 5 次刷新屏幕,我得到 SQL 异常。
在数据库属性中设置最大数据库链接使用参数只会延迟问题。
我无法控制(从应用程序的角度)关闭数据库链接。
ATM 我们已将数据源设置为非 XA 并且一切正常,但在某些时候我们需要手动处理包含一个数据源和 WebSphere MQ 的事务。
有人对此设置有任何想法或经验吗?
编辑:我试图让这个与 JPA 2.0 一起工作。
解决方案
你有两个选择:
- 如果不是您,那么应用程序的开发人员需要确保关闭数据库链接。如果您的最大活动数据库链接数为 4,那么您的应用程序中只能有 4 个活动会话/用户。
- 增加允许的数据库链接数
本文更详细地描述了修复程序/解决方法。
推荐阅读
- python-3.x - 如何从网络上抓取一个类的属性的所有子项?
- android - kotlin.TypeCastException: null 不能转换为非 null 类型 android.widget.TextView
- json - 使用 2 个主机名绑定部署 ARM 模板返回冲突错误无法修改,因为另一个操作正在进行中
- python - 在这个扩展 python 基类型的 __exit__ 函数中,三个参数来自哪里?
- python - 熊猫有没有办法在不命名特定列的情况下进行分组和计数?
- sql - 如何计算用户创建的字段 - Orcale SQL
- c# - 如何执行 WinAppDriverUiRecorder
- jquery - 自定义滚动条跨浏览器
- c# - XAML 中的 Unicode 幂符号
- sql - 列中的 SQL 函数