问题标签 [bitronix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
773 浏览

mysql - 在 moqui 中,配置使用 mysql 并加载种子数据

在moqui中,我试图配置为使用mysql,在defaultconf中注释掉derby和未注释的mysql,我将连接器复制到框架lib,在框架build.gradle中包含依赖项,在运行负载时,我得到这个错误 - java.lang .reflect.InvocationTargetExceptionjavax.management.InstanceAlreadyExistsException: bitronix.tm:type=JDBC,UniqueName=DEFAULT_transactional_DS,Id=0 - 感谢您的帮助

0 投票
1 回答
2404 浏览

transactions - 无法提交会话或回滚

我正在使用 jBPM5,并且我已经将 Bitronix 事务管理器 (BTM) 配置为 jBPM 流程持久性单元使用的事务管理器。

过去两周一切正常,但突然开始失败,出现以下异常,导致我重新启动应用程序服务器。重新启动后,一切都按预期正常工作。

异常堆栈跟踪:

我们正在启动大量事务/工作流,并使用 5.5.0 的 jbpm 库版本。jbpm-human-task-core、jbpm-bpmn2、jbpm-persistence-jpa 的最终版本。

有人可以帮我指出正确的方向吗?

非常感谢,马扬克

0 投票
1 回答
3410 浏览

jdbc - 无法从 PoolingDataSource 的池中获取连接

这个生产问题现在占据了我的头。我已经配置为使用 Bitronix 作为带有 jBPM5 工具的事务管理器。它在很长一段时间内都可以正常工作,但突然开始出现以下异常。

异常堆栈跟踪

奇怪的是应用程序有足够数量的 XA 连接在 XAPool 中可用。它需要连接,尝试连接,无法连接,只是丢弃连接并采取新的连接来处理。

任何人都可以从这个问题中恢复过来吗?

更新1

经过一番尝试,我能够在本地重现相同的问题。一旦数据库连接被重置或我的应用程序和数据库之间的网络连接丢失,PoolingDataSource(由 Bitronix 提供)池中的池连接将变得无效。我的查询是为什么它无法自动恢复?有什么我们可以自动恢复或建立新连接的原因吗?

我正在使用btm版本2.1.4

谢谢,马扬克

0 投票
1 回答
2590 浏览

java - 在 spring-boot 中创建 bitronix 事务管理器

我正在尝试按如下方式创建 spring-boot 事务管理器 bean:

但是我得到:

我相信这是因为我自己打电话给 .getTransactionManager() 。

但是,如果我不这样做,我将如何创建事务管理器。

等效的 xml 将是:

0 投票
1 回答
3012 浏览

java - 通过示例实现 JTA 事务资源

我正在尝试了解使远程/网络资源与 JTA 兼容的基本原则,而关于该主题的文档/博客/文章如此之少,我感到震惊。

假设我编写了自己的特殊类型的服务器,即“ IAmYourFaja ”服务器或“ IAYF ”。假设我编写/实现了我自己的基于 TCP 的网络协议,用于与该服务器交互,称为 IAYFCP(IAYF 通信协议)。最后,我编写了一个 Java 客户端库,用于通过 IAYFCP 访问并向远程 IAYF 服务器发送消息。还在我这儿?

现在我有一个用例,我需要执行以下分布式事务:

  1. 在关系/JDBC 数据库中插入一条记录;然后
  2. 向我的 IAYF 服务器发送消息;然后
  3. 将消息推送到 JMS 代理

我需要这些来进行所有事务,以便如果任何一个组件在任何时候发生故障,我都可以将它们全部回滚,并且这些网络资源中的状态不会发生任何改变。

最终目标是能够运行以下代码(此处为伪代码):

所以我使用的 JDBC 驱动程序和 JMS 库已经是 JTA 兼容的。这意味着要使此代码成为可能,我需要使我的 IAYF 客户端库也与 JTA 兼容。问题是,我不明白我需要实现哪些 JTA 接口:

所以有几个问题:

  1. 我需要实现哪个接口(以及为什么):XAResourceUserTransaction,或两者兼而有之?
  2. 这就是我需要做的所有事情来遵守 JTA 并使我的 IAYF 客户/服务具有事务性吗?我还需要做什么才能使上面的“JTA 示例”代码按预期工作?
  3. 对或错:Java EE 容器有自己的事务管理器,我可以使用接近零的配置来利用它们,但是,如果我在不符合 Java EE/JTA 的容器中运行我的应用程序,那么我需要提供自己的事务管理器,并且可以使用像BitronixAtomikos 之类的东西来实现这一点?
0 投票
1 回答
1812 浏览

java - 警告:使用 0 登记资源执行事务:Bitronix

在使用 Bitronix 将分布式事务执行到两个数据源时,我收到此警告“使用 0 登记资源执行事务”。有人可以帮助了解如何为全球事务争取资源。我的代码是:

0 投票
1 回答
335 浏览

postgresql - Vanilla Spring Batch Admin 和 JTA - 为什么提交会突然停止发生?

我有一个围绕 spring-batch 和 spring-batch-admim 构建的小应用程序,它大部分都在工作,然后我有一个面部表情,不得不向它添加 XA 事务。没什么大不了的,这是一个足够常见的模式。一旦我这样做了,提交就停止在任何事务管理器上发生。

spring-batch 启动器执行它的工作,日志说工作已提交,但提交从未发生。

我通过 spring 代码跟踪到 JDBC 驱动程序。在调试器中,我已经确认commit方法一直被调用到驱动程序中,但是在调用驱动程序的commit方法之前连接协议状态已经处于空闲状态,所以没有执行提交。在 beforeCommit 触发器中,连接似乎在提交之前返回到池中。

我已经确认在带有 org.apache.commons.dbcp.BasicDataSource 的 org.springframework.jdbc.datasource.DataSourceTransactionManager 和带有 bitronix.tm.resource.jdbc.PoolingDataSource 的 BitronixTransactionManager 下都表现出相同的行为

我确信我遗漏了一些明显的东西,但我看不出它是什么。如果这是正常行为,那么该产品将永远无法工作。有没有人有任何想法?

驱动程序提交的伪代码

环境:

事务管理器配置 (XML):

执行日志摘录:

0 投票
1 回答
494 浏览

spring - Bitronix + 弹簧测试 + 不同的弹簧型材

我有几个测试都扩展了定义 Spring 测试应用程序上下文的相同根测试。我的一个测试使用了不同的配置文件,所以我用 注释了子类@ActiveProfiles("specialTestProfile"),这个配置文件创建了一个特殊的模拟 bean,它被注入到上下文中。我想在执行此测试之前和之后清除我的上下文,但我没有找到正确的方法。我知道 Spring 测试框架做了一些上下文缓存,在我的情况下,我应该有两个不同的上下文,应该没有必要重新加载上下文,但它不起作用,因为如果我不这样做,bitronix 会产生这个奇怪的错误清理上下文:

即使我为每个测试类重新加载上下文(通过用 注释我的父类@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS),我仍然会在某些时候收到上述错误......你知道如何解决这个问题吗?

0 投票
1 回答
259 浏览

jboss7.x - HornetQ XA 不参与带有 Spring Boot 的 bitronix 事务

我正在尝试从独立的 Spring Boot 应用程序连接到在 JBoss 7.1.1 中运行的 HornetQ JMS 服务器。我可以使用如下配置访问服务器并将消息推送到队列:

但是,XA 连接不参与我通过 Spring Boot 的 bitronix 支持启用的 JTA 事务。数据库连接使用 JTA。如何让 Spring Boot 让这个 JMS 连接在其事务管理器中登记为 XA 资源?

0 投票
1 回答
542 浏览

java - What is the correct Transaction Manager to use in AS7 (and JBPM 6.2) in Java?

I hope someone can answer this before I spend hours trying to figure it out!

I'm using the PoolingDataSource Class to instantiate my transaction manager. However, I'm not having much success with it.

MySQL is my default database. I'm using:

I get this when I run the code: