1

任何人都可以帮助我解决以下问题。

1>如何实现缓存和数据库100%的一致性。如果我希望Gemfire和数据库都作为常规事务资源参与JTA事务(支持两阶段提交)。?

2>“最后资源”优化是否保证100%一致性?

3> 哪些 JTA 事务管理器支持和测试了“最后资源”优化?

4> Gemfire 支持和测试的外部事务管理器有哪些?

4

1 回答 1

1

对于非最后资源 JTA 事务,GemFire 注册为同步,因此它对事务的结果有发言权,但如果 GemFire 服务器在小窗口内(在 beforeCommit() 和 afterCommit() 调用之间)死掉, GemFire 将与事务中的其他资源不一致)。当 GemFire 被用作最后一个资源时,它对事务的结果拥有最终决定权,因此这个窗口实际上是关闭的。

您需要查阅您的 JTA 事务管理器的文档,看看它们是否可以保证 100% 的一致性。

在 GemFire 中,最后一次资源优化使用 weblogic 进行测试,GemFire 与 JTA 事务管理器一起使用,这些管理器使用以下名称向 JNDI 注册:

"java:/TransactionManager"
"java:comp/TransactionManager"
"java:appserver/TransactionManager"
"java:pm/TransactionManager"
"java:comp/UserTransaction"
于 2015-07-22T15:48:31.477 回答