<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="en-us" xml:lang="en-us"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="security" content="public" /> <meta name="Robots" content="index,follow" /> <meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' /> <meta name="DC.Type" content="reference" /> <meta name="DC.Title" content="Save-while-active object locking rules" /> <meta name="DC.Relation" scheme="URI" content="rzaiuswaconsid.htm" /> <meta name="DC.Relation" scheme="URI" content="rzaiurzaiu320.htm" /> <meta name="DC.Relation" scheme="URI" content="rzaiurzaiu321.htm" /> <meta name="DC.Relation" scheme="URI" content="rzaiurzaiu314.htm" /> <meta name="copyright" content="(C) Copyright IBM Corporation 2004, 2006" /> <meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2004, 2006" /> <meta name="DC.Format" content="XHTML" /> <meta name="DC.Identifier" content="rzaiu319" /> <meta name="DC.Language" content="en-us" /> <!-- All rights reserved. Licensed Materials Property of IBM --> <!-- US Government Users Restricted Rights --> <!-- Use, duplication or disclosure restricted by --> <!-- GSA ADP Schedule Contract with IBM Corp. --> <link rel="stylesheet" type="text/css" href="./ibmdita.css" /> <link rel="stylesheet" type="text/css" href="./ic.css" /> <title>Save-while-active object locking rules</title> </head> <body id="rzaiu319"><a name="rzaiu319"><!-- --></a> <!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script> <h1 class="topictitle1">Save-while-active object locking rules</h1> <div><div class="section"><p>The object locking rules that the server 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 server performs checkpoint processing. Generally, the server keeps a shared, no update (*SHRNUP) lock on the objects through the checkpoint processing. After the establishes checkpoints, the server unlocks most of the objects. Other objects remain allocated with a shared for read (*SHRRD) lock.</p> </div> <div class="section"><div class="p">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. <div class="tablenoborder"><a name="rzaiu319__savlock"><!-- --></a><table cellpadding="4" cellspacing="0" summary="" id="rzaiu319__savlock" width="100%" frame="hsides" border="0" rules="none"><caption>Table 1. Lock Type Needed for Save Operation</caption><thead align="left"><tr><th valign="top" width="39.963833634719705%" id="d0e29"> </th> <th valign="top" width="20.07233273056058%" id="d0e30"> </th> <th colspan="2" align="center" valign="bottom" id="d0e31">Save-While-Active</th> </tr> <tr><th align="left" valign="bottom" width="39.963833634719705%" id="d0e34">Object Type</th> <th align="left" valign="bottom" width="20.07233273056058%" id="d0e36">SAVACT(*NO)</th> <th align="left" valign="bottom" width="20.07233273056058%" id="d0e38">Establish Checkpoint</th> <th align="left" valign="bottom" width="19.89150090415913%" id="d0e40">After Checkpoint</th> </tr> </thead> <tbody><tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Most object types</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*SHRNUP</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 ">*SHRNUP</td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 ">None</td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Configuration object</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">None</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 "><sup>1</sup></td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 "><sup>1</sup></td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Data area</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*SHRNUP</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 ">*SHRRD</td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 ">None</td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Database members</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*SHRNUP</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 ">*SHRRD</td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 ">None</td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Document</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*SHRNUP</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 ">*SHRRD</td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 ">None</td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Folder</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*SHRRD</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 ">*SHRRD</td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 ">None</td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Job queue</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*SHRRD</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 ">*SHRRD</td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 ">None</td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Journal</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*SHRRD</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 ">*SHRRD</td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 ">None</td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Journal receiver</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*SHRRD</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 ">*SHRRD</td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 ">*SHRRD</td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Library, when the library or an object in it is being saved</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*SHRUPD</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 ">*SHRUPD</td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 ">*SHRRD</td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Output queue</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*SHRRD</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 ">*SHRRD</td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 ">None</td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Product load</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*SHRNUP</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 ">*SHRNUP</td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 ">*SHRRD</td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">System resource management object</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*SHRNUP</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 "><sup>1</sup></td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 "><sup>1</sup></td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">User profiles, authorization lists, and authority holders</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*SHRRD</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 "><sup>1</sup></td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 "><sup>1</sup></td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Object, if STG(*FREE) is specified</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">*EXCL<sup>2</sup></td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 "><sup>1</sup></td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 "><sup>1</sup></td> </tr> <tr><td align="left" valign="top" width="39.963833634719705%" headers="d0e29 d0e34 ">Objects in directories</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e30 d0e36 ">Share with readers</td> <td align="left" valign="top" width="20.07233273056058%" headers="d0e31 d0e38 ">Share with readers<sup>3, 4</sup></td> <td align="left" valign="top" width="19.89150090415913%" headers="d0e31 d0e40 ">Share with readers and writers<sup>3</sup></td> </tr> <tr><td colspan="4" align="left" valign="top" headers="d0e29 d0e30 d0e31 d0e34 d0e36 d0e38 d0e40 "> <dl><dt class="dlterm"><sup>1</sup></dt> <dd>The save-while-active function is not available when saving these objects.</dd> <dt class="dlterm"><sup>2</sup></dt> <dd>Applies to document, file, journal receiver, module, program, SQL package, and service program. Other types remain as listed previously.</dd> <dt class="dlterm"><sup>3</sup></dt> <dd>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.</dd> <dt class="dlterm"><sup>4</sup></dt> <dd>Objects that are saved with SAVACTOPT(*ALWCKPWRT) and have the QP0L_ATTR_ALWCKPWRT system attribute set, have an implied <em>share with readers and writers</em> lock.</dd> </dl> </td> </tr> </tbody> </table> </div> </div> </div> <div class="section"><p>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.</p> </div> </div> <div> <ul class="ullinks"> <li class="ulchildlink"><strong><a href="rzaiurzaiu320.htm">Object locking: During save-while-active checkpoint processing</a></strong><br /> </li> <li class="ulchildlink"><strong><a href="rzaiurzaiu321.htm">Object locking: After save-while-active checkpoint processing</a></strong><br /> </li> </ul> <div class="familylinks"> <div class="parentlink"><strong>Parent topic:</strong> <a href="rzaiuswaconsid.htm">Considerations and restrictions for the save-while-active function</a></div> </div> <div class="relconcepts"><strong>Related concepts</strong><br /> <div><a href="rzaiurzaiu314.htm">Save-while-active restrictions</a></div> </div> </div> </body> </html>