アクセス・インテント -- 分離レベルおよび更新ロック

WebSphere® Application Server アクセス・インテント・ポリシーは、 ご使用の環境のリレーショナル・データベース全体にわたって CMP Bean データの分離レベルを定義する一貫性のある方法を提供します。

デプロイ済みアプリケーション内で、 アクセス・インテント・ポリシー concurrency definition および access type の組み合わせは、 データベース接続で Application Server が設定する分離レベル値を示します。 並行性およびアクセス・タイプについて詳しくは、『平行性制御』、および『アクセス・インテントおよび分離 (Access intent and isolation)』を参照してください。このプロパティーの組み合わせは、 JDBC 準備済みステートメントを介して Application Server がデータベースに渡す更新ロック・フラグも示します。

各データベースは、WebSphere Application Server ほど多くの分離レベル定義を提供しません。データベースは、わずか 3 つのタイプの 1 つとして分離レベルを定義します。 さらに、着信接続にデータベースが設定する分離レベルのタイプを示すのは、1 つのパラメーターのみです。 3 つのタイプはそれぞれ、各データベース・ベンダーによって規定されているように、異なる パラメーター値により表されます。 例えば、1 つのデータベースは 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- 排他的 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 が S 分離でロードされるようにアクセス・インテント・ポリシーが構成されているエンタープライズ Bean を持つアプリケーションを実行することはできません。
  • EJB メソッド・サポートごとのアクセス・インテント・ポリシーの設定は、 バージョン 6.0 では推奨されていません。 Bean 全体に対してのみアクセス・インテントを設定することをお勧めします。
MS SQL Server 2005 の新機能: MS SQL Server 2005 は、読み取りコミット分離レベルの新しいオプションおよびシリアライズ可能分離レベルに対して新しいオプションを提供しています。
  • スナップショットによる読み取りコミット
  • トランザクション・スナップショット (シリアライズ可能用)
どちらのオプションもオプティミスティック・ロックを使用します。読み取りコミットの代わりにスナップショットによる読み取りコミットを使用するには、MS SQL Server 2005 の資料に従って、データベースの READ_COMMITTED_SNAPSHOT 設定を使用可能にします。 シリアライズ可能の代わりにトランザクション・スナップショットをしようするには、カスタム・データ・ソース・プロパティー snapshotSerializable を "true" に設定し、MS SQL Server 2005 の資料に従ってデータベースの ALLOW_SNAPSHOT_ISOLATION 設定を使用可能にします。

Structured Query Language (SQL) のキーワードおよび制約事項

表 2. SQL キーワードと制限. 次の表は、 更新インテント・ロック中に使用される SQL キーワードと SQL に課せられる制約事項を示します。
データベース ロック更新に使用される SQL 構文 結合制限 Order by 制限 副選択制限 集約制限
DB2 FOR UPDATE OF 不可 不可 不可 不可
DB2 UDB for iSeries (V5R3 以前) FOR UPDATE OF 不可 制限 * 付きで許可 制限 * 付きで許可 不可
DB2 UDB for iSeries (V5R4 以降) WITH RS/RR USE AND KEEP EXCLUSIVE LOCKS 不可 制限 * 付きで許可 制限 * 付きで許可 不可
DB2 on z/OS® V8.x WITH RS/RR USE AND KEEP UPDATE LOCKS none none none none
DB2 UDB ワークステーション V8.2 WITH RS/RR USE AND KEEP UPDATE LOCKS none none none none
Oracle FOR UPDATE none none none none
Apache Derby FOR UPDATE OF 不可 不可 不可 不可
Informix FOR UPDATE 不可 不可 不可 不可
Sybase FOR UPDATE 不可 不可 不可 不可
Sqlserver UPDLOCK 不可 不可 不可 不可
注: これらの許可された SQL 制約事項の制限の詳細については、 「DB2 Universal Database™ for iSeries SQL Reference」を参照してください。この資料は iSeries Information Center、バージョン 5 リリース 4 にあります。目次のナビゲーション領域で、「データベース」 > 「参照」 > 「SQL 参照 (SQL Reference)」とクリックします。

トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdat_isolevtab
ファイル名:rdat_isolevtab.html