【问题标题】:What are the relationships between JTA provider like Atomikos and connection pool like HikariCP?像 Atomikos 这样的 JTA 提供者和像 HikariCP 这样的连接池之间有什么关系?
【发布时间】:2017-04-16 04:33:24
【问题描述】:

我正在阅读Java Persistence with Hibernate,我发现了以下文字。

今天,高质量的独立 JTA 提供程序,如 Bitronix(用于本书的示例代码)和 Atomikos 都可以在任何 Java 环境中轻松安装。将这些解决方案视为支持 JTA 的数据库连接池

据我了解,JTA 提供商有自己的连接池。

那么,它们是否与 HikariCP 和 C3P0 等连接池集成(如果集成的话,如何集成)?谢谢你。

【问题讨论】:

    标签: java connection-pooling jta hikaricp atomikos


    【解决方案1】:

    答案是,您不能将 JTA 提供程序与这些 JDBC 连接池结合使用。

    简短的原因是: JTA 提供者需要XADataSource,而您命名的 JDBC 连接池只有标准的DataSource

    更长的原因是: 使用 JTA 提供者,您希望处理 全局事务 - 全局意味着不同数据源。 (例如,您的操作想要在数据库/数据源 1 和数据库/数据源 2 中执行某些操作 - 如果这些部分之一失败,您希望两个部分都回滚,就好像两个数据库/数据源都没有发生任何事情一样)通过两阶段提交,这需要一个 XADataSource。 您的 JDBC 连接池对于仅使用一个 DataSource 的应用程序来说是轻量级的 - 对于此应用程序,您不需要 JTA(当然,即使您也可以使用它们)。

    【讨论】:

    • 谢谢。那么,当我们有类似 Spring Boot 应用程序,它与一个数据源一起工作并且我们想使用声明式 tx 管理器时,我们应该使用什么?
    • @Taras 一个普通的连接池和spring的事务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 2012-09-05
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多