Locking of Source Objects

#### Search Results

Search

# Locking of Source Objects

Natural provides locking mechanisms that prevent concurrent updating of Natural source objects. These mechanisms allow the locking of source objects that are edited in a local z/OS environment and/or in a SPoD (Natural Single Point of Development) environment connected to a z/OS server.

You can activate or deactivate different object locking mechanisms by using the profile parameter `SLOCK` (see also the Parameter Reference):

- Locking in Local and SPoD Environments
  `SLOCK=PRE` activates locking of source objects that are edited either locally or in a SPoD environment, or using Natural ISPF, or in mixed environments.

  `SLOCK=PRE` is the recommended setting when working in mixed environments.

- Locking in SPoD Environments
  The default setting `SLOCK=SPOD` activates object locking only in a SPoD environment. A source object is then only locked when it is edited using Natural Studio. For further information, see Object Locking in the section Remote Development using SPoD in the Natural for Windows documentation.

  In a SPoD environment, `SLOCK=SPOD` provides compatibility with previous Natural Versions that supported locking under SPoD.

- Checking for Latest Modification
  When setting `SLOCK=POST`, the source object which is being edited can be read into the source work area and modified by multiple users. However, only the user who saves a modification first can update the source object. This is done by comparing the time stamp of the source object stored in the database with the time stamp of the source object when it is read into the source work area. All other users receive appropriate error messages when trying to save the source. This is not compatible with the SPoD locking concept of previous Natural versions.

- Locking Deactivated
  `SLOCK=OFF` deactivates all locking mechanisms.

The principles of object locking with profile parameter `SLOCK=PRE` set in a local environment are described in the following sections.

- Source Editing

- Saving Objects

- Unlocking Objects

- Moving, Deleting, Renaming and Replacing Objects

## Source Editing

The sources of the following types of Natural object are locked while they are being edited with the appropriate Natural editor:

- Program

- Subprogram

- Subroutine

- Copycode

- Helproutine

- Text

- Map

- Local data area

- Global data area

- Parameter data area

- DDM (data definition module)

- Function

When you invoke a Natural editor, the source contained in the source work area will be locked. If the source object you want to edit has already been locked by another user (as indicated by an appropriate message), the source can be displayed in the editor but without an object name at the top of the screen. If you modify the source and want to keep the modifications, you have to save the source as a new source object with a new name.

Note
Reading in a source into the source work area by using the `READ` command does not lock the source object. A source object is only locked when you invoke the Natural editor.

## Saving Objects

You cannot save (`SAVE` and `STOW` commands) a source that is being locked by another user.

## Unlocking Objects

A locked source object contained in the source work area is unlocked when you do any of the following:

- clear the source work area,

- read in the source of another source object into the source work area,

- log on to another library,

- terminate the Natural session,

- leave the Natural editor while the Leave Editor with Unlock option is set in the editor profile (see also General Defaults in Editor Profile in the section General Information). This option determines whether the source contained in the current source work area is unlocked when leaving the editor. This also applies to maps and DDMs.

You can use the `UNLOCK` system command (see the System Commands documentation) to view locked source objects or unlock them if required.

## Moving, Deleting, Renaming and Replacing Objects

Object locking is also considered when using the system command `DELETE` or `RENAME`, the Object Handler or the utility SYSMAIN.

When you move, delete, rename or replace a source object, the locking state of the object is checked:

- When the source object is locked, command execution is rejected.

- When the source object is not locked, the command is executed.

### Restrictions

The utilities SYSRPC, SYSPARM and SYSERR do not support object locking.

### On this page

- Source Editing
- Saving Objects
- Unlocking Objects
- Moving, Deleting, Renaming and Replacing Objects