11.4. transaction Outcomes


11.4.1. 关于交易结果

事务有三种可能的结果:

Commit(提交)
如果每个交易参与者都可提交,交易协调员将指示他们这样做。如需更多信息 ,请参阅 关于交易提交。
回滚(Rollback)
如果任何交易参与者无法提交,或者交易协调员无法指示参与者提交,交易将被回滚。如需更多信息 ,请参阅关于交易回滚
启发式结果
如果一些事务参与者提交和其他回滚,则称为启发式结果。启发性成果需要人为干预。如需更多信息 ,请参阅关于 Heuristic Outcomes

11.4.2. 关于交易提交

交易参与者提交时,将其新状态变为持久状态。新状态由参与者承担交易涉及的工作创建。最常见的示例是事务成员向数据库写入记录。

提交后,交易信息将从交易协调员中删除,新编写的状态现在是持久状态。

11.4.3. 关于交易回滚

交易参与者回滚,恢复其状态以在交易开始前反映状态。回滚后,其状态与事务从未启动的情况相同。

11.4.4. 关于 Heuristic Outcomes

启发性结果或非混合性的结果是交易参与者的决定不同于交易经理的决定的情况。启发性结果可能会导致系统完整性丢失,通常需要人工干预来解决它们。不要编写依赖于它们的代码。

启发式结果通常在 2 阶段提交(2PC)协议的第二阶段发生。在个别情况下,可能会在 1PC 中产生这个结果。它们通常由底层服务器基础硬件或通信子系统失败所致。

启发式结果可能源自各种子系统或资源的超时结果,即使事务管理器和完整崩溃恢复也是如此。在需要某种形式的分布式协议的任何系统中,系统的某些部分在全局结果上存在差异的情况。

启发式结果有四种:

Heuristic rollback

提交操作无法提交资源,但所有参与者都可以回滚,因此依然能实现原子性成果。

Heuristic commit

尝试回滚操作失败,因为所有参与者都已完成。例如,如果协调员能够成功准备交易,但随后决定回滚(例如,未能更新其日志),则会出现这种情况。此时,参与者可能决定提交。

Heuristic mix

某些参与者已提交,另一些已回滚。

启发式政府.

些更新的内容未知。对于已知的对象,它们或者全部已提交,或者全部已回滚。

11.4.5. JBoss 事务错误和例外

有关 UserTransaction 类方法引发异常的详情,请查看 UserTransaction API Javadoc。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部