Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

[目次][用語][索引][前へ][次へ]

6.10.3 楽観的ロックを使用する際の注意事項

ここでは,楽観的ロックを使用する際の注意事項について説明します。

<この項の構成>
(1) Versionフィールドの設定時の注意事項
(2) lockメソッド使用時の注意
(3) HiRDBでのクライアント単位の排他制御について

(1) Versionフィールドの設定時の注意事項

Versionフィールドの設定時の注意事項を次に示します。

(2) lockメソッド使用時の注意

lockメソッド使用時の注意事項を次に示します。

(3) HiRDBでのクライアント単位の排他制御について

CJPAプロバイダの楽観的ロックは,データベースのIsolationレベルがRead Committedでアクセスされることを想定したロック方式です。データベースがHiRDBの場合,Isolationレベルがデフォルトの設定ではRepeatable Readであるため,Read Committedに変更する必要があります。

クライアント単位のIsolationレベルは,クライアント環境変数のデータ保証レベルのPDISLLVLパラメタで設定します。デフォルトの値はRepeatable Read (2)です。このため,Read Committed (1) に変更してください。変更例を次に示します。

 

変更例:PDISLLVL=1

 

クライアント環境変数はConnector属性ファイルの<config-property>タグでenvironmentVariablesプロパティの値に指定するか,またはHiRDBのクライアント環境変数グループの設定ファイルに追加してください。

クライアント環境変数のデータ保証レベルをデフォルト設定のRepeatable Readで動作させた場合は,共有モードで排他が掛かります。このため,findメソッドなどの参照系SQLの発行とflushメソッドなどの更新系SQLの発行を組み合わせることによって,デッドロックが発生しやすくなるので注意してください。