337 lines
10 KiB
HTML
337 lines
10 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">
|
|
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
|
|
<title>Exit Program for Move Stream File (QHFMOVSF) API</title>
|
|
<!-- 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. -->
|
|
<!--File Edited November 2001 -->
|
|
<!--End Header Records -->
|
|
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
|
|
</head>
|
|
<body>
|
|
<a name="Top_of_Page"></a>
|
|
<!--Java sync-link-->
|
|
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
|
|
|
<h2>Exit Program for Move Stream File (QHFMOVSF) API</h2>
|
|
|
|
<div class="box" style="width: 70%;">
|
|
<br>
|
|
Required Parameter Group:<br>
|
|
<!-- iddvc RMBR -->
|
|
<br>
|
|
<table width="100%">
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">1</td>
|
|
<td align="left" valign="top" width="50%">Operation (MOVSF)</td>
|
|
<td align="left" valign="top" width="20%">Input</td>
|
|
<td align="left" valign="top" width="20%">Char(5)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">2</td>
|
|
<td align="left" valign="top">File system job handle</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Char(16)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">3</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Char(20)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">Source file path name</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Char(*)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">5</td>
|
|
<td align="left" valign="top">Source file path name length</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Binary(4)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">6</td>
|
|
<td align="left" valign="top">Target file path name</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Char(*)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">7</td>
|
|
<td align="left" valign="top">Target file path name length</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Binary(4)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">File system names</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Char(20)</td>
|
|
</tr>
|
|
</table>
|
|
<br>
|
|
</div>
|
|
|
|
<p>Before applications can use the Move Stream File (QHFMOVSF) API with your file system, you must:</p>
|
|
|
|
<ol>
|
|
<li>Write an exit program that performs the move stream file operation on behalf of the API. For a detailed description of the API and its calling parameters, see <a href="qhfmovsf.htm">Move Stream File (QHFMOVSF) API</a>.<br><br></li>
|
|
|
|
<li>Give the exit program's name when you register the file system with the Register File System (QHFRGFS) API. In the registration-information parameter of the QHFRGFS API, indicate whether this exit program can be used for move operations involving two different file systems.</li>
|
|
</ol>
|
|
|
|
<p>After that, when an application calls the QHFMOVSF API, the API calls your exit program and passes it the parameters specified by the application. Your exit program performs the work and returns any data to the API. The API passes the data back to the calling application.</p>
|
|
|
|
<br>
|
|
<!-- Please NOTE: DO NOT DELETE THIS SECTION if this API has no authorities and locks. -->
|
|
<!-- Instead, use the commented out coding below to indicate NONE. -->
|
|
<h3>Authorities and Locks</h3>
|
|
|
|
<!-- Use this if there are no authorities and locks. -->
|
|
<p>None.</p>
|
|
|
|
<br>
|
|
<h3>Required Parameter Group</h3>
|
|
|
|
<p>The API passes this information to your exit program:</p>
|
|
|
|
<dl>
|
|
<dt><strong>Operation (MOVSF)</strong></dt>
|
|
<dd>INPUT; CHAR(5)
|
|
|
|
<p>The abbreviation for the operation being performed (MOVSF).</p></dd>
|
|
|
|
<dt><strong>File system job handle</strong></dt>
|
|
<dd>INPUT; CHAR(16)
|
|
|
|
<p>The work area or job identifier for use by the file system.</p></dd>
|
|
|
|
<dt><strong>Reserved</strong></dt>
|
|
<dd>INPUT; CHAR(20)
|
|
|
|
<p>Reserved for future use. This parameter is set to blanks.</p></dd>
|
|
</dl>
|
|
|
|
<p>Except as noted, the following parameters are the same as the parameters for the API.</p>
|
|
|
|
<dl>
|
|
<dt><strong>Source file path name</strong></dt>
|
|
<dd>INPUT; CHAR(*)
|
|
|
|
<p>The API removes the file system name before passing the path name to the exit program.</p></dd>
|
|
|
|
<dt><strong>Source file path name length</strong></dt>
|
|
<dd>INPUT; BINARY(4)<br><br></dd>
|
|
|
|
<dt><strong>Target file path name</strong></dt>
|
|
<dd>INPUT; CHAR(*)
|
|
|
|
<p>The API removes the file system name before passing the path name to the exit program.</p></dd>
|
|
|
|
<dt><strong>Target file path name length</strong></dt>
|
|
<dd>INPUT; BINARY(4)<br><br></dd>
|
|
|
|
<dt><strong>File system names</strong></dt>
|
|
<dd>INPUT; CHAR(20)
|
|
|
|
<p>This is not an API parameter. The API derives this information from its source and target file path name parameters. The first 10 characters contain the name of the source file system, and the second 10 characters contain the name of the target file system.</p></dd>
|
|
</dl>
|
|
|
|
<br>
|
|
<h3>API Functions</h3>
|
|
|
|
<p>The QHFMOVSF API performs the standard functions described in <a href="hfs3d.htm#HDRSTDAPI">Standard
|
|
HFS API Functions</a>.</p>
|
|
|
|
<p>When the source and target file systems are different, the API performs additional functions so that the file is moved by the most efficient means available. The processing steps are the same as those described for the Copy Stream File exit program in <a href="#Header_194">API Functions</a>, with these exceptions:</p>
|
|
|
|
<ul>
|
|
<li>The Move Stream File (QHFMOVSF) API and Move Stream File exit program are used instead of the Copy Stream File API and exit program.<br><br></li>
|
|
|
|
<li>After successful completion of the move operation, the source file system's Delete Stream File exit program is used to delete the source file.</li>
|
|
</ul>
|
|
|
|
<br>
|
|
<h3>Exit Program Requirements</h3>
|
|
|
|
<p>You must create an exit program that performs the standard functions described in <a href="hfs3d.htm#HDRSTDFS">Standard HFS Exit Program Requirements</a> and these additional functions:</p>
|
|
|
|
<ul>
|
|
<li>When the source and target file systems are different, performs the same actions described for the Copy Stream File exit program; see <a href="#Header_195">Exit Program Requirements</a>.<br><br></li>
|
|
|
|
<li>Verifies that the target file does not exist.<br><br></li>
|
|
|
|
<li>Ensures that the file being moved is not open or in use.</li>
|
|
</ul>
|
|
|
|
<br>
|
|
<h3>Error Messages for Exit Program Use</h3>
|
|
|
|
<p>This section lists the messages that the exit program can return to the API.</p>
|
|
|
|
<table cellpadding="3">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<th align="left" valign="top">Message ID</th>
|
|
<th align="left" valign="top">Error Message Text</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F01 E</td>
|
|
<td valign="top">Directory name not valid.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F02 E</td>
|
|
<td valign="top">Directory not found.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F03 E</td>
|
|
<td valign="top">New directory name same as old directory name.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F06 E</td>
|
|
<td valign="top">Directory in use.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F07 E</td>
|
|
<td valign="top">Authority not sufficient to access directory.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F08 E</td>
|
|
<td valign="top">Damaged directory.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F21 E</td>
|
|
<td valign="top">File name not valid.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F22 E</td>
|
|
<td valign="top">File not found.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F24 E</td>
|
|
<td valign="top">File name already exists.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F26 E</td>
|
|
<td valign="top">File in use.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F27 E</td>
|
|
<td valign="top">Authority not sufficient to access file.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F28 E</td>
|
|
<td valign="top">Damaged file.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F29 E</td>
|
|
<td valign="top"> Use of reserved file name not allowed.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F41 E</td>
|
|
<td valign="top">Severe error occurred while addressing parameter list.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F48 E</td>
|
|
<td valign="top">Path name not valid.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F61 E</td>
|
|
<td valign="top">No free space available on media.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F62 E</td>
|
|
<td valign="top">Requested function failed.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F63 E</td>
|
|
<td valign="top">Media is write protected.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F66 E</td>
|
|
<td valign="top">Storage needed exceeds maximum limit for user profile &1.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F71 E</td>
|
|
<td valign="top">Exception specific to file system occurred.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F73 E</td>
|
|
<td valign="top">Not authorized to use command.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F74 E</td>
|
|
<td valign="top">Not authorized to object.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F75 E</td>
|
|
<td valign="top">Error occurred during start-job-session function.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F77 E</td>
|
|
<td valign="top">Severe parameter error occurred on call to file system.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">CPF1F88 E</td>
|
|
<td valign="top">Unable to complete copy or move operation.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Note:</strong> You can use message CPF1F88 only when trying to perform cross-file-system move operations. If you use it when moving files within a single file system, an <samp>Internal file system error</samp> message is returned to the application. You can use the exit program's file-system-names parameter to determine whether the move is across file systems.</p>
|
|
|
|
<p>Because this message does not always indicate an error, the application calling the QHFMOVSF API does not receive it. It is used only to communicate between the file system's exit program and the API.</p>
|
|
|
|
<hr>
|
|
Exit Program Introduced: V2R1
|
|
|
|
<hr>
|
|
<center>
|
|
<table cellpadding="2" cellspacing="2">
|
|
<tr align="center">
|
|
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a
|
|
href="hfs1.htm">Hierarchical File System APIs</a> |
|
|
<a href="aplist.htm">APIs by category</a></td>
|
|
</tr>
|
|
</table>
|
|
</center>
|
|
</body>
|
|
</html>
|