WEB开发网
开发学院数据库DB2 DB2通用数据库的并发性 阅读

DB2通用数据库的并发性

 2008-09-09 16:30:20 来源:WEB开发网   
核心提示: 在一段预设的时间间隔之后(请参阅标题 DEADLOCK TIME 下面的讨论),DB2 UDB 将终止当前工作单元,DB2通用数据库的并发性(4),因为某个应用程序陷入死锁状态(通常为所做工作最少的应用程序),这将释放终止程序所持有的锁,如果该对象当前未被另一实用程序访问,或者如果另一执行

在一段预设的时间间隔之后(请参阅标题 DEADLOCK TIME 下面的讨论),DB2 UDB 将终止当前工作单元,因为某个应用程序陷入死锁状态(通常为所做工作最少的应用程序)。这将释放终止程序所持有的锁,并允许剩余的应用程序继续下去。 DB2 UDB 将向被终止的应用程序的 SQLCA 发送描述性的错误消息和信息。

实用程序和命令的并发机制

当 SQL 应用程序使用事务锁来控制对 DB2 UDB 对象的并发访问时,DB2 UDB 实用程序和命令可以通过其他方法访问 DB2 UDB 对象,即 声明(claim)、放弃(drain)和 兼容性规则。

声明是指通知 DB2 UDB 当前正在访问某个特定对象。提交之后,该声明通常不会继续存在。为了在下一工作单元里访问 DB2 UDB 对象,应用程序需要进行新的声明。声明通知 DB2 UDB 当前正关注某个 DB2 UDB 对象,或是该对象上存在活动。只要 DB2 UDB 对象上存在声明,在释放那些声明之前,就不能采取任何放弃(drain)。

放弃(drain)是指通过下列方式来访问 DB2 UDB 对象的动作:

阻止对对象进行任何新的声明。

等待释放对象上现有的所有声明。

DB2 UDB 对象上的放弃导致 DB2 UDB 停止(quiesce)所有当前正声明该资源的应用程序,其方式为允许它们到达提交点,但阻止它们(或任何其他的应用程序进程)进行新的声明。Drain 锁还阻止冲突进程同时放弃(drain)同一对象。

DB2 UDB 一般通过一组兼容性规则来控制实用程序的并发操作。如果两个实用程序不需要同时以不可兼容的模式访问相同的 DB2 UDB 对象,就将它们视为是“兼容的”。当一个实用程序作业开始时,DB2 UDB 就检查系统,查看当前是否有其他任何实用程序正处理同一 DB2 UDB 对象。如果该对象当前未被另一实用程序访问,或者如果另一执行实用程序是可兼容的,该实用程序才可以继续。

上一页  1 2 3 4 5 6 7  下一页

Tags:DB 通用 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接