データベースのアクセス中に、DB2 が他の処理からデータを分離する方法を変更します。
許可
なし
必須接続
なし
コマンド構文
.-CS--. >>-CHANGE----+-SQLISL----+--TO----+-NC--+---------------------->< '-ISOLATION-' +-RR--+ +-RS--+ '-UR--'
コマンド・パラメーター
使用上の注意
DB2 は、分離レベルを使用して、 データベース中でデータの保全性を維持します。
分離レベルは、並行して実行される他のアプリケーション処理によって加えられる変更から、 アプリケーション処理が分離 (シールド) される程度を定義します。
選択された分離レベルがデータベースでサポートされていない場合、 接続時に、サポートされているレベルまで自動的に調整されます。
タイプ 1 の接続でデータベースへ接続中に、 分離レベルを変更することは許可されていません (SET CLIENTを参照)。 バックエンド処理は、分離レベルを変更する前に以下のようにして終了しなければなりません。
db2 terminate db2 change isolation to ur db2 connect to sample
タイプ 2 の接続を使用した変更は許可されますが、 変更は同じコマンド行プロセッサーのバックエンド処理からのすべての接続に適用されるので、 注意が必要です。 ユーザーは、どの分離レベルが、接続されたどのデータベースに適用するか、 記憶している責任があるということを前提とします。
次の例では、SAMPLE データベースの作成に続いて、 ユーザーが DB2 対話式モードに入っています。
update command options using c off catalog db sample as sample2 set client connect 2 connect to sample connect to sample2 change isolation to cs set connection sample declare c1 cursor for select * from org open c1 fetch c1 for 3 rows change isolation to rr fetch c1 for 2 rows
c1 がこの分離レベルに対応した準備状態になっていないため、SQL0514N エラーが発生します。
change isolation to cs set connection sample2 fetch c1 for 2 rows
c1 がこのデータベースに対応した準備状態になっていないため、SQL0514N エラーが発生します。
declare c1 cursor for select division from org
カーソル c1 がすでに宣言されて開いているため、DB21029E エラーが発生します。
set connection sample fetch c1 for 2 rows
この場合は、元のデータベース (SAMPLE) が元の分離レベル (CS) で使用されたので、 うまくいきます。
分離レベルの詳細については、SQL 解説書 を参照してください。
以下も参照