并行控制

并行控制是管理数据资源争用。在数据访问事务早期锁定指定的资源,在该事务结束后才释放资源,这种是封闭式并行控制方案。获取锁定后一旦事务结束就会很快释放锁定,这种是开放式并行控制方案。

乐观并发的目标是使给定的资源不可用于其他事务的时间最短。这对于长时间运行的事务尤为重要,在封闭式方案下这种事务锁定资源的时间让人不能接受。

在乐观方案下,读操作前马上获取锁定,读完后能马上释放。在更新操作前能马上获取更新锁定,并在事务结束前一直持有锁定。

要启用乐观并发,此产品使用过度限定的更新方案来测试当前事务开始以来是否有其他事务更新了底层数据源。使用此方案,通过 UPDATE 语句中的 WHERE 子句显式添加标记为更新的列和它们原始值,这样如果当前列值更改了该语句就会失败。结果,此方案可以提供列级别并行控制;封闭式方案只能在行级别控制并行。

开放式方案通常仅在事务结束时执行此类测试。如果自事务开始以来当前列并未更新,那么落实容器管理的持久性字段的暂挂更新并且释放锁定。如果无法获取锁,或自当前事务开始以来其他事务已经更新了该列,那么回滚当前事务:事务中执行的所有工作都将丢失。

封闭式和开放式并行方案需要不同的事务隔离级别。如果多个企业 bean 参与同一事务,但需要不同的并行控制方案,那它们不能在同一个当前数据连接上操作。

最佳实践 最佳实践: 是否使用乐观并发取决于事务的类型。对于出现故障会引起高惩罚的事务最好用封闭式方案管理。高惩罚的事务是指恢复时有风险或资源密集的事务。对于低惩罚的事务,通常值得冒出现故障的风险以获取使用开放式方案带来的效率。通常,乐观并发在更新冲突不太频繁时较为有效;而悲观并发在更新冲突经常发生时较为有效。best-practices

指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cejb_cncr
文件名:cejb_cncr.html