问题标签 [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.
java - Why isn't bitronix (BTM) binding the user transaction into JNDI?
Looks like Bitronix, as suggested elsewhere, works very well. However, I'm stumped by a problem with it. I get this exception from Hibernate, when I attempt to save the session after I call TransactionManager.begin()
:
I can't see any evidence that Bitronix binds the user transaction to JNDI. How do I make it do that?
java - 将 Guice Persist 与 JTA / bitronix 一起使用时遇到问题
我们有一个已经使用 JPA 和 guice-persist 的现有 j2se 项目。现在,因为我们要添加 JMS 功能,所以需要 2-phase-commit 和 JTA。我们将使用 bitronix 事务管理器,因为没有容器(如 spring)。
据我了解,我们要做的第一件事就是将持久化单元的事务类型从RESSOURCE-LOCAL
更改为JTA
,因为我们希望数据库事务投票支持提交而不是提交。收集所有选票后,提交在第 2 阶段完成。
使用 guice-persist,我们将@Transactional
注解用于应该在单个事务中运行的方法。提供JPAPersistModule
了一个 EnitiyManagerFactory ,它用于 guice-persist 内部类,就像JpaLocalTxnInterceptor
包装了带注释的方法一样。
现在我得到了例外
因为对提供的实体管理器的JpaLocalTxnInterceptor
调用。getTransaction()
我现在很困惑。有什么方法可以将 guice-persist 与 JTA 一起使用,或者我们真的必须从项目中删除 guice-persist 吗?或者,如果我们想做 JTA(使用 Bitronix),是否有任何替代 guice-persist 的方法?
spring - Spring 集成 + 事务 + Bitronix
我有一个基于 Java 的 Web 应用程序。我正在使用 Spring Integration 与数据库(Jpa 出站适配器)和 Tibco EMS(JMS 出站适配器)集成。但是,现在我需要在需要相同消息的地方放置一些代码 1. 持久保存在数据库中和 2. 通过 JMS 发送。
问题是这些活动(1 和 2)需要在事务中发生。要么两者都发生,要么都没有。我正在尝试使用Bitronix来实现这一目标。但是到目前为止,我还没有完成它。我收到错误,用简单的英语表示(请原谅我的翻译)“我们无法在 XA 交易之外实现交易。
有没有人尝试过这个。任何帮助将不胜感激。
谢谢,
java - 如何在提交时使用 JTA 确认 JMS 消息?
我在 JTA、两阶段提交、JMS 和 JDBC 事务中苦苦挣扎。这个想法是(简而言之)
- 在队列中接收消息
- 执行一些数据库操作
- 确认消息,当数据库操作成功时
所以我得到了XAQueueConnectionFactory
,创建了XAQueueSession
,从会话中创建了一个接收器并设置了一个消息监听器。
在侦听器内部,在onMessage
方法中,我开始我的用户事务,执行 jdbc 内容并提交事务或执行回滚,如果出现问题。现在我预计(又名“希望”)当用户事务提交时消息会被确认。
但这并没有发生,消息仍在队列中,并且一次又一次地重新传递。
我错过了什么?我仔细检查了会话,确认模式确实是“ SESSION_TRANSACTED
”并getTransacted
返回 true。
我没有 Java EE 容器,没有 spring,没有消息驱动 bean。我使用独立的 JTA bitronix。
spring - 使用 jparepository 的 junit 测试未在数据库中创建对象
我正在使用 Spring 3.2.1.RELEASE、Hibernate 4.1.9.FINAL 作为 jpa 提供程序、spring data 1.2.0.RELEASE 用于存储库和 bitronix 2.1.3 作为事务管理器来启动一个项目。我对所有这些技术都是新手,所以如果我遗漏了一些重要的观点,我很抱歉。
我正在运行一个简单的单元测试来在数据库中创建一个用户对象:
我使用的 test-context.xml 如下:
Repository 实现是一个标准的 JPARepository:
并且服务实现只调用存储库:
问题是当我执行测试时,它通过了,但没有在数据库中创建用户。我认为这可能是因为回滚行为,所以我在用户测试中设置了 defaultRollback=false。以下是事务框架在设置为 DEBUG 时提供的一些可能相关的信息:
日志显示 testException=[null] 但我不知道为什么会这样。我什至尝试使用 JPARepository 提供的 saveAndFlush() 方法但是这样做我得到了错误javax.persistence.TransactionRequiredException: no transaction is in progress
所以如果有人知道我我做错了,可以为我指明正确的方向,我将非常感谢您的帮助。
oracle - Spring 事务不适用于 Oracle Express
我有一个简单的独立应用程序来测试 Spring 的事务管理。拥有 Oracle Express Edition。运行以下命令以启用 XA
我的 Java 代码大致如下:
所以所有的想法都是看到事务回滚。我运行了几个配置示例,并且记录一直被提交。不执行回滚。没有错误没有,只有预期
我的最后一个配置是这样的:
activemq - 获取错误:无法提交在 activemq 中的全局事务中登记的资源
您能否帮助解决 Activemq 和 Oracle 和 Bitronix 上的 XA 事务问题。我有一个activemq,并使用嵌入的camel.xml 将消息从一个队列路由到oracle db。这是独立Activemq的conf文件夹中camel.xml文件的内容。
当我运行 Activemq 并向 example.A 队列发送消息时,没有在 db 上插入任何内容并且消息从队列中出列,我在 activemq 日志中收到此错误:[org.apache.camel.RuntimeCamelException - java.sql.SQLException: cannot提交在全局事务中登记的资源]
我还为 Oracle 数据库运行了这些 SQL 脚本:
以及以下赠款声明:
欢迎任何想法/解决方案!谢谢
oracle11g - Bitronix 连接重置问题
部署到我们的 linux 环境时,我似乎得到了这个错误,不知道这是什么意思
请有人可以帮我解释和可能的解决方法吗?
java.sql.SQLException:无法从包含具有 1 个连接的资源 actdb 的 XAPool 的 PoolingDataSource 池中获取连接.....(0 仍然可用)位于 bitronix.tm.resource.jdbc.PoolingDataSource.getConnection (PoolingDataSource.java:262) ~[btm-2.1.3.jar:2.1.3] at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) ~[spring-jdbc-3.1.2. RELEASE.jar:3.1.2.RELEASE] 引起:java.sql.SQLException:IO 错误:连接重置在 oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:428) ~[ojdbc5-11.2.0.2.jar :11.2.0.2.0] 在 oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:536) ~[ojdbc5-11.2.0.2.jar:11.2.0.2.0] 在 oracle.jdbc.driver.T4CConnection.(T4CConnection .java:228) ~[ojdbc5-11.2.0.2.jar:11.2.0.2.0] 在 oracle.jdbc.driver。T4CDriverExtension.getConnection(T4CDriverExtension.java:32) ~[ojdbc5-11.2.0.2.jar:11.2.
java - H2 数据库/Bitronix w/o Java EE
对于功能的简单测试(按照教程),我尝试使用 Bitronix 和 H2 内存数据库设置原始 JTA 环境。该测试应该在一个简单的 Java 应用程序(没有 Java EE、没有服务器等)中作为单元测试运行
不幸的是,我没有让它运行,这是我的设置:
我按照教程添加了一些罐子(通过 maven):
- btm、h2、hibernate-entitymanager 和 hibernate-jpa-2.0-api
我在类路径中添加了 persistence.xml、hibernate.cfg.xml 和 jndi.properties 文件。
在测试方法(脏...)中,我输入了以下代码:
/li>
这是我的 persistence.xml 配置:
而 jndi.properties:java.naming.factory.initial=bitronix.tm.jndi.BitronixInitialContextFactory
问题是:我得到了这个堆栈:
所以这里肯定有问题。你能帮助我吗?