8.6. Enlisting synchronizations
默认情况下,Data Grid 通过 XAResource 将自身注册为分布式事务中的第一个类。在某些情况下,Data Grid 不需要在事务中成为参与,但只能由其生命周期通知(准备和完整):例如,在 Hibernate 中将 Data Grid 用作第二级缓存。
Data Grid 允许通过同步进行事务 加入。要启用它只是使用 NON_XA 事务模式。
同步具有优势,它们允许 TransactionManager 使用 1PC 优化 2PC,其中只有一个其他资源被该事务列入(最后资源提交优化)。例如Hibernate 第二级缓存:如果 Data Grid 将自身注册到 TransactionManager 作为 XAResource,则 TransactionManager 会看到两个 XAResource (缓存和数据库),且不会进行这种优化。必须在两个资源之间协调,需要将 tx 日志写入磁盘。另一方面,将 Data Grid 注册为 同步 会导致 TransactionManager 跳过将日志写入磁盘(性能改进)。