ibm-information-center/dist/eclipse/plugins/i5OS.ic.cl_5.4.0.1/rclstg.htm

381 lines
17 KiB
HTML

<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Reclaim Storage (RCLSTG)</title>
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body bgcolor="white">
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<a name="RCLSTG.Top_Of_Page"></a>
<h2>Reclaim Storage (RCLSTG)</h2>
<table width="100%">
<tr>
<td valign="top" align="left"><b>Where allowed to run: </b>Interactive environments (*INTERACT *IPGM *IREXX *EXEC)<br>
<b>Threadsafe: </b>No
</td>
<td valign="top" align="right">
<a href="#RCLSTG.PARAMETERS.TABLE">Parameters</a><br>
<a href="#RCLSTG.COMMAND.EXAMPLES">Examples</a><br>
<a href="#RCLSTG.ERROR.MESSAGES">Error messages</a></td>
</tr>
</table>
<div> <a name="RCLSTG"></a>
<p>The Reclaim Storage (RCLSTG) command corrects, where possible, objects that were incompletely updated (such as database files, libraries, device descriptions, directories and stream files) and user profiles containing incorrectly recorded object ownership information. Any unusable objects or fragments are deleted.
</p>
<p>This command reclaims all objects secured by an authorization list that is damaged or destroyed and assigns the objects to the authorization list QRCLAUTL.
</p>
<p>Because the amount of time required to run this command varies with the number of objects in auxiliary storage, the system will display a panel to the work station where the command was specified, showing the progress of the command's execution. The 'Time Remaining' column will show blanks for a RCLSTG step if no statistics have been collected yet that would enable the RCLSTG command to estimate the total time required for that step.
</p>
<p>You can specify *YES for the ESTIMATE parameter to get an estimate of how long the RCLSTG command will take to run. When ESTIMATE(*YES) is specified, messages that show the estimated amount of time are sent to the job log, and no reclaim function is performed.
</p>
<p>The RCLSTG command can also be used to reclaim storage when, during an IPL, not enough storage is available to make the system fully operational. In that case, the system operator can specify the command immediately after receiving the message about insufficient storage.
</p>
<p>If very little additional auxiliary storage is available, the system overhead required to run the RCLSTG command may need more than the remaining storage; in that case, the RCLSTG command fails.
</p>
<p>
<b>Note: </b>The RCLSTG command can be a long-running function, depending on the number and type of objects in the system, and the amount of damage to them. Because RCLSTG touches each object multiple times, having enough memory can significantly reduce the time required to run RCLSTG. Conversely, having too little memory can lead to storage thrashing which can significantly increase the time required to run RCLSTG. If database file objects are damaged, the keyed access paths may need to be rebuilt; that operation takes a substantial amount of time. If the RCLSTG command can be run at the user's discretion, the user may want to avoid the operation until the required time can be scheduled.
</p>
<p>You can select to run just the directory recovery portion of RCLSTG by specifying SELECT(*DIR). This will reclaim only directories and objects related to the integrated file system.
</p>
<p>There are several reclaim commands that perform a subset of the RCLSTG's functions. These commands are: Reclaim Object Links (RCLLNK), Reclaim Database Cross-Reference (RCLDBXREF), Reclaim Objects by Owner (RCLOBJOWN), Reclaim Document Lib Object (RCLDLO), Reclaim Library (RCLLIB) and Reclaim Spool Storage (RCLSPLSTG). Refer to those commands for details on the functions that they perform.
</p>
<p><b>Restrictions:</b>
</p>
<ol>
<li>This command is shipped with public *EXCLUDE authority and the QPGMR, QSYSOPR, QSRV, and QSRVBAS user profiles have private authorities to use the command.
</li>
<li>If option *SYSBAS is specified on the ASPDEV parameter, all subsystems must be inactive before the RCLSTG command can be specified. The End System (ENDSYS) or End Subsystem (ENDSBS) command with *ALL specified on the SBS parameter can be used to make the subsystems inactive. You must have job control (*JOBCTL) authority to use the ENDSYS or the ENDSBS command.
</li>
<li>Only permanent objects in auxiliary storage are reclaimed; temporary objects are reclaimed by running a system initial program load (IPL).
</li>
<li>Before running the RCLSTG command after an IPL, you may need to wait several minutes for the IPL to complete. Use the Work with Active Jobs (WRKACTJOB) command to verify that no jobs are running.
</li>
<li>If option *SYSBAS is specified for the ASPDEV parameter, this job must be in the controlling subsystem and must be the only job active in the system.
</li>
<li>Network server descriptions (NWSD) must be varied-off in order to run RCLSTG.
</li>
<li>When option *SYSBAS is specified for the ASPDEV parameter, all the auxiliary storage pool (ASP) devices configured in the system must be in the VARY OFF status.
</li>
<li>If an auxiliary storage pool (ASP) device or an ASP group is specified on the ASPDEV parameter, it cannot have active users or be in use by a different job. The ASP device or group has to be in the AVAILABLE or FAILED status to allow the RCLSTG command to run.
</li>
<li>The directory conversion function must not be active while RCLSTG runs. The Convert Directory (CVTDIR) command with OPTION(*CHECK) can be used to verify directory conversion is not active. Otherwise, option OMIT(*DIR) should be specified to omit the directory recovery portion of the reclaim function.
</li>
<li>In order to provide an estimate of the amount of time that a future RCLSTG will require, statistics are collected when running the RCLSTG ESTIMATE(*NO) command. If you specify ESTIMATE(*YES) and these statistics are not available, escape message CPF8281 is issued.
</li>
</ol>
</div>
<table width="100%">
<tr><td align="right"><a href="#RCLSTG.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div>
<h3><a name="RCLSTG.PARAMETERS.TABLE">Parameters</a></h3>
<table border="1" cellpadding="4" cellspacing="0">
<!-- col1="10" col2="15" col3="30" col4="10" -->
<tr>
<th bgcolor="aqua" valign="bottom" align="left">Keyword</th>
<th bgcolor="aqua" valign="bottom" align="left">Description</th>
<th bgcolor="aqua" valign="bottom" align="left">Choices</th>
<th bgcolor="aqua" valign="bottom" align="left">Notes</th>
</tr>
<tr>
<td valign="top"><a href="#RCLSTG.ESTIMATE"><b>ESTIMATE</b></a></td>
<td valign="top">Estimate time required</td>
<td valign="top"><b><u>*NO</u></b>, *YES</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#RCLSTG.SELECT"><b>SELECT</b></a></td>
<td valign="top">Select</td>
<td valign="top"><b><u>*ALL</u></b>, *DBXREF, *DIR</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#RCLSTG.OMIT"><b>OMIT</b></a></td>
<td valign="top">Omit</td>
<td valign="top"><b><u>*NONE</u></b>, *DBXREF, *DIR</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#RCLSTG.ASPDEV"><b>ASPDEV</b></a></td>
<td valign="top">ASP device or group</td>
<td valign="top"><i>Name</i>, <b><u>*SYSBAS</u></b></td>
<td valign="top">Optional</td>
</tr>
</table>
<table width="100%">
<tr><td align="right"><a href="#RCLSTG.Top_Of_Page">Top</a></td></tr>
</table>
</div>
<div> <a name="RCLSTG.ESTIMATE"></a>
<h3>Estimate time required (ESTIMATE)</h3>
<p>Specifies whether to calculate an estimate for the amount of time that RCLSTG command will take to run. The estimate is calculated by using statistics collected during previous RCLSTG operations and the values specified for the other RCLSTG parameters.
</p>
<dl>
<dt><b><u>*NO</u></b></dt>
<dd>The estimate function is not performed. The reclaim function specified by the other parameters is performed.
</dd>
<dt><b>*YES</b></dt>
<dd>The estimate function is performed for the type of reclaim specified by the other parameters. Nothing is reclaimed. If SELECT(*DBXREF) is specified, no estimate can be provided. Instead, the time it took to run the last RCLSTG SELECT(*DBXREF) is provided, if available. Messages are displayed showing the results of the estimate.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RCLSTG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RCLSTG.SELECT"></a>
<h3>Select (SELECT)</h3>
<p>Specifies whether to perform all reclaim functions or only one specific reclaim function.
</p>
<dl>
<dt><b><u>*ALL</u></b></dt>
<dd>All reclaim functions are performed including, but not limited to, database cross-reference table reclaim and directory recovery functions.
</dd>
<dt><b>*DBXREF</b></dt>
<dd>Only the database cross-reference table reclaim function is performed.
</dd>
<dt><b>*DIR</b></dt>
<dd>Only the directory recovery portion of the reclaim function is performed.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RCLSTG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RCLSTG.OMIT"></a>
<h3>Omit (OMIT)</h3>
<p>Specifies the reclaim functions to be omitted from the reclaim operation.
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>No reclaim functions are omitted.
</dd>
<dt><b>*DBXREF</b></dt>
<dd>The database cross-reference table reclaim function is omitted.
</dd>
<dt><b>*DIR</b></dt>
<dd>The directory recovery portion of the reclaim function is omitted.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RCLSTG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RCLSTG.ASPDEV"></a>
<h3>ASP device or group (ASPDEV)</h3>
<p>Specifies the auxiliary storage pool (ASP) to be reclaimed.
</p>
<dl>
<dt><b><u>*SYSBAS</u></b></dt>
<dd>The system ASP and all basic ASPs are reclaimed. The system ASP has an ASP number of 1. Basic ASPs have ASP numbers of 2 through 32.
</dd>
<dt><b><i>auxiliary-storage-pool-device-name</i></b></dt>
<dd>The specified ASP device is reclaimed. ASP devices have ASP numbers greater than 32. Reclaim storage for an ASP device can be run without being in restricted state. The ASP device must be in the AVAILABLE or FAILED status to reclaim it. You can submit multiple jobs, each performing RCLSTG on a different ASP device, to reclaim multiple ASP devices in parallel.
</dd>
<dt><b><i>auxiliary-storage-pool-group-name</i></b></dt>
<dd>The primary ASP and the secondary ASPs within the ASP group are reclaimed. The name of any ASP within the ASP group is accepted. Primary and secondary ASPs have ASP numbers greater than 32. Reclaim storage for an ASP group can be run without being in restricted state. The ASP device must be in the AVAILABLE or FAILED status to reclaim it. You can submit multiple jobs, each performing RCLSTG on a different ASP group, to reclaim multiple ASP groups in parallel.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RCLSTG.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="RCLSTG.COMMAND.EXAMPLES">Examples</a> </h3>
<p><b>Example 1: Reclaim Storage of the System ASP and All Basic ASPs</b>
</p>
<p>
<pre>
RCLSTG
</pre>
</p>
<p>This command, specified interactively, locates all system objects. Objects without owners are given default owners, and those that are lost from their specified libraries are inserted into the QRCL library or the default library, or are deleted.
</p>
<p>Objects that are lost from their specified directories are inserted into the '/QReclaim' directory (if the object was originally located in the root file system) or the '/QOpenSys/QReclaim' directory (if the object was originally located in the QOpenSys file system).
</p>
<p>Lost objects that are deleted are certain user objects and certain i5/OS system objects that are damaged and not usable.
</p>
<p>The QRCL library, which is created (when needed) by the RCLSTG command, is a permanent library.
</p>
<p>The '/QReclaim' and '/QOpenSys/QReclaim' directories, which are created (when needed) by the RCLSTG command, are permanent directories; but if they contain no objects at the end of the operation because they were all reclaimed, the directories are deleted.
</p>
<p><b>Example 2: Reclaim Storage to Reclaim the Database Cross-reference Table</b>
</p>
<p>
<pre>
RCLSTG SELECT(*DBXREF)
</pre>
</p>
<p>This command reclaims the database cross-reference table.
</p>
<p><b>Example 3: Reclaim Storage of the Entire System that Omits the Reclaim of the Database Cross-reference Table</b>
</p>
<p>
<pre>
RCLSTG OMIT(*DBXREF)
</pre>
</p>
<p>This command performs all reclaim storage functions but omits the reclaim of the database cross-reference table.
</p>
<p><b>Example 4: Reclaim Storage that Omits the Reclaim of the Directories</b>
</p>
<p>
<pre>
RCLSTG OMIT(*DIR)
</pre>
</p>
<p>This command performs all reclaim storage functions but omits the reclaim of the directories.
</p>
<p><b>Example 5: Reclaim Storage of an ASP Device</b>
</p>
<p>
<pre>
RCLSTG ASPDEV(MYASPDEV)
</pre>
</p>
<p>This command reclaims storage for the ASP device name MYASPDEV.
</p>
<p><b>Example 6: Reclaim Storage to Reclaim the Directory Portion of the System ASP and All Basic ASPs</b>
</p>
<p>
<pre>
RCLSTG SELECT(*DIR)
</pre>
</p>
<p>Objects that are lost from their specified directories are inserted into the '/QReclaim' directory (if the object was originally located in the root file system) or the '/QOpenSys/QReclaim' directory (if the object was originally located in the QOpenSys file system).
</p>
<p><b>Example 7: Reclaim Storage to Reclaim the Directories of an ASP Device</b>
</p>
<p>
<pre>
RCLSTG SELECT(*DIR) ASPDEV(MYASPDEV)
</pre>
</p>
<p>This command reclaims directories for the ASP device name MYASPDEV.
</p>
<p><b>Example 8: Estimate the Time that the Next Full RCLSTG Will Take to Run</b>
</p>
<p>
<pre>
RCLSTG ESTIMATE(*YES)
</pre>
</p>
<p>This command estimates the time that the next full RCLSTG will take to run for each one of the major steps:
</p>
<ul>
<li>Reading objects from disk.
</li>
<li>File ID table recovery.
</li>
<li>Directory recovery.
</li>
<li>Object description verification.
</li>
</ul>
<p>Messages are sent to the job log giving the estimated amount of time for each major RCLSTG step.
</p>
<p><b>Example 9: Estimate the Time that the Next RCLSTG of an ASP Device Will Take to Run</b>
</p>
<p>
<pre>
RCLSTG ESTIMATE(*YES) ASPDEV(MYASPDEV)
</pre>
</p>
<p>This command estimates the time that the next RCLSTG of ASP device name MYASPDEV will take. Messages are sent to the job log giving the estimated amount of time for each major RCLSTG step.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#RCLSTG.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="RCLSTG.ERROR.MESSAGES">Error messages</a> </h3>
<p><b><u>*ESCAPE Messages</u></b>
</p>
<dl>
<dt><b>CPF180B</b></dt>
<dd>Function &amp;1 not allowed.
</dd>
<dt><b>CPF180C</b></dt>
<dd>Function &amp;1 not allowed.
</dd>
<dt><b>CPF2119</b></dt>
<dd>Library &amp;1 locked.
</dd>
<dt><b>CPF2120</b></dt>
<dd>Library &amp;1 locked.
</dd>
<dt><b>CPF2126</b></dt>
<dd>&amp;1 libraries not validated.
</dd>
<dt><b>CPF2127</b></dt>
<dd>User profile &amp;2 damaged.
</dd>
<dt><b>CPF5729</b></dt>
<dd>Not able to allocate object &amp;1.
</dd>
<dt><b>CPF8201</b></dt>
<dd>User profile &amp;1 does not exist or is damaged.
</dd>
<dt><b>CPF8204</b></dt>
<dd>Commitment control cannot be active during RCLSTG or RCLOBJOWN.
</dd>
<dt><b>CPF8205</b></dt>
<dd>Library &amp;1 does not exist or is damaged.
</dd>
<dt><b>CPF8206</b></dt>
<dd>Directory conversion cannot be active during RCLSTG or RCLLNK.
</dd>
<dt><b>CPF8209</b></dt>
<dd>System not in proper state to reclaim storage.
</dd>
<dt><b>CPF8210</b></dt>
<dd>Reclaim storage failed for auxiliary storage pool device or group &amp;2.
</dd>
<dt><b>CPF8211</b></dt>
<dd>Library &amp;1 damaged. RCLSTG command ended.
</dd>
<dt><b>CPF8212</b></dt>
<dd>SELECT(*DBXREF) or OMIT(*DBXREF) not allowed when reclaiming a UDFS ASP.
</dd>
<dt><b>CPF8214</b></dt>
<dd>Estimate option cannot be performed.
</dd>
<dt><b>CPF8216</b></dt>
<dd>SELECT(*DBXREF) or OMIT(*DBXREF) not allowed for a UDFS ASP.
</dd>
<dt><b>CPF8224</b></dt>
<dd>Duplicate object found while moving or renaming member.
</dd>
<dt><b>CPF8232</b></dt>
<dd>Commitment definitions prevent RCLSTG or RCLOBJOWN.
</dd>
<dt><b>CPF8251</b></dt>
<dd>RCLSTG command ended. Library &amp;1 damaged.
</dd>
<dt><b>CPF8252</b></dt>
<dd>Error occurred during rebuild of damaged library &amp;1.
</dd>
<dt><b>CPF8281</b></dt>
<dd>Unable to estimate time required to run RCLSTG.
</dd>
<dt><b>CPF9814</b></dt>
<dd>Device &amp;1 not found.
</dd>
<dt><b>CPFA473</b></dt>
<dd>Network server &amp;1 must be varied off.
</dd>
<dt><b>CPFB8ED</b></dt>
<dd>Device description &amp;1 not correct for operation.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RCLSTG.Top_Of_Page">Top</a></td></tr>
</table>
</body>
</html>