管理涉及远程服务器的事务的方法使用两阶段提交协议。SQL Anywhere 执行的策略可以确保大多数情况的事务完整性。但是,当一个事务中调用了多个远程服务器时,仍然存在分布式工作单位处于不确定状态的可能性。即使使用了两阶段提交协议,也不包括恢复过程。
管理用户事务的一般逻辑如下:
SQL Anywhere 以 BEGIN TRANSACTION 通知向远程服务器宣布工作。
当准备好提交事务时,SQL Anywhere 向已成为事务一部分的每个远程服务器发送一个 PREPARE TRANSACTION 通知。这可以确保远程服务器准备好提交事务。
如果 PREPARE TRANSACTION 请求失败,则将指示所有远程服务器回退当前事务。
如果所有 PREPARE TRANSACTION 请求都成功,则服务器将向该事务涉及的每个远程服务器发送一个 COMMIT TRANSACTION 请求。
以 BEGIN TRANSACTION 开头的任何语句都可以开始一个事务。其它语句被发送到远程服务器作为单个、远程工作单元执行。
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |