DB2 9.7自治事务的定义与相关事务背景

数据库
以下的文章是通过DB2 9.7自治事务的定义来剖析DB2 9.7自治事务的实际应用,以下就是相关内容的详细介绍,望你能有所收获。

此文章主要向大家讲述的是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. 简单事务的示例

 

  1. Update table AccountInfo set CurrentBalanceCurrentBalance = CurrentBalance - X, where UserName=A   
  2. Update table AccountInfo set CurrentBalanceCurrentBalance = CurrentBalance + X, where UserName=B  

只有在两条 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 语句示例

 

  1. CREATE OR REPLACE your_procedure_name  
  2. LANGUAGE SQL  
  3. AUTONOMOUS  
  4. BEGIN   
  5. do autonomous work ;  
  6. END 

在调用自治过程时,将在独立的会话中执行,以提供必需的事务独立性。成功的自治过程将使用隐式方式提交,而失败的自治过程将执行回滚。无论哪一种情况,都不会影响调用事务。

【编辑推荐】

  1. DB2 batch update注意事项的描述
  2. DB2 V9.5 新特性有哪些好处?
  3. IBM DB2连接集中器的基本操作原理
  4. DB2数据库编目的概念浅谈
  5. 对DB2 9.7武器的功能的描述
责任编辑:佚名 来源: 51CTO.com
相关推荐

2010-08-09 17:47:25

DB2 9.7自治事务

2013-03-19 10:35:24

Oracle

2011-08-12 13:33:31

Oracle数据库自治事务

2009-04-30 08:59:13

DB2 9.7InfoSphereIBM

2010-08-10 10:23:16

IBM DB2 V9.

2011-03-14 17:18:44

事务DB2性能

2010-08-17 08:54:38

DB2 事务时隐式

2011-05-17 10:27:19

DB2性能事务类型

2010-08-11 11:39:06

IBM DB2 V9.

2010-08-16 17:07:43

DB2 trc

2010-07-29 13:09:48

DB2 9.7 兼容

2010-08-06 14:52:13

DB2 9.7武器

2010-08-16 13:53:26

2010-09-06 13:06:08

DB2 9.7

2009-09-25 11:44:00

ibmdwDB2

2010-07-29 11:20:03

DB2 9.7

2010-08-16 10:45:46

DB2 9.7

2010-08-16 10:45:46

DB2 9.7

2010-07-30 15:21:35

DB2 9.7三大武器

2010-08-03 17:23:00

DB2 9.7三种武器
点赞
收藏

51CTO技术栈公众号