Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » 使用 SQL Anywhere 编程简介 » 三层计算和分布式事务 » 使用分布式事务

 

从分布式事务恢复

如果数据库服务器在未提交操作处于待执行状态时出现了故障,则它必须在启动时回退或者提交那些操作,以保持事务的原子特征。

如果在恢复过程中发现来自分布式事务的未提交操作,则数据库服务器将尝试连接到 DTC,并请求被重新征用到待执行或不确定的事务中。重新征用完成后,DTC 即会指示数据库服务器回退或提交未完成的操作。

如果重新征用过程失败,则 SQL Anywhere 将无法知道是应该提交还是应该回退不确定的操作,因而恢复将失败。如果要恢复此类状态下的数据库而不考虑数据的不确定状态,则可使用以下数据库服务器选项来强制恢复:

  • -tmf   如果找不到 DTC,则未完成的操作将回退,并继续进行恢复。请参见-tmf 服务器选项

  • -tmt   如果重新征用未能在指定的时间之前实现,则未完成的操作将回退,并继续进行恢复。请参见-tmt 服务器选项