DB2锁的属性相信对于很多刚刚接触DB2数据库的新人来说,还比较陌生,下面就为您详细介绍DB2锁的属性,希望对您能有所帮助。
在并发性和隔离级别一章中,我们看到 DB2 通用数据库通过使用锁把事务彼此隔离开来。锁是一种用来将数据资源与单个事务关联起来的机制,其用途是当某个资源与拥有它的事务关联在一起时,控制其它事务如何与该资源交互。(我们称与被锁定的资源关联的事务持有或拥有该锁。)DB2 数据库管理器用锁来禁止事务访问其它事务写入的未提交数据(除非使用了“未提交的读”隔离级别),并禁止其它事务在拥有锁的事务使用限制性隔离级别时对这些行进行更新。事务一旦获取了锁,则在终止之前,就一直持有该锁;该事务终止时释放锁,其它事务就可以使用被解锁的数据资源了。
如果一个事务尝试访问数据资源的方式与另一个事务所持有的锁不兼容(稍后我们将研究锁兼容性),则该事务必须等待,直到拥有锁的事务终止为止。这被称为锁等待。当锁等待事件发生时,尝试访问数据资源的事务所要做的只是停止执行,直到拥有锁的事务终止和不兼容的锁被释放为止。
所有的锁都有下列基本DB2锁的属性:
Object:object 属性标识了要锁定的数据资源。DB2 数据库管理器在需要时锁定数据资源(如表空间、表和行)。
Size:size 属性指定要锁定的数据资源部分的物理大小。锁并不总是必须控制整个数据资源。例如,DB2 数据库管理器可以让应用程序独占地控制表中的特定行,而不是让该应用程序独占地控制整个表。
Duration:duration 属性指定了锁被持有的时间长度。事务的隔离级别通常控制了锁的持续时间。
Mode:mode 属性指定了锁的拥有者所允许的访问类型,以及对锁定数据资源的并发用户许可的访问类型。这个属性通常称为锁状态。