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  

ページトップ

ボタン