サポートチーム便り2012.02.20
ロック・レコードのバイパス
Question
ロック・レコードをバイパスすると思われる標準コードをいくつか示します。見たところ、バイパスしていないようです。
C PROCES BEGSR
C *IN99 DOUEQ *ON
C READ F55634LB 9699
C *IN99 IFEQ *ON
C LEAVE
C ENDIF
C *IN96 IFEQ *ON
C ITER
C ENDIF
~ do processing
C ENDDO
?
ITER ステートメントがあれば、次のレコードが読み取られると思ったのですが、バグ・セッションを見ると、カーソルが同じレコードの上に留まっていて、1 つのロック・レコードを何度も読み取ろうとしているようです。こうしたロジックが機能しない場合、次なるサインとして何が指摘できますか。こうした事態は簡単に打開できないものでしょうか。
Answer
ロック・レコードをバイパスするには、次のようにno-lockを使用してレコードを読み取る必要があります。
C *IN96 IFEQ *ON C status ANDEQ recordlock C READ(N) F55634LB 9699 C ITER C ENDIF