目前我一直在使用双重录入系统的会计程序。进行记录时,会记入一个帐户,另一个记入帐户,因此必须在数据库中更新其金额。
假设在数据库中更新第一个帐户后,系统崩溃,第二个帐户的金额不会改变;这种情况会导致数据不一致,所以我的问题是:处理这个问题的最佳方法是什么?我应该在数据库恢复后立即撤销第一个事务,还是继续尝试更新第二个帐户?
我正在使用带有mysql的hibernate和spring框架。提前谢谢。
答案 0 :(得分:1)
这里似乎需要分布式事务和2阶段提交。
有关2个DataSources(似乎是您的情况),请参阅the example,对于DataSource和消息队列,请参阅另外一个example