• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Bypassing a Locked Record, Take Two

    January 7, 2009 Hey, Ted

    I have a slightly different solution to the locked record problem your friends tackled in Bypassing a Locked Record. Like them, I have RPG programs that sequentially read a file and update some of the records. When a program tries to read a record that another job has locked, I sometimes bypass the locked record. Here’s how.

    Notice the READ operation in the second calculation of this example:

    FSomeFile  UF   E           K Disk    Prefix(SR_)
                                                     
    D Forever         S               N   inz(*On)   
    D Open            C                   Const(' ') 
    D Closed          C                   Const('Z') 
                                                     
     /Free                                           
         DoW Forever;                                
             Read(E) SomeRec;                        
             If %Eof(SomeFile);                      
                 Leave;                              
             EndIf;                                  
             If %Error();                            
                 Read(N) SomeRec;                    
                 Iter;                               
             EndIf;                                  
             If SR_Status = Open and SR_Balance = *Zero; 
                Eval SR_Status = Closed;             
                Update SomeRec %Fields(SR_Status);   
             EndIf;                                  
         EndDo;                                      
         Eval *InLR = *On;                           
         Return;                                     
     /End-Free           
    

    The READ includes an E extender, which tells the RPG compiler not to stop if the read ends in error. After the READ and the usual check for end-of-file, I use the %ERROR built-in function to trap the locked records. If the read failed, I read again, but this time without a lock. This second read allows me to move the file pointer to the next record.

    In this example, I didn’t verify that the read error was caused by a lock. If you need to get that granular, check the %STATUS built-in function for a value of 1218.

    Thanks for writing about record locking. It’s a big deal in my shop.

    –Don

    Thanks for the example, Don. We’ve run several tips about record locking, and I have more to cover when I can get to it.

    –Ted

    RELATED STORIES

    Bypassing a Locked Record

    Avoiding Record Locks in RPG

    CL-Like Error Handling in RPG

    Readers Insights and Feedback: Dealing with Record Locks

    Release That Record Lock!



                         Post this story to del.icio.us
                   Post this story to Digg
        Post this story to Slashdot

    Share this:

    • Share on Reddit (Opens in new window) Reddit
    • Share on Facebook (Opens in new window) Facebook
    • Share on LinkedIn (Opens in new window) LinkedIn
    • Share on X (Opens in new window) X
    • Email a link to a friend (Opens in new window) Email

    Tags:

    Sponsored by
    New Generation Software, Inc.

    It’s Time!
    Replace IBM Query/400 and DB2 Web Query with NGS-IQ.

    IBM retired Query/400 and DB2 Web Query long ago. Is your company still at the party?
    Don’t keep your users waiting.

    Watch a demo on demand and see how NGS-IQ can save you time creating and updating ad-hoc queries; production reports; Excel sheets, tables, and ranges; Adobe PDF files; Web reports; and multidimensional models.

    www.ngsi.com – 800-824-1220

    Share this:

    • Share on Reddit (Opens in new window) Reddit
    • Share on Facebook (Opens in new window) Facebook
    • Share on LinkedIn (Opens in new window) LinkedIn
    • Share on X (Opens in new window) X
    • Email a link to a friend (Opens in new window) Email

    Sponsored Links

    New Generation Software:  Run IBM Query/400 from your Windows desktop!
    Bug Busters Software Engineering:  High availability software that won't break the bank
    COMMON:  Join us at the 2009 annual meeting and expo, April 26-30, Reno, Nevada

    IT Jungle Store Top Book Picks

    Easy Steps to Internet Programming for AS/400, iSeries, and System i: List Price, $49.95
    Getting Started with PHP for i5/OS: List Price, $59.95
    The System i RPG & RPG IV Tutorial and Lab Exercises: List Price, $59.95
    The System i Pocket RPG & RPG IV Guide: List Price, $69.95
    The iSeries Pocket Database Guide: List Price, $59.00
    The iSeries Pocket Developers' Guide: List Price, $59.00
    The iSeries Pocket SQL Guide: List Price, $59.00
    The iSeries Pocket Query Guide: List Price, $49.00
    The iSeries Pocket WebFacing Primer: List Price, $39.00
    Migrating to WebSphere Express for iSeries: List Price, $49.00
    iSeries Express Web Implementer's Guide: List Price, $59.00
    Getting Started with WebSphere Development Studio for iSeries: List Price, $79.95
    Getting Started With WebSphere Development Studio Client for iSeries: List Price, $89.00
    Getting Started with WebSphere Express for iSeries: List Price, $49.00
    WebFacing Application Design and Development Guide: List Price, $55.00
    Can the AS/400 Survive IBM?: List Price, $49.00
    The All-Everything Machine: List Price, $29.95
    Chip Wars: List Price, $29.95

    Infor Begins North American VAR Recruitment Drive Be Specific When Updating With SQL Cursors

    2 thoughts on “Bypassing a Locked Record, Take Two”

    • Glenn Gundermann says:
      August 11, 2021 at 9:45 am

      The two links to Bypassing a Locked Record don’t work.

      Reply
    • James Ryberg says:
      December 21, 2022 at 2:26 pm

      I coded the record lock skip above and is not working? It is caught in a loop…

      Reply

    Leave a ReplyCancel reply

Volume 9, Number 1 -- January 7, 2009
THIS ISSUE SPONSORED BY:

Help/Systems
WorksRight Software
MKS

Table of Contents

  • Bypassing a Locked Record, Take Two
  • Be Specific When Updating With SQL Cursors
  • Admin Alert: Looking for i5/OS Trouble, Part I

Content archive

  • The Four Hundred
  • Four Hundred Stuff
  • Four Hundred Guru

Recent Posts

  • Inside The Encryption Key Management Changes In IBM i 7.6
  • FalconStor Moved To The Blue Lagoon, And Is Poised For Growth Because Of It
  • Guru: Claude’s SQL Tip
  • Astera Makes Extracting Legacy Report Data an AI Specialty
  • IBM i PTF Guide, Volume 28, Number 27
  • Welcoming The New IBM i Chief Architect And Other New Top Brass
  • A Deep Dive Into That Power S1112 Entry Power11 Server
  • Guru: Beyond Three-Part Naming – Running SQL Across Remote IBM i Systems
  • How IBM Bolstered IBM i Resilience In The Summer Tech Refreshes
  • IBM i PTF Guide, Volume 28, Number 26

Subscribe

To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

Pages

  • About Us
  • Contact
  • Contributors
  • Four Hundred Monitor
  • IBM i PTF Guide
  • Media Kit
  • Subscribe

Search

Copyright © 2025 IT Jungle