IRLM uses an IMS-specific lock table in DB Control. This lock table tracks locks by session using the database name and root segment relative-byte-address (RBA). This lock can define one of three lock states:
- READ
- Database record in use. Allows READ access from other sessions but blocks UPDATE-INTENT and UPDATE lock requests. If the application program PCB that issued the READ lock passes scope to another database record without updating any segments this READ lock is released.
- UPDATE-INTENT
- The database record is locked exclusively when accessed using a hold call (GHU, GHN, GHNP) which may be followed by a REPL or DLET call. If the application program PCB that issued the lock passes scope to another database record without updating any segments, this UPDATE-INTENT lock is released.
- UPDATE
- Database record has been updated via ISRT, REPL or DLET call and will remain locked until the application program reaches a commit point. These locks do not release on passing scope.