ILE COBOL プログラムがデータベース・ファイルに READ を実行する場合、そのファイルが入出力用にオープンされると、 そのレコードがロック状態になって他のプログラムはそのレコードを更新できなくなります。 すなわち、ファイルを入力用にオープンする場合は他のプログラムからそのレコードを読み取れますが、 入出力用にオープンする場合はそれができません。 同様に、入出力モードでオープンされたファイルの START 操作が成功すると、 そのファイルのそのレコードの位置はロック状態になります。
コミットメント制御を行っている場合と行っていない場合の、レコードをロックする期間については 図 99 を参照してください。
READ ステートメントまたは START ステートメントを実行する際に、 入出力 (更新) モードでオープンされているファイルのレコードをロックしないようにするためには、NO LOCK 句を使用できます。 READ WITH NO LOCK ステートメントを使用すると、 以前に READ ステートメントまたは START ステートメントによってロックされたレコードがアンロックされます。 また、READ WITH NO LOCK ステートメントで読み取られるレコードもロックされません。 START WITH NO LOCK ステートメントを使用すると、 以前に START ステートメントまたは READ ステートメントによってロックされたレコードがアンロックされます。 この句の詳細については、「WebSphere Development Studio: ILE COBOL 解説書」の READ ステートメントおよび START ステートメントに関する部分を参照してください。
1 個の物理ファイルに基づく論理ファイルの場合、その物理ファイル中のレコードがロック状態になります。 論理ファイルが複数の物理ファイルに基づいている場合は、 各物理ファイルの中の 1 つのレコードがロック状態になります。
2 つめのファイルで同一の基本物理レコードを更新しようとすると、 他のプログラムだけでなく元のプログラムにもこのロックが適用されます。
更新用に読み取ったデータベース・レコードの解放については、Web サイト http://www.ibm.com/eserver/iseries/infocenter にある iSeries Information Center の 「データベースおよびファイル・システム」カテゴリーを参照してください。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.