DB2 9.7自治事务的定义与相关事务背景 |
本文标签:DB2 自治事务 此文章主要向大家讲述的是DB2 9.7自治事务的定义与对其在实际操作中的一些事务背景的描述,我们大家都知道了解 IBM DB2® Version 9.7 for Linux®, UNIX®, and Windows® 中引入的自治事务特性 。您将获得有关自治事务的定义和创建方式的概述和示例 。 简介 本文将介绍 DB2 9.7自治事务特性 。自治事务与数据库管理员和应用程序开发人员都有密切的关系 。 本文将讨论 DB2 9.7 for Linux, UNIX, and Windows 。掌握 DB2 命令行处理器(CLP)和 SQL PL 的知识将非常有帮助 。 要运行本文中的示例,需要访问 DB2 9.7 for Linux, UNIX, and Windows 数据库 。从 参考资料 部分查找下载 DB2 试用版的链接 。 了解一些事务背景 事务是以文本、列(或同时使用两者)的形式表现的来自真实世界的实体,将由数据库管理系统处理 。它们可以作为针对数据库执行的操作,并且必须作为一组操作执行 。 例如,从用户 A 的帐户将 X 金额传输到用户 B 的帐户,这个请求是一个非常简单的事务 。这个事务可以被分解为两个 SQL 语句,如清单 1 所示: 清单 1. 简单事务的示例
只有在两条 SQL 语句都能够成功更新表的情况下,事务才会得到成功调用 。为了确保两条语句都能够生效或都不生效,应用程序将以这样的方式运行:直到 COMMIT 发生之前,数据库不会做出任何更改 。发生 COMMIT 时,所有未提交的语句(自最近一次 COMMIT 之后的所有语句)将同时生效,确保数据的完整性 。这类似于禁用命令行处理器(CLP)的 AUTO COMMIT 行为,然后发出一组语句并手动完成 COMMIT 操作 。ROLLBACK 将移除所有未提交的修改 。因此 COMMIT 和 ROLLBACK 语句是事务实现的重要构建块 。 自治事务简介 DB2 9.7自治事务拥有自己的 COMMIT 和 ROLLBACK 范围,确保它的结果不会影响到调用方的未提交的变更 。此外,调用会话中的 COMMITs 和 ROLLBACKs 不应当影响自治事务本身完成时发生的最后更改 。 注意,调用会话将被暂停,直到被调用的会话返回控制权 。自治事务的支持不应该视为支持并行执行会话 。 创建自治事务 在 DB2 中,自治事务通过自治过程实现 。存储过程为将语句绑定到块中提供了一种自然的方式 。要创建自治过程,需要在 CREATE PROCEDURE 语句中指定关键字 AUTONOMOUS,如清单 12 所示 。 清单 2. CREATE PROCEDURE 语句示例
在调用自治过程时,将在独立的会话中执行,以提供必需的事务独立性 。成功的自治过程将使用隐式方式提交,而失败的自治过程将执行回滚 。无论哪一种情况,都不会影响调用事务 。 |