首页 > 解决方案 > 在 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 一起工作。

标签: oraclewebspherejpa-2.0xadatabase-link

解决方案


你有两个选择:

  1. 如果不是您,那么应用程序的开发人员需要确保关闭数据库链接。如果您的最大活动数据库链接数为 4,那么您的应用程序中只能有 4 个活动会话/用户。
  2. 增加允许的数据库链接数

本文更详细地描述了修复程序/解决方法。


推荐阅读