问题标签 [jta]
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 - JTA 同步和超时
当使用 Java Transaction API (JTA) 并且我向当前事务注册了同步时,如果事务超时,是否会调用 afterCompletion() 方法?如果是这样,什么时候会调用 afterCompletion() 方法,即一旦事务运行超过分配的超时值,或者当事务后超时的第一个操作发生时?status 参数有什么值(我假设它是 STATUS_ROLLEDBACK)?
spring - Spring/JTA/JPA DAO integration test doesn't rollback?
My DAO integration tests are failing because entities created during the tests are still in the database at the start of the next test. The exact same behavior is seen from both MySQL 5 and H2.
The test classes are annotated with:
The transaction bean configuration in the test application context is as follows:
The entity manager is configured as follows:
Everything in the log files seem to be fine...I can see messages from Spring about rollback and from Atomikos about rollback as well. But frankly, the logs are so huge and so complex, I could easily be missing something...
Yet the inserted test data remains! Any clues?
java - 在 Java EE 中重新运行失败的容器管理事务
我有一个使用 Java EE Bean Managed Transactions 的遗留系统的情况。LockAcquisitionException
当它试图检索它刚刚创建的东西时,它会被抛出。
我最初的想法是这样的:
但是 - 当进行递归调用时,事务已经终止 - 而且它似乎没有创建一个新的。我尝试过不同TransactionAttributes
的,但似乎没有什么不同。还尝试自己管理交易(em.getTransaction()
),但这在 CMT 中是非法的。
我不是在寻找一个优雅的解决方案——正如我所说,这是遗留问题,我只需要对它进行分类的东西,直到整个东西在几个月内被替换!
干杯。
transactions - EJB 3 中的事务(原子性属性)仅适用于数据库操作——对吗?
我知道事务可以用来实现原子性。
就像如果methodOne()
methodTwo()
methodThree()
被合并到一个事务中一样,如果任何方法失败,整个操作都会回滚。回滚将导致数据库级别的回滚,因此数据库将进入一个状态,就像它在事务之前一样。
但是,如果这些方法对状态变量或静态变量进行了更改或写入文件系统中的某些文件怎么办?我的理解是,“回滚”不适用于此类非数据库修改,并且这些更改不会撤消。我的理解对吗?
transactions - BMT 交易可以加入现有交易吗?
我发现在会话 bean 中,在使用 Container-Managed-Transactions 时,可以使用 REQUIRED / SUPPORTS 等事务属性使事务与现有的客户端事务连接。
在使用 Bean-Managed-Transaction 时,有没有办法使该事务与现有的客户端事务连接?
java - 简单的 JOTM 问题
我开始使用 JOTM 并有几个简单的问题:
- 如果我启动一个嵌入式 JOTM 实例,我是否可以在远程数据库(具有启用 XA 的驱动程序)和由第 3 方客户端启动的本地 JMS 队列之间执行两阶段提交?
- 如果远程客户端正在执行事务或仅当事务是通过本地客户端启动时,我的 JOTM 实例是否需要类路径上的数据库和 JMS 提供程序 .jar 文件?
问候,
克里斯
java - 使用 InitialContext 获取 OracleXADataSource
我正在开发一个在 WebLogic 10 上运行的应用程序,当然还有在 java 中运行的应用程序。
好的,问题是我正在使用 oracle.jdbc.xa.client.OracleXADataSource 来管理事务,并且我还尝试使用 InitialContext 设置 OracleXADataSource 对象,如下所示:
但是当我运行应用程序时,这会抛出这个:
谁能告诉我为什么我不能将 RmiDataSource 转换为 OracleXADataSource ?
--EDIT-- 根据这个 oracle 示例,代码应该可以工作,不是吗? http://www.oracle.com/technology/sample_code/tech/java/codesnippet/j2ee/jdbc/JDBC_in_J2EE.html
jpa - ejb3-using-2-persistence-units-within-a-transaction
我在使用以下技术堆栈从同一事务中连接到 2 个持久性单元时遇到问题,
WLS 10.3.x, Eclipselink 2.1, Oracle 11g JDBC driver, Informix 10 JDBC driver
使用来自此 SO帖子的输入,我使 oracle 数据源符合 XA 和 Informix ds“模拟 2 阶段提交”并且事情开始起作用。但是,现在我遇到了一个奇怪的问题。
我正在使用独立的 java 客户端来调用我的 ejb 3 SLSB,它又调用 JPA 实体。我面临的问题是它第一次工作,第二次它没有抛出任何异常,但没有更新任何一个数据库中的数据,第三次它抛出一个异常,说明“事务已经提交”,就好像应用程序一样服务器 JTA 事务管理器保留原始事务上下文。请注意,这 3 次调用是独立且连续的,其中每次调用都在客户端退出客户端进程时完成。这个问题非常一致,每次我重新启动应用服务器时都会以完全相同的顺序发生。
感谢任何输入!
jdbc - WebSphere 本地事务包含边界问题 J2CA0086W
在 WebSphere 中,如果您编写代码打开两个并发数据库连接,您会收到以下形式的错误:
J2CA0086W: 可共享连接 MCWrapper id 556e556e 受管连接 WSRdbManagedConnectionImpl@52365236 状态:来自资源 jdbc/abc 的STATE_TRAN_WRAPPER_INUSE 在本地事务包含边界内使用。
我们的框架允许我们这样做(嵌套事务可以在单独的连接或多个命名事务上)。我已经看到很多关于关闭 WebSphere 中的某些开关以打开连接共享的参考,但没有关于如何设置此标志的详细信息。有人可以指出实现这一目标的步骤吗?
在“解决问题”下,我想知道如何将连接池设置为不可共享(假设确实解决了问题)。