RPGLE:读取失败会解锁先前锁定的记录吗?

问题描述 投票:1回答:2

这是我的问题:我有一个循环在此循环中,我可以根据条件更新记录或不更新记录。

在这种情况下:我已将序列的最后一条记录涂成红色,已被锁定它不满足条件,因此不会更新,因此不会解锁该程序尝试读取下一条记录,但不成功,但是...

我的问题是:它是否为其他记录释放了锁?

db2 locking ibm-midrange rpgle
2个回答
1
投票

没有使用UNLOCK释放您的记录。


0
投票

实际上是,未成功读取后,记录将被解锁...我几乎没有时间为此创建肮脏的测试:程序

Fp1facll1  UF   E           k DISK                                       
D*                                                                       
Dexcmd            s            250    inz('DLYJOB DLY(10)')              
Dexlg             s             15P 5 inz(250)                           
C*                                                                       
C                   move      'F012'        adqtc4                       
C     adqtc4        setll     p1facll1                                   
C     adqtc4        reade     p1facll1                               58  
C     *in58         downe     '1'                                        
C* Update never occurs                                                   
C                   if        '0'                                        
C                   update    MEFRESM                                    
C                   endif                                                
C     adqtc4        reade     p1facll1                               58  
C                   enddo                                                
C* Wait indefinitively                                                   
C                   dow       '1'                                        
C                   call      'QCMDEXC'                                  
C                   parm                    excmd                         
C                   parm                    exlg                         
C                   enddo                                                
C                   SETON                                        LR      

第一次发布(由SBMJOB发布)进入无限等待循环(正常)。没有结束程序,我第二次启动了它,结束了它进入了无限循环,证明第一个没有锁定最后一个成功记录为红色的记录,否则应该有读取错误

© www.soinside.com 2019 - 2024. All rights reserved.