XA数据源在Java EE容器管理的事务中使用Oracle DB链接

问题描述

我有以下环境:

WebSphere 9上的EAR应用程序,使用针对Oracle 19c数据库的XA数据源进行容器管理的事务(将其命名为数据库“ A”)。

问题在于数据源(在某些事务中),即数据库“ A”正在通过数据库链接调用数据库“ B”(数据库“ B”也是Oracle 19c)。

由于两阶段提交,连接池收到“正在使用太多数据库链接”错误消息。假设最高如果我第五次刷新屏幕时出现SQL异常,则正在使用的数据库链接数为4。

在数据库属性中设置使用中的最大数据库链接参数只会延迟问题。

从应用程序角度看,我无法控制关闭数据库链接。

我们已经将ATM的数据源设置为非XA,并且一切正常,但是在某些时候,我们需要手动处理包含一个数据源和WebSphere MQ的事务。

有人对这种设置有任何想法或经验吗?

编辑:我正在尝试使其与JPA 2.0一起使用。

解决方法

您有两个选择:

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

This article详细介绍了修复程序/解决方法。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...