ARJUNA012140:不允许添加多个最后资源

2024-06-04

我有 2 个数据源,在一个方法中,我需要从 2 个数据库中写入和读取。数据库是 PostgreSQL,我的 EAR 应用程序在 wildfly-16 上运行。

我无法以同一方法使用 2 个数据库连接

好的,我知道,因为系统无法管理跨不同数据库的事务。

所以我拆分了 ejb 中的方法:

@TransactionAttribute(TransactionAttributeType.NEVER)
public Response mainMethod(String parameter) {
   method1();
   method2()
}

@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
private void method1(){
    ...write on database 1...
}

@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
private void method2(){
    ...write on database 2...
}

为什么我仍然遇到同样的错误?调用不是由两个不同的事务管理吗?

ARJUNA012140: Adding multiple last resources is disallowed. 
Trying to add LastResourceRecord(XAOnePhaseResource(LocalXAResourceImpl@594d9ba8[connectionListener=677e78 connectionManager=2a095926 warned=false currentXid=< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffffc0a86e69:-9dc6f57:5d08b51e:f58, node_name=1, branch_uid=0:ffffc0a86e69:-9dc6f57:5d08b51e:f8a, subordinatenodename=null, eis_name=java:/jboss/datasource/db1 > productName=PostgreSQL productVersion=10.8 (Ubuntu 10.8-0ubuntu0.18.04.1) jndiName=java:/jboss/datasource/db1])), 
but already have LastResourceRecord(XAOnePhaseResource(LocalXAResourceImpl@39fc2dc2[connectionListener=3724f31c connectionManager=39a995fb warned=false currentXid=< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffffc0a86e69:-9dc6f57:5d08b51e:f58, node_name=1, branch_uid=0:ffffc0a86e69:-9dc6f57:5d08b51e:f64, subordinatenodename=null, eis_name=java:/jboss/datasource/db2 > productName=PostgreSQL productVersion=10.8 (Ubuntu 10.8-0ubuntu0.18.04.1) jndiName=java:/jboss/datasource/db2]))

注释在幕后使用动态代理,因此不适用于私有方法或内部调用的公共方法(在this)。您必须在不同的 EJB 中声明两个方法。

否则关于您的错误,系统can使用 XA 管理跨不同资源的事务。

只需将您的数据源之一切换到 xa-datasource 即可解决该问题。请注意,您可以在 XA 事务中拥有一个非 xa 数据源,这要归功于LLRTO https://docs.oracle.com/cd/E13222_01/wls/docs92/jta/llr.html但不是两个(这就是阿朱那错误的含义)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARJUNA012140:不允许添加多个最后资源 的相关文章

随机推荐

  • Facebook 的请求对话框可以用作 display:iframe 或 display:page 吗?

    Facebook 的所有对话框示例都以 http www facebook com dialog xxx yyy 的形式显示将用户重定向到的页面 但请求对话框除外 它显示了在JavaScript SDK http developers fa
  • 支持全方向动画的扩展器

    我的目标 是创建一个带有扩展动画的自定义扩展器 并且应该支持所有方向 我尝试过的 我在以下人员的帮助下实施了一个解决方案this http www codeproject com Articles 248112 Templating WPF
  • 当列表失去焦点时,WPF SelectedItem 颜色消失

    我有一个WPFWindow其中基本上有一个ListBox显示项目列表 然后我有一个ListView基本上显示的详细信息SelectedItem in the ListBox 问题是 当焦点不在ListBox突出显示的颜色消失了 我无法再看到
  • 从本机 C++ 反向 PInvoke

    我当前正在尝试从非托管 C 应用程序调用 C DLL 中的函数 在网上搜索了几个小时后 我发现我有几个选择 我可以使用COM DllExport 或对委托使用反向 PInvoke 最后一个听起来对我最有吸引力 所以在搜索之后我最终找到了he
  • 无法在 Android 应用程序中使用 jwplayer

    我正在开发一个 Android 应用程序 我想从 URL 动态播放一些视频 因此 我在布局中放置了一个 Web 视图 并查看一个包含 jwplayer 代码的 html 文件 但 jwplayer 不在那里 并且 Web 视图仅显示 正在加
  • 如何设置 Hibernate 读取/写入不同的数据源?

    使用 Spring 和 Hibernate 我想写入一个 MySQL 主数据库 并从基于云的 Java Web 应用程序中的另一个复制从属数据库中读取数据 我找不到对应用程序代码透明的解决方案 我真的不想更改我的 DAO 来管理不同的 Se
  • 适用于 Android 的 Visual Studio 2015 RC 模拟器无法启动

    我的 Android 版 Visual Studio 2015 RC 模拟器有问题 当我开始调试 F5 或 工具 gt Visual Studio Emulator for Android 时 模拟器未启动 该进程卡在 正在准备虚拟机 上
  • 如何在谷歌colab中安装pyearth?

    这曾经对我有用 但两天后我遇到了这个问题 pip install sklearn contrib py earth Collecting sklearn contrib py earth Using cached https files p
  • qUnit:在 qunit-fixture 之外编写的 Twitter Bootstrap 模式

    我在为使用 Twitter Bootstrap 的项目编写 qUnit 测试时遇到了困难 当生成模态时 它将覆盖层放在 qunit fixture 之外 因此当运行下一个测试时 覆盖层不会被删除 有人遇到这个问题吗 点击事件 链接到jsfi
  • Postgresql:删除某些类型的数字之间的空格

    我有一列地址 例如 01031 970 S o Paulo SP BR 我想删除邮政编码之间的空格 邮政编码可以出现在地址的任何位置 例如 S o Paulo 01031 970 SP BR 结果应该是 S o Paulo 01031970
  • 比较两个表并找到匹配的列

    我有两个表 table1 和 table2 我需要编写一个选择查询 它将列出两个表中存在的列 mysql 我需要为不同的桌子做 一次2个 这可能吗 我尝试使用INFORMATION SCHEMA COLUMNS但我无法做对 SELECT a
  • 我们是否可以为测试、阶段和生产等不同环境的 sendgrid webhook 设置单独的 URL

    我正在尝试为发送电子邮件时触发的事件设置 sendgrid webhooks 等 有没有办法传递像 twilio 这样的 URL 或任何其他设置更改 允许我为不同的环境添加更多 URL 我还试图区分测试和产品 例如 Test test ca
  • 保护存储过程

    我想知道是否有一种方法可以对某些用户隐藏存储过程的文本 我正在使用 MySQL 5 1 48 和 Net Connector 6 2 3 以及 Visual Studio 2008 SP1 我在 MySQL 中有两个用户 一个是 root
  • 相机结果始终返回 RESULT_CANCELED

    我想用我的相机拍照 我只是暂时需要它们 所以我执行以下操作 private void takePicture Intent intent new Intent MediaStore ACTION IMAGE CAPTURE if inten
  • Spring @Autowired 不工作

    我在自动连接注释方面遇到一些问题 我的应用程序如下所示 这是控制器 Controller public class MyController Autowired Qualifier someService private SomeServi
  • Apollo 服务器:将参数传递给嵌套解析器

    我的 GraphQL 查询如下所示 p1 property someArgs some value id nestedField id moreNestedField id 在服务器端 我使用 Apollo Server 我有一个解析器pr
  • 获取钛合金中点击的TableRow的ID?

    我是 Titanium 和 Backbone 的新手 我以前使用过 JS 框架 最熟悉 Knockout js 但 Backbone 及其与 Alloy 的工作方式需要一些时间来适应 我想做一些非常简单的事情 我有一个绑定到 TableVi
  • 如何对ViewPager中的所有页面使用单个Fragment?

    在我的申请中 我必须在以下位置显示学生详细信息ViewPager 我使用了一个片段 比如说StudentPageFragment 我在中编写小部件初始化代码onCreateView like public static Fragment n
  • 导入mysql数据库出错

    我导出我的数据库并导出到另一台计算机使用 phpmyadmin 但它错误 静态分析 分析过程中发现2处错误 意想不到的角色 靠近位置 53 的 无法识别的语句类型 位置 1 的 div 附近 SQL查询 div class error h1
  • ARJUNA012140:不允许添加多个最后资源

    我有 2 个数据源 在一个方法中 我需要从 2 个数据库中写入和读取 数据库是 PostgreSQL 我的 EAR 应用程序在 wildfly 16 上运行 我无法以同一方法使用 2 个数据库连接 好的 我知道 因为系统无法管理跨不同数据库