2

我继承了一个应用程序,该应用程序使用 Atomikos 在 Oracle 数据库之上的 Spring 中进行事务处理。在生产部署中,事务日志始终通过设置 com.atomikos.icatch.enable_logging=true 来启用,但事实是我找不到任何关于这些日志的确切用途的信息。

atomikos 网站声明“这不应该在生产中禁用,否则无法保证数据完整性”,我在该网站的 jta.properties 中发现了一条评论,说如果它是“重启或崩溃后有丢失数据的风险”禁用。

我们没有在我们的开发环境中启用此功能,并且能够正常使用该应用程序。我认为它们可能会在应用程序崩溃的情况下使用,但如果是这样,我不确定它们将如何使用。也许在下次启动时自动或以某种方式手动?在数据完整性方面,我知道 Oracle 可以实现它自己的数据恢复,但也许这些事务日志包含 Oracle 尚未看到的数据,例如,如果 Spring 崩溃。

4

3 回答 3

0

http://fogbugz.atomikos.com/default.asp?community.6.1950.6似乎表明事务日志仅用于恢复,如果您不需要它们进行恢复,可以禁用它们。

于 2013-11-16T00:19:08.030 回答
0

这些日志维护最新版本的事务信息,您的数据库可能还不知道这些信息。如果没有这个设置,崩溃/重启后的恢复可能是不正确的。

HTH 家伙

于 2013-11-27T21:46:00.800 回答
0

在我回答你的问题之前,你需要在这里阅读这篇文章的开头你将如何调整分布式( XA )事务的性能?得到热学。

Atomikos 充当交易协调员,负责协调不同数据库的参与者。作为协调器,它协调跨不同数据库的事务处理。这与警察在十字路口中间所做的工作基本相同。

Atomikos 写入它的日志文件是为了知道它在分布式事务过程中的确切位置。在失败的情况下,它可以跟踪其未提交的事务进度​​并从先前中断的地方尝试。因此,事务日志对于事务恢复过程非常重要。

于 2018-03-05T12:56:50.597 回答