ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/clrginitso.htm

911 lines
29 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>Initiate Switchover (QcstInitiateSwitchOver) API</title>
<!-- Begin Header Records ========================================== -->
<!-- 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. -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- CLUST3A SCRIPT A converted by B2H R4.1 (346) (CMS) by NLJONES at -->
<!-- RCHVMX on 24 Feb 1999 at 17:23:22 -->
<!-- Edited by Kersten Oct 2001 -->
<!-- End Header Records -->
<!-- -->
<!-- -->
<!-- -->
<!-- Begin Developer Note ========================================== -->
<!-- NOTE: If you are adding, changing, or removing ANY requirements -->
<!-- for this API chance are good that the GUI code need to change -->
<!-- also. The Cluster GUI code is built on top of this API and it -->
<!-- does a certain amount of explicit and implicit validation -->
<!-- checking of user data prior to the API call being made. Please -->
<!-- have the Cluster GUI developer check the -->
<!--/as400/v5r4m0.guix/cur/cmvc/java.pgm/ugcl.guix/com/ibm/as400/opnav/ugcl/ClGuiActionsManager.java/ClGuiActionsManager.java -->
<!-- part to determine if any Cluster GUI code changes are needed. -->
<!-- End Developer Note -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<!--Java sync-link-->
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<a name="Top_Of_Page"></a>
<h2>Initiate Switchover (QcstInitiateSwitchOver) API</h2>
<div class="box" style="width: 70%;">
<br>
&nbsp;&nbsp;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%">Request handle</td>
<td align="left" valign="top" width="20%">Output</td>
<td align="left" valign="top" width="20%">Char(16)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Cluster name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Cluster resource group name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Exit program data</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(256)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Results information</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(30)</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">Error code</td>
<td align="left" valign="top">I/O</td>
<td align="left" valign="top">Char(*)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Service Program: QCSTCRG2<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Default Public Authority: *EXCLUDE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Initiate Switchover (QcstInitiateSwitchOver) API changes the current roles of
nodes in the recovery domain of a cluster resource group:</p>
<ul>
<li>The current primary node is assigned the role of last active backup.</li>
<li>The current first backup is assigned the role of primary.</li>
</ul>
<p>If a backup node does not exist in the recovery domain, the switchover will
fail. If the first backup is not the desired primary, first use the <a href="clrgchgcrg.htm">Change
Cluster Resource Group (QcstChangeClusterResourceGroup)</a> API to arrange the backup nodes in recovery domain to
the desired order.</p>
<p>This API will do the following for all cluster resource group types:</p>
<ol>
<li>Set the cluster resource group status Switchover Pending (570).</li>
<li>Call the cluster resource group exit program on all active nodes in the
recovery domain with an action code of Switchover (10), if an exit program is
specified for the cluster resource group.</li>
<li>Set the cluster resource group status to Active (10) if the exit program
completes successfully.</li>
<li>Set the cluster resource group status to Indoubt (30) if the exit program
is unsuccessful and the original state of the cluster resource group cannot be
recovered.</li>
</ol>
<p>This API will do the following for resilient application cluster resource
groups:</p>
<ol>
<li>Cancel the cluster resource group exit program job with a Cancel Job
Immediate on the current primary.</li>
<li>End the takeover IP interface on the current primary.</li>
<li>Start the takeover IP interface on the new primary.</li>
<li>Start the cluster resource group exit program on the new primary.
<p><strong>Note:</strong> The application and exit program code should provide
cancel handlers to clean up the job if it is cancelled.</p>
</li>
<li>Set the cluster resource group status to Active (10) if the takeover IP address
and the cluster resource group exit program job are started.</li>
<li>Set the cluster resource group status to Indoubt (30) if either the takeover IP
address or the cluster resource group exit program job are not started.</li>
</ol>
<p>This API will do the following for resilient device cluster resource
groups:</p>
<ol>
<li>The configuration objects must exist on all active nodes in the recovery
domain and the resource names in the configuration objects must be the same on
all active nodes.</li>
<li>The current primary node must own the IOPs or high-speed link I/O bridges
for the devices configured in the cluster resource group.</li>
<li>The new primary node must be able to access the IOPs or high-speed link I/O
bridges for the devices configured in the cluster resource group.
This requirement does not apply to cross-site mirroring if the new primary node
is at a different site than the current primary node.
</li>
<li>For geographic mirroring,
if the new primary node is at a different site than the current primary node,
a role swap of auxiliary storage pools will occur where a production copy on the current
primary node becomes a mirror copy, and a mirror copy on the new primary node
becomes a production copy. If there is another active backup node at the
same site as the current primary node, the auxiliary storage pools are
moved from the current primary node to that site backup node.
</li>
<li>On the current primary node
if the cluster resource group is active, the configuration objects specified
in the cluster resource group are varied off and the server takeover IP
addresses are ended. The devices are moved to the new primary
or the role of the auxiliary storage pools are swapped (for geographic mirroring
where the new primary node is at a different site than the current primary node),
before the exit program is called on the current primary. If any of
the devices in the cluster resource group are a primary auxiliary storage pool,
all members of the auxiliary storage pool group will be varied off. Before
varying the devices off, cluster resource services will attempt to end all jobs
which are using auxiliary storage pools configured in the cluster resource
group. There are some system server jobs which will not be cancelled. If those
server jobs are performing long running operations against data on an auxiliary
storage pool, the devices may not vary off and the switchover will fail.</li>
<li>For the configuration objects specified in the cluster resource group, vary
the configuration objects on and start the server takeover IP address on the
new primary node if the entry in the cluster resource group indicates the
configuration objects is to be varied on. If any of the devices in the cluster
resource group are a primary auxiliary storage pool, all members of the
auxiliary storage pool group will be varied on if the primary specifies the
vary on value. The exit program is called on the new primary after the devices
are moved to the new primary and varied on.</li>
<li>Cluster Resource Services submits batch job for each UDFS or primary
auxiliary storage pool in the device list to vary the object on or off.
The job is submitted to the job queue defined in the job description
associated with the API's requesting user profile. The batch subsystem should
be defined to allow these batch jobs to run concurrently in order to make
switchover as fast as possible.</li>
<li>Set the cluster resource group status to Active (10) if the
switchover to the new primary node is successful.
</li>
<li>If the device entry in the
cluster resource group indicates the device should be varied on and the vary on
or the start of the server takeover IP address fails for some reason, the
switchover will not complete successfully. The exit program will be called with
an action code of Undo (15) and the devices will be moved back to the original
primary node
and/or the role of auxiliary storage pool will be swapped back as before (for geographic mirroring
where the new primary node is at a different site than the current primary node).
</li>
<li>Set the cluster resource group status to Indoubt (30) if the devices cannot
be successfully switched to the new primary node and cannot be returned to the
same state on the old primary node.</li>
</ol>
<p>When switching over cluster resource groups of different types, the order of
switchover is important. Device cluster resource group objects should be done
first followed by data cluster resource group objects and finally application
cluster resource group objects.</p>
<p>If a cluster resource group has a status of Indoubt (30), the Start Cluster
Resource Group API can be used to change the status to Active (10). See <a
href="clrgstcrg.htm">Start Cluster Resource Group
(QcstStartClusterResourceGroup)</a> API for more information.</p>
<p>This API requires:</p>
<ol>
<li>Cluster Resource Services started on the node processing the request.</li>
<li>Cluster resource group status of Active (10).</li>
</ol>
<p>This API operates in an asynchronous mode. See <a href="clust1a3.htm">
Behavior of Cluster Resource Services APIs</a> for more information.</p>
<p><strong>Restrictions:</strong>
<ul>
<li>This API cannot be called from a cluster resource group exit program.</li>
<li><p><img src="delta.gif" alt="Start of change">This API is not allowed for peer cluster resource groups.<img src="deltaend.gif" alt="End of change"></li>
</ul>
</p>
<br>
<h3>Authorities and Locks</h3>
<p>The program that calls this API must be running under a user profile with
*IOSYSCFG special authority.</p>
<dl>
<dt><em>Cluster Resource Group Authority</em></dt>
<dd>*CHANGE</dd>
<dt><em>Cluster Resource Group Library Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Cluster Resource Group Lock</em></dt>
<dd>*EXCL</dd>
<dt><em>Exit Program Authority <img src="delta.gif" alt="Start of change"> (applies
to user profile calling the API and user
profile to run the exit program)<img src="deltaend.gif" alt="End of change"> </em></dt>
<dd>*EXECUTE</dd>
<dt><em>Exit Program Library Authority <img src="delta.gif" alt="Start of change"> (applies to user profile calling the API and user
profile to run the exit program)<img src="deltaend.gif" alt="End of change"> </em></dt>
<dd>*EXECUTE</dd>
<dt><em>User Profile Authority <img src="delta.gif" alt="Start of change">(applies to user profile to run the exit program)<img src="deltaend.gif" alt="End of change"></em></dt>
<dd>*USE</dd>
<dt><em>Request Information User Queue Authority</em></dt>
<dd>*OBJOPR, *ADD</dd>
<dt><em>Request Information User Queue Library Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Request Information User Queue Lock</em></dt>
<dd>*EXCLRD</dd>
<dt><em>Configuration Object Authority</em></dt>
<dd>*USE and *OBJMGT </dd>
<dt><em>Vary Configuration (VRYCFG) Command</em></dt>
<dd>*USE </dd>
</dl>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Request handle</strong></dt>
<dd>OUTPUT; CHAR(16)
<p>A unique string or handle that identifies this API call. It is used to
associate this call to any responses placed on the user queue specified in the
results information parameter.</p>
</dd>
<dt><strong>Cluster name</strong></dt>
<dd>INPUT; CHAR(10)
<p>The name of the cluster containing the cluster resource group.</p>
</dd>
<dt><strong>Cluster resource group name</strong></dt>
<dd>INPUT; CHAR(10)
<p>The name of the cluster resource group.</p>
</dd>
<dt><strong>Exit program data</strong></dt>
<dd>INPUT; CHAR(256)
<p>256 bytes of data that is passed to the cluster resource group exit program
when it is called. This parameter may contain any scalar data except pointers.
For example, it can be used to provide state information. This data will be
stored with the specified cluster resource group and copied to all nodes in the
recovery domain. Pointers in this area will not resolve correctly on all nodes
and should not be placed in the data. See <a href="clrgexit.htm">Cluster
Resource Group Exit Program</a> for information about the cluster resource
group exit program. The data specified will replace the existing exit program
data stored with the cluster resource group. If blanks are specified, then the
exit program data stored with the cluster resource group will be cleared. This
parameter must be set to *SAME if no exit program is specified for the cluster
resource group. The following special value can be used:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*SAME</em></td>
<td align="left" valign="top">The exit program data stored with the cluster
resource group specified will be passed to the exit program. This must be left
justified.</td>
</tr>
</table>
</dd>
<dt><strong>Results information</strong></dt>
<dd>INPUT; CHAR(30)
<p>This parameter identifies a qualified user queue field and is followed by a
reserved field.</p>
<p>Qualified user queue: Completion information is returned to this user queue,
which exists on the node from which the API was called, after the function has
completed. See the <a href="#usage_notes">
Usage Notes</a> section of this API for a description of the data that is
placed on this queue. This is a 20-character field. The first 10 characters
contain the user queue name, and the second 10 characters contain the user
queue library name. No special values are supported. QTEMP, *LIBL, *CURLIB are
not valid library names. The attributes of this user queue must be keyed.
</p>
<p>Reserved: The last 10 characters of the 30-character results information are
reserved. Each character in this field must be set to hexadecimal zero.</p>
</dd>
<dt><strong>Error code</strong></dt>
<dd>I/O; CHAR(*)
<p>The structure in which to return error information. For the format of the
structure, see <a href="../apiref/error.htm#hdrerrcod">Error Code Parameter</a>.</p>
</dd>
</dl>
<br>
<h3><a name="usage_notes">Usage Notes</a></h3>
<h3>Results Information User Queue</h3>
<p>Asynchronous results are returned to a user queue specified by the Results
Information parameter of the API. See <a href="clust1a4.htm">Cluster APIs Use
of User Queues</a> and <a href="clust1a5.htm">Using Results Information</a> for
details on how to create the results information user queue, the format of the
entries, and how to use the data placed on the queue. The data is sent to the
user queue in the form of a message identifier and the substitution data for
the message (if any exists). The following identifies the data sent to the user
queue (excluding the message text).</p>
<table width="100%" cellpadding="5">
<!-- cols="15 85" -->
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Message Text</th>
</tr>
<tr>
<td width="15%" valign="top">CPCBB01 C</td>
<td width="85%" valign="top">Cluster Resource Services API &amp;1
completed.</td>
</tr>
<tr>
<td align="left" valign="top">CPF18BA D</td>
<td align="left" valign="top">Error occurred with subsystem.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2204 D</td>
<td align="left" valign="top">User profile &amp;1 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF26B6</td>
<td align="left" valign="top">Initialization program has ended with a hard error.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2640</td>
<td align="left" valign="top">Vary command not processed.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2659</td>
<td align="left" valign="top">Vary command may not have completed.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF2 D</td>
<td align="left" valign="top">Error(s) occurred during running of &amp;1 API.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9801 D</td>
<td align="left" valign="top">Object &amp;2 in library &amp;3 not found</td>
</tr>
<tr>
<td align="left" valign="top">CPF9802 D</td>
<td align="left" valign="top">Not authorized to object &amp;2 in &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9803 D</td>
<td align="left" valign="top">Cannot allocate object &amp;2 in library &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9804 D</td>
<td align="left" valign="top">Object &amp;2 in library &amp;3 damaged.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9810 D</td>
<td align="left" valign="top">Library &amp;1 not found</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB09 D</td>
<td align="left" valign="top">Cluster node &amp;1 does not exist in cluster &amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB0A D</td>
<td align="left" valign="top">Cluster node &amp;1 in cluster &amp;2 not active.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB0F D</td>
<td align="left" valign="top">Cluster resource group &amp;1 does not exist in cluster
&amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB17 D</td>
<td align="left" valign="top">&amp;1 API cannot be processed in cluster &amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB18 D</td>
<td align="left" valign="top">Request &amp;1 not allowed for cluster resource group
&amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB1E D</td>
<td align="left" valign="top">A switchover cannot be done for cluster resource group
&amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB2C D</td>
<td align="left" valign="top">Attributes for exit program &amp;1 in library &amp;2 are not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB2D D</td>
<td align="left" valign="top">Timeout detected while waiting for a response.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB2E D</td>
<td align="left" valign="top">Job submission failed for cluster resource group &amp;1 in
cluster &amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB38 D</td>
<td align="left" valign="top">Value &amp;1 not allowed for library name.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB39 D</td>
<td align="left" valign="top">Current user does not have IOSYSCFG special authority.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB46 D</td>
<td align="left" valign="top">Cluster resource service internal error.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB5B D</td>
<td align="left" valign="top">Resource name &amp;1 incorrect for configuration object &amp;2
on node &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB66 D</td>
<td align="left" valign="top">Request failed for device cluster resource group &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB67 D</td>
<td align="left" valign="top">Ownership of hardware associated with configuration object
&amp;1 cannot be changed.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB69 A</td>
<td align="left" valign="top">Primary node &amp;1 not current owner of hardware resource
&amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB6A D</td>
<td align="left" valign="top">Primary node &amp;1 not current owner of specified
devices.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB6C D</td>
<td align="left" valign="top">Hardware configuration is not complete for configuration
objects in cluster resource group &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB6E E</td>
<td align="left" valign="top">Exit program data cannot be specified.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB7B D</td>
<td align="left" valign="top">Device type not correct for configuration object &amp;1 on
node &amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB80 D</td>
<td align="left" valign="top">Request failed for device cluster resource group &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB90 D</td>
<td align="left" valign="top">Request failed for device cluster resource group &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB92 D</td>
<td align="left" valign="top">Hardware resource &amp;1 not owned by node &amp;3 or node
&amp;4.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB98 D</td>
<td align="left" valign="top">Hardware resource &amp;1 not switchable.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB99 D</td>
<td align="left" valign="top">Request failed for device cluster resource group &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPIBB10 D</td>
<td align="left" valign="top">Cluster resource group exit program &amp;1 in library &amp;2
on node &amp;3 failed.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B01 D</td>
<td align="left" valign="top">Unable to determine if &amp;1 interface started.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B02 D</td>
<td align="left" valign="top">Cannot determine if &amp;1 interface started.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B05 D</td>
<td align="left" valign="top">&amp;2 interface not started. Reason &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B10 D</td>
<td align="left" valign="top">&amp;2 interface not started.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B11 D</td>
<td align="left" valign="top">&amp;1 interface not started. Tried to exceed maximum number
of active interfaces allowed.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B12 D</td>
<td align="left" valign="top">&amp;1 interface not started. &amp;1 interface already
active.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B13 D</td>
<td align="left" valign="top">&amp;1 interface not started. &amp;1 interface not defined the
TCP/IP configuration.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B14 D</td>
<td align="left" valign="top">&amp;1 interface not started. Line description &amp;2 not
found.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B15 D</td>
<td align="left" valign="top">Line description &amp;2 unusable. Internal errors
encountered.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B16 D</td>
<td align="left" valign="top">&amp;2 interface not started.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B25 D</td>
<td align="left" valign="top">&amp;1 interface not started.</td>
</tr>
<tr>
<td align="left" valign="top">TCP265F D</td>
<td align="left" valign="top">INTNETADR parameter value &amp;2 not valid.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B61 D</td>
<td align="left" valign="top">Unable to determine if &amp;1 interface ended.&amp;2
successful (&amp;3).</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B62 D</td>
<td align="left" valign="top">Cannot determine if &amp;1 interface ended.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B65 D</td>
<td align="left" valign="top">&amp;2 interface not ended. Reason &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B72 D</td>
<td align="left" valign="top">&amp;1 interface not ended. &amp;1 interface is not
active.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B73 D</td>
<td align="left" valign="top">&amp;1 interface not ended. &amp;1 interface not defined in
TCP/IP configuration.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B74 D</td>
<td align="left" valign="top">&amp;1 interface not ended. Line description &amp;2 not
found.</td>
</tr>
<tr>
<td align="left" valign="top">TCP1B85 D</td>
<td align="left" valign="top">&amp;1 interface not ended.</td>
</tr>
<tr>
<td align="left" valign="top">TCP3210 D</td>
<td align="left" valign="top">Connection verification statistics: &amp;1 of &amp;2
successful (&amp;3).</td>
</tr>
<tr>
<td align="left" valign="top">TCP9999 D</td>
<td align="left" valign="top">Internal system error in program &amp;1.</td>
</tr>
</table>
<br>
<h3><a name="Header_45">Error Messages</a></h3>
<p>Messages that are delivered through the error code parameter are listed
here. The data (messages) sent to the results information user queue are listed
in the <a href="#usage_notes">Usage Notes</a> above.</p>
<table width="100%" cellpadding="5">
<!-- cols="15 85" -->
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td width="15%" valign="top">CPF2113 E</td>
<td width="85%" valign="top">Cannot allocate library &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF24B4 E</td>
<td align="left" valign="top">Severe error while addressing parameter list.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C1E E</td>
<td align="left" valign="top">Required parameter &amp;1 omitted.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C39 E</td>
<td align="left" valign="top">Value for reserved field not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF1 E</td>
<td align="left" valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF2 E</td>
<td align="left" valign="top">Error(s) occurred during running of &amp;1 API.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9801 E</td>
<td align="left" valign="top">Object &amp;2 in library &amp;3 not found</td>
</tr>
<tr>
<td align="left" valign="top">CPF9802 E</td>
<td align="left" valign="top">Not authorized to object &amp;2 in &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9803 E</td>
<td align="left" valign="top">Cannot allocate object &amp;2 in library &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9804 E</td>
<td align="left" valign="top">Object &amp;2 in library &amp;3 damaged. </td>
</tr>
<tr>
<td align="left" valign="top">CPF980C E</td>
<td align="left" valign="top">Object &amp;1 in library &amp;2 cannot be in an independent
auxiliary storage pool. </td>
</tr>
<tr>
<td align="left" valign="top">CPF9810 E</td>
<td align="left" valign="top">Library &amp;1 not found</td>
</tr>
<tr>
<td align="left" valign="top">CPF9820 E</td>
<td align="left" valign="top">Not authorized to use library &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB02 E</td>
<td align="left" valign="top">Cluster &amp;1 does not exist.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB09 E</td>
<td align="left" valign="top">Cluster node &amp;1 does not exist in cluster &amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB0A E</td>
<td align="left" valign="top">Cluster node &amp;1 in cluster &amp;2 not active.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB0F E</td>
<td align="left" valign="top">Cluster resource group &amp;1 does not exist in cluster
&amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB1E E</td>
<td align="left" valign="top">A switchover cannot be done for cluster resource group
&amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB26 E</td>
<td align="left" valign="top">Cluster Resource Services not active or not responding.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB2C E</td>
<td align="left" valign="top">Attributes for exit program &amp;1 in library &amp;2 are not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB32 E</td>
<td align="left" valign="top">Attributes of user queue &amp;1 in library &amp;2 are not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB39 E</td>
<td align="left" valign="top">Current user does not have IOSYSCFG special authority.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB44 E</td>
<td align="left" valign="top">&amp;1 API cannot be called from a cluster resource group exit
program.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB6E E</td>
<td align="left" valign="top">Exit program data cannot be specified.</td>
</tr>
<tr>
<td align="left" valign="top"><img src="delta.gif" alt="Start of change">CPFBB3B E</td>
<td align="left" valign="top">Request not allowed for cluster resource group type &1.<img src="deltaend.gif" alt="End of change"></td>
</tr>
</table>
<br>
<hr>
API introduced: V4R4
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"clust1a1.htm">Cluster APIs</a> | <a href="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</center>
</body>
</html>