我正在阅读Hibernate的Java Persistence,发现以下内容。
如今,高质量的独立JTA提供程序,例如Bitronix(用于本书的示例代码)和Atomikos都可以使用,并且易于在任何Java环境中安装。将这些解决方案视为支持JTA的数据库连接池。
据我了解,JTA提供程序具有自己的连接池。
那么,它们是否与HikariCP和C3P0等连接池集成(如果可以的话)?谢谢。
答案是否定的,您不能将JTA提供程序与这些JDBC连接池结合使用。
简短的原因是:JTA提供程序需求XADataSource
和您命名的JDBC连接池只有standard DataSource
。
更长的原因是:使用JTA提供程序,您要处理全局事务-不同数据源上的全局方法。(例如,您的操作想要在数据库/数据源1中执行某些操作,而在数据库/数据源2中执行某些操作-如果这些部分之一发生故障,则您希望两个部分都回滚,就像两个数据库/数据源都没有发生任何事情一样)由两阶段提交,这需要一个XADataSource。对于仅使用一个数据源的应用程序,JDBC连接池是轻量级的-对于此应用程序,您不需要JTA(当然,即使可以使用它们)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句