大家好,有一个分布式数据库事务处理方面的问题想请教一下,我现在使用分布式事务框架atomikos来处理分布式数据库事务,现假设有两个数据源ds1和ds2,现在有个分布式的更新操作放进了同一个分布式事务中,分别利用ds1和ds2来进行处理,假如在两阶段提交的第一阶段,ds1和ds2均能预提交成功,现在分布式事务管理器在向两个数据源分别发送正式提交指令时,针对ds1的提交指令发送成功,但是针对ds2的指令因为网络问题或者其他问题,没能发送成功,在实际情况中,有可能出现此类情况吧?
这个时候,ds1的数据是最新的数据了,ds2对应的数据库将会怎么处理自己的数据呢?是默认提交呢,还是默认回滚,或者将对应的事务相关的信息记录进日志并等待重连事务管理器后根据双方的错误日志进行恢复?
如果是第三中处理情况,ds2会不会锁定对应的数据记录并阻止其他的读取/更新操作?因为ds2对应的数据库仍然有可能被其他的应用程序正常访问,在访问期间可能涉及到对相关被破坏的数据的处理。
请高手指教,谢谢。