访问意向 - 隔离级别和更新锁定

WebSphere® Application Server 访问意向策略提供了一致的方法,用于在您的环境中跨不同关系数据库为 CMP bean 数据定义隔离级别。

在已部署的应用程序中,访问意向策略并行定义访问类型的组合表示 Application Server 在数据库连接上设置的隔离级别值。要获取有关并行和访问类型的更多信息,请参阅“并行控制”以及“访问意向与隔离”的相关文章。属性的此组合还表示 Application Server 通过 JDBC 预编译语句传递至数据库的更新锁定标志。

WebSphere Application Server 提供的隔离级别定义比数据库提供的多。数据库将隔离级别定义为仅有的三种类型中的其中一种。而且,只有一个参数指示数据库在引入连接上设置的隔离级别类型。这三种类型中的每一种都可以用另一个参数值来表示,这由各个数据库供应商确定。例如,一个数据库可能将某个隔离级别定义为 RR(JDBC 可重复读),而另一个数据库可能将这个隔离级别定义为 RC(JDBC 已落实读)。

由于这种不一致的情况,WebSphere Application Server 不会将访问意向策略映射至参数值。相反,Application Server 会将访问意向策略映射至所有数据库供应商之间常用的隔离级别类型。

表 1. 访问意向策略与数据库隔离级别和更新锁定设置的关系. 以下矩阵显示了访问意向策略如何响应不同的数据库隔离级别以及更新锁定设置。
访问意向概要文件 隔离级别 更新锁定实现
  DB2® Oracle* SyBase Informix® Apache Derby SQL Server  
wsPessimisticUpdate - Weakest LockAtLoad(缺省策略) RR RC RR RR RR RR 否(*Oracle,是)
wsPessimisticUpdate RR RC RR RR RR RR
wsPessimisticRead RR RC RR RR RR RR
wsOptimisticUpdate RC RC RC RC RC RC
wsOptimisticRead RC RC RC RC RC RC
wsPessimisticUpdate No-Collisions RC RC RC RC RC RC
wsPessimisticUpdate- Exclusive S S S S S S

  • RC = JDBC 已落实读
  • RR = JDBC 可重复读
  • S = JDBC 可序列化
  • * Oracle 不支持 JDBC 可重复读 (RR)。因此,wsPessimisticUpdate-weakestLockAtLoad 和 wsPessimisticUpdate 在 Oracle 中与 wsPessismisticRead 和 wsOptimisticRead 一样以相同的方式运转。由于 Oracle 限制,OracleXADataSource JDBC 类不能在 S 事务隔离级别下运行。因此,您不能使用此类来运行包含某些企业 bean 的应用程序,这些企业 bean 具有为通过 S 隔离装入 bean 而配置的访问意向策略。
  • 建议在 V6.0 中不要使用为每个 EJB 方法设置访问意向策略的支持。建议您只为整个 bean 设置访问意向。
MS SQL Server 2005 的新增内容: MS SQL Server 2005 为“已落实读”和“可序列化”这两个隔离级别分别提供了一个新选项:
  • 具有快照的已落实读
  • 事务快照(对于可序列化)
这两个选项都使用乐观锁定。要使用“具有快照的已落实读”而不是“已落实读”,请根据 MS SQL Server 2005 文档启用数据库的 READ_COMMITTED_SNAPSHOT 设置。要使用“事务快照”而不是“可序列化”,请根据 MS SQL Server 2005 文档将定制数据源属性 snapshotSerializable 配置为“true”并启用数据库的 ALLOW_SNAPSHOT_ISOLATION 设置。

结构化查询语言 (SQL) 关键字和限制

表 2. SQL 关键字和限制. 下表显示在更新意向锁定期间使用的 SQL 关键字以及任何强加到 SQL 上的限制。
数据库 用于锁定更新的 SQL 语法 连接限制 顺序限制 子查询限制 聚集限制
DB2 FOR UPDATE OF 不允许 不允许 不允许 不允许
DB2 UDB iSeries 版(V5R3 和更早版本) FOR UPDATE OF 不允许 允许,但是需要满足限制 * 允许,但是需要满足限制 * 不允许
DB2 UDB iSeries 版(V5R4 和更高版本) WITH RS/RR USE AND KEEP EXCLUSIVE LOCKS 不允许 允许,但是需要满足限制 * 允许,但是需要满足限制 * 不允许
DB2 on z/OS® V8.x WITH RS/RR USE AND KEEP UPDATE LOCKS
DB2 UDB 工作站 V8.2 WITH RS/RR USE AND KEEP UPDATE LOCKS
Oracle FOR UPDATE
Apache Derby FOR UPDATE OF 不允许 不允许 不允许 不允许
Informix FOR UPDATE 不允许 不允许 不允许 不允许
Sybase FOR UPDATE 不允许 不允许 不允许 不允许
Sqlserver UPDLOCK 不允许 不允许 不允许 不允许
注: 要获取有关这些所允许 SQL 限制的局限性的详细信息,请参阅 DB2 Universal Database™ for iSeries SQL 参考。可以在 iSeries V5R4 信息中心中找到此文档。在“内容”导航区域中,单击数据库 > 参考 > SQL 参考

指示主题类型的图标 参考主题



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