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 的用法 » 远程数据和批量操作 » 访问远程数据 » 事务管理和远程数据

 

远程事务管理概述

管理涉及远程服务器的事务的方法使用两阶段提交协议。SQL Anywhere 执行的策略可以确保大多数情况的事务完整性。但是,当一个事务中调用了多个远程服务器时,仍然存在分布式工作单位处于不确定状态的可能性。即使使用了两阶段提交协议,也不包括恢复过程。

管理用户事务的一般逻辑如下:

  1. SQL Anywhere 以 BEGIN TRANSACTION 通知向远程服务器宣布工作。

  2. 当准备好提交事务时,SQL Anywhere 向已成为事务一部分的每个远程服务器发送一个 PREPARE TRANSACTION 通知。这可以确保远程服务器准备好提交事务。

  3. 如果 PREPARE TRANSACTION 请求失败,则将指示所有远程服务器回退当前事务。

    如果所有 PREPARE TRANSACTION 请求都成功,则服务器将向该事务涉及的每个远程服务器发送一个 COMMIT TRANSACTION 请求。

以 BEGIN TRANSACTION 开头的任何语句都可以开始一个事务。其它语句被发送到远程服务器作为单个、远程工作单元执行。