Save-while-active object locking rules

The object locking rules that the system uses for save-while-active requests are less restrictive than the rules it uses for other save operations.

These object locking rules allow users to perform update operations and use most object-level commands after the system performs checkpoint processing. Generally, the system keeps a shared, no update (*SHRNUP) lock on the objects through the checkpoint processing. After the checkpoint completes, the system unlocks most of the objects. Other objects remain allocated with a shared for read (*SHRRD) lock.

The following table shows the locks a normal save operation holds, by a save-while-active operation during checkpoint processing, and by a save-while-active operation after checkpoint processing is complete.
Table 1. Lock type needed for save operation
    Save-While-Active
Object Type SAVACT(*NO) Establish Checkpoint After Checkpoint
Most object types *SHRNUP *SHRNUP None
Configuration object None 1 1
Data area *SHRNUP *SHRRD6 None
Database members *SHRNUP *SHRRD None
Document *SHRNUP *SHRRD None
Folder *SHRRD *SHRRD None
Job queue *SHRRD *SHRRD None
Journal *SHRRD *SHRRD None
Journal receiver *SHRRD *SHRRD *SHRRD
Library, when the library or an object in it is being saved *SHRUPD *SHRUPD *SHRRD
Output queue *SHRRD *SHRRD None
Product load *SHRNUP *SHRNUP *SHRRD

Spooled file

*EXCL *EXCL 5
System resource management object *SHRNUP 1 1
User profiles, authorization lists, and authority holders *SHRRD 1 1
Object, if STG(*FREE) is specified *EXCL2 1 1
Objects in directories Share with readers Share with readers3, 4 Share with readers and writers3
1
The save-while-active function is not available when saving these objects.
2
Applies to document, file, journal receiver, module, program, SQL package, and service program. Other types remain as listed previously.
3
Objects in QNTC are not synchronized with SAVACT(*SYNC). Furthermore, all locks for these file systems will be released before the checkpoint message is sent.
4
Objects that are saved with SAVACTOPT(*ALWCKPWRT) and have the QP0L_ATTR_ALWCKPWRT system attribute set, have an implied share with readers and writers lock.
5
A lock is held that prevents another save action against the spooled file. All other spooled file actions, such as displaying, copying, deleting, and printing, are allowed.
6
An internal lock is also held that prevents changes to the object during save-while-active checkpoint processing.

These locking rules pertain to object-level locks and not database record-level locks. The locking rules allow the opening and closing of database file members and any record-level I/O operations to database file members during any phase of the save-while-active operation.