我有弹簧启动应用程序,它在两个数据库Postgres中进行更新。我使用Atomikos进行分布式事务管理。
我看到我的应用程序每10秒在两个数据库中进行查询: " SELECT gid FROM pg_prepared_xacts where database = current_database()"
我想知道为什么? atomikos有一些属性可以改变时期吗?例如1分钟。如果查询返回一些gid会是什么?
我在网上看了很多关于这个问题,但没有找到答案。
我有一些假设,我想知道正确的答案。
答案 0 :(得分:0)
它称为“恢复扫描”,目标是在应用程序失败后恢复,或者应用程序出错。因此,在数据库中不会被“孤立”的Atomikos创建的交易。
是的,它有:com.atomikos.icatch.recovery_delay。其他有用的属性如下:JtaProperties
Atomikos检查返回的gid是否在atomikos事务日志中并且状态为“to commit”。如果是这样,他将提交准备交易,否则他将回滚交易。请注意,Atomikos将处理由他创建的准备交易,并且不会处理其他准备交易。