问题标签 [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.

0 投票
1 回答
96 浏览

jta - 使用 JTA 时如何编写自动化集成测试?

我想为我正在处理的应用程序编写集成测试。它使用 JTA(多种资源)并在应用服务器内运行。为这种情况编写自动化测试的最佳方法是什么?使用像 atomikos 这样的独立事务管理器或以某种方式利用应用服务器 api/工具进行事务处理?

0 投票
2 回答
363 浏览

java - 如何将数据附加到 JTA 事务?(或唯一标识它)

我有一个 getStockQuote() 函数,它将从股票市场获取一个符号的当前股票报价。

我的目标是在 JTA 事务中,第一次调用 getStockQuote() 将获取股票报价,但同一事务中的所有后续调用将重用相同的股票报价(例如:它不会尝试获取新报价)。如果一个不同的事务开始,或者另一个事务同时运行,我希望另一个事务在第一次调用时获取它自己的股票报价。

这是为了尽量确保交易内的一致性——以便交易内的所有计算都基于相同的股票价格。

这类似于您可以将 JPA 提供程序配置为仅从数据库中获取数据库行一次,并使用缓存的值在事务中对同一数据库行进行后续访问。

有没有人有关于如何实现这一点的提示?

0 投票
2 回答
1261 浏览

java - JTA Transaction:如果发生异常但未在事务上调用回滚会发生什么?

我们有一些第三方代码,他们在其中执行以下操作

  1. 项目清单

    创建用户事务,例如

  2. 做一些持久化到数据库(通过 JPA)到 MySQL 数据库的工作

  3. txn.commit()

他们有异常块,但没有一个调用txn.rollback. 良好的编码习惯说,如果发生异常,他们需要调用回滚,但我的问题是如果 txn 未提交,并且发生异常,他们不调用回滚的负面影响是什么?

0 投票
2 回答
23934 浏览

java - Atomikos vs JOTM vs Bitronix vs?

我是 JTA 的新手,它是底层事务管理器。任何人都可以解释每一个的优点/缺点吗?随意添加我没有在标题中列出的其他内容。

另外,主要的应用服务器(WebSphere、JBoss、Glassfish)没有自己的符合 JTA 的事务管理器吗?在那些环境中,你还会使用这些第三方实现吗?

0 投票
2 回答
286 浏览

java - DAO 的集成测试是否应该在应用服务器中进行?

我正在开发一个三层应用程序,并且正在为持久层中的 DAO 创建集成测试。当应用程序在 Websphere 或 JBoss 中运行时,我希望使用这些应用程序服务器的连接池和事务管理器。当应用程序在 Tomcat 或 Jetty 中运行时,我们将使用 C3P0 进行池化,使用 Atomikos 进行事务处理。

由于这些不同的子系统,DAO 应该在完全配置的应用服务器环境中进行测试,还是应该在集成测试服务层时处理这些问题?目前我们计划为 DAO 集成测试建立一个带有非 JTA(即资源本地)事务的简单 JDBC 数据源,因此不涉及应用程序服务器......但这让我想知道我们不会发现的环境问题.

0 投票
2 回答
7184 浏览

jpa - JPA/JTA DAO集成测试如何获取JNDI数据源?

我有一个 JPA 应用程序,它在 persistence.xml 中指定了 JTA 事务。无论出于何种原因,我发现在使用 JTA 时,您还必须在 persistence.xml 中指定一个 JNDI 数据源。这很好,除非您尝试在容器外进行集成测试并且 JNDI 不可用。

我的问题是:

a) 无论如何将 jdbc 数据源注入我的 JTA 事务管理器?b) 如果没有,在集成测试期间如何处理 JNDI 查找?

编辑:启动集成测试时出现的错误是:

0 投票
1 回答
2378 浏览

hibernate - 在 Spring 上下文中创建 JPA EntityMananger 的问题

我有一个使用 Hibernate 作为 JPA 提供程序的 JPA/Spring 应用程序。在代码的一部分中,我必须使用 new 运算符在我的应用程序中手动创建一个 DAO,而不是使用 Spring DI。当我这样做时,Spring 不会处理 @PersistenceContext 注释。

在我创建 DAO 的代码中,我有一个 EntityManagerFactory,我用它来设置 entityManager,如下所示:

问题是当我这样做时,我得到一个休眠错误:

这是 spring 实体管理器工厂配置:

0 投票
2 回答
2014 浏览

hibernate - Atomikos 回滚不清除 JPA 持久性上下文?

我有一个 Spring/JPA/Hibernate 应用程序,并试图让它通过我针对 H2 和 MySQL 的 Junit 集成测试。目前我使用 Atomikos 进行事务处理,使用 C3P0 进行连接池。

尽管我尽了最大努力,但我的 DAO 集成其中一项测试因 org.hibernate.NonUniqueObjectException 而失败。在失败的测试中,我使用“new”运算符创建了一个对象,设置 ID 并在其上调用persist。

在前面的测试方法中,我做了同样的事情(createNewUser() 是一个帮助方法,它每次都创建一个具有相同 ID 的对象)。我确信创建和持久化具有相同 ID 的第二个对象是原因,但每个测试方法都在自己的事务中,并且我创建的对象绑定到私有测试方法变量。我什至可以在日志中看到 Spring Test 和 Atomikos 正在回滚与每个测试方法关联的事务。

我原以为回滚也会清除持久性上下文。凭直觉,我在错误测试方法的开头添加了对 dao.clear() 的调用,问题就消失了!!所以回滚并没有清除持久化上下文???如果不是,那是谁呢??

我的 EntityManagerFactory 配置如下:

0 投票
1 回答
21521 浏览

java - UserTransaction 和 EntityTransaction 之间的区别

UserTransaction标题说明了一切: a和 an 有什么区别EntityTransaction

我的基本理解是UserTransaction在需要 JTA 时使用(例如,对多个事物进行查询),并且EntityTransaction在仅需要 JPA 时使用(例如,当查询是原子查询时)。

这是两者之间的唯一区别还是还有更多?

0 投票
2 回答
1677 浏览

hibernate - 将 Spring、Hibernate、JPA 和 Tomcat 与多个数据库一起使用的选项

我有一个在 Spring 2.5.6、Hibernate 3.4(Hibernate 作为 JPA 提供程序)和 Tomcat 6 下运行的 Java Web 应用程序。我让它使用一个 DB 模式/持久性单元,但现在需要连接到 2 个模式/持久性单元. 我可以在不迁移到 JBoss 或 Glassfish 等 J2EE 容器的情况下执行此操作吗?我是否需要使用 JOTM 和全局/XA 事务之类的东西?