1.6. 事务和线程之间的关系


为了了解事务处理,非常感谢事务和线程之间的基本关系非常重要: 事务是特定于线程的。也就是说,当事务启动时,它会附加到特定的线程。(从技术上,创建 事务上下文 对象并与当前线程相关联)。此时,线程中的所有活动都会在这个事务范围内发生。其他线程中的活动 不会 属于这个事务的范围。但是,任何其他线程中的活动都可以在某些其他事务范围内。

这个事务和线程之间的关系意味着:

  • 只要在单独的线程中创建每个 事务,应用程序就可以同时处理多个 事务。
  • 注意在事务中创建子线程。如果您在事务中,并且您创建了一个新的线程池,例如通过调用 threads () Camel DSL 命令,新的线程 不在 原始事务范围内。
  • 注意处理步骤,根据前面点上给出的相同原因,隐式创建新的线程
  • 事务范围通常不会跨越路由段扩展。也就是说,如果一个路由片段 以(JoinEndpoint) 结尾,另一个路由片段 从(JoinEndpoint) 开始,这些路由片段 通常不 属于相同的事务。然而,有一些例外。
注意

有些高级事务管理器实现可让您自由地将事务上下文与线程分离和附加。例如,这样可以将事务上下文从一个线程移到另一个线程。在某些情况下,也可以将单个事务上下文附加到多个线程。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.