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

2623 lines
80 KiB
HTML
Raw Permalink Normal View History

2024-04-02 14:02:31 +00:00
<!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>Create Cluster Resource Group (QcstCreateClusterResourceGroup)
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>Create Cluster Resource Group (QcstCreateClusterResourceGroup) 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">Cluster resource group type</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Cluster resource group description
information</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">Format name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(8)</td>
</tr>
<tr>
<td align="center" valign="top">7</td>
<td align="left" valign="top">Text description</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(50)</td>
</tr>
<tr>
<td align="center" valign="top">8</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">9</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: QCSTCRG1<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 Create Cluster Resource Group API creates a cluster resource group
object. The cluster resource group object identifies a recovery domain. A
recovery domain is a set of nodes in the cluster that will play a role in
recovery. To change attributes of the cluster resource group use the <a href=
"clrgchgcrg.htm">Change Cluster Resource Group (QcstChangeClusterResourceGroup)
API</a>.</p>
<p>This API will do the following for all cluster resource group types:</p>
<ul>
<li>Create the cluster resource group object on all nodes in the recovery
domain. The cluster resource group may be accessed by a cluster resource group
API running on any node in the cluster. The cluster resource group will be
owned by the user profile calling this API.</li>
<li>Provide users a single system image of the cluster resource group object.
That is, any changes made to the cluster resource group will be made on all
nodes in the recovery domain.</li>
<li>Call the cluster resource group exit program with an action code of
Initialize (1) after the cluster resource group has been created on each node
in the recovery domain, if exit program is specified for the cluster resource group. The cluster resource group status will be set to Initialize
Pending (540). If the exit program fails, the cluster resource group object is
deleted from all nodes in the recovery domain.</li>
<li>If the exit program is successful, the cluster resource group status is set
to Inactive (20). To change the cluster resource group status to Active (10),
use the <a href="clrgstcrg.htm">Start Cluster Resource
Group(QcstStartClusterResourceGroup) API</a>.</li>
<li>After the exit program is called, the API verifies the queue used by the
Distribute Information API exists if the cluster resource group being created
indicates the <a href="cldistinfo.htm">Distribute
Information(QcstDistributeInformation) API</a> will be used. The distributed
information user queue does not allow pointers within the message content.</li>
<li>After the exit program is
called, the API verifies the failover message queue exists on all recovery
domain nodes if one was specified. </li>
</ul>
<p>This API requires the following for all cluster resource group types:</p>
<ol>
<li>Cluster Resource Services must be active on the node processing the API
request.</li>
<li>All nodes specified in the recovery domain must be active in the
cluster.</li>
<li>The cluster resource group exit program must exist on all nodes in the
recovery domain if an exit program is specified. It must have the same name and
be in the same library on each node.</li>
<li>Each node is specified only once in the recovery domain.</li>
<li>The cluster resource group name cannot be used by an existing cluster
resource group on any node in the cluster.</li>
</ol>
<p>This API requires the following for resilient application cluster resource
groups:</p>
<ol>
<li>For the specified takeover IP address:
<ul>
<li>If Cluster Resource Services configures the takeover IP address, all nodes
in the recovery domain must be in the same subnet (network address) and the
subnet defined on all nodes in the recovery domain.</li>
<li>The takeover IP address must be unique. If Cluster Resource Services is
responsible for configuring the takeover IP address, it will be added to each
node in the recovery domain.</li>
<li>The takeover IP address must not be active on any node in the recovery
domain
<img src="delta.gif" alt="Start of change"> when cluster resource services
creates the application takeover IP address.
<img src="deltaend.gif" alt="End of change">
.</li>
</ul>
</li>
</ol>
<p>This API requires the following for resilient device cluster resource
groups:</p>
<ol>
<li>Only auxiliary storage pool devices are supported.</li>
<li>All nodes in the recovery domain must belong to the same device
domain.</li>
<li>The configuration objects, such as device descriptions, for the devices
specified for the cluster resource group must exist on all nodes in the
recovery domain and the resource name specified in a configuration object must
be the same on all nodes in the recovery domain.</li>
<li>If a data base name is
specified in a configuration object, it must be the same on all nodes in the
recovery domain.</li>
<li>The server takeover IP address must be unique. It can only be associated
with a primary auxiliary storage pool. </li>
<li>The same configuration object cannot be specified for more than one cluster
resource group.</li>
<li>Devices attached to the same IOP or high-speed link I/O bridge can be
specified for only one cluster resource group.
For cross-site mirroring which only has one node at a site, this requirement does not apply.
</li>
<li>If devices attached to different IOPs or high-speed link I/O bridges are
grouped such as for an auxiliary storage pool, all devices for the affected
IOPs or high-speed link I/O bridges must be specified in the same cluster
resource group.
For cross-site mirroring which only has one node at a site, this requirement does not apply.
</li>
<li>The IOP or high-speed link I/O bridge controlling the devices specified in
a cluster resource group must be accessible by all nodes in the cluster
resource group's recovery domain
or by all nodes within the same site (for cross-site mirroring).
This is verified if sufficient hardware
configuration has been performed so that all nodes are aware of the new
hardware. If hardware configuration is incomplete, this is verified when the
Start Cluster Resource Group API is called.</li>
<li>If configuration objects are specified and the primary node does not
currently own the devices, the API fails with an error message.</li>
<li>A cluster resource group may be created with no device entries. Device
entries must be added using the <a href="clrgadddevent.htm">Add Cluster
Resource Group Device Entry (QcstAddClusterResourceGroupDev) API</a> before the
cluster resource group can be started.</li>
<li>If the cluster resource
group contains any members of an auxiliary storage pool group, it must contain
<strong>all</strong> members before the cluster resource group can be started.
All members do not have to be specifed when the cluster resource group is
created. Additional members can be added with the Add Cluster Resource Group
Device API. If the auxiliary storage pool group exists and clustering can
determine the members of the group, a warning message is sent if any members
were not specified. </li>
<li>If the configuration objects specified are for geographic mirroring, each node in the recovery domain must have a site name and up to 4 data port IP addresses. If a site name is specified, at least one data port IP address must be specified too. The reverse is also true. If one or more data port IP addresses are specified, a site name must be specified too.
</li>
<li><img src="delta.gif" alt="Start of change">If the configuration objects are specified, then the cluster version must be at the appropriate level for the information being specified.<img src="deltaend.gif" alt="End of change">
</li>
</ol>
<p>This API operates in an asynchronous mode. See <a href=
"clust1a3.htm#HDRASYMOD">Behavior of Cluster Resource Services APIs</a> for
more information.</p>
<p><strong>Restriction:</strong></p>
<ul>
<li>This API cannot be called from a cluster resource group exit program.</li>
<li>The cluster resource group name cannot begin with QCST.</li>
</ul>
<p><strong>Note:</strong> For information about the recovery domain, see <a
href="clust3a1TOC.htm">Cluster Resource Group APIs--Introduction</a>.<br>
</p>
<h3>Authorities and Locks</h3>
<p>The program that calls this API must be running under a user profile with
*IOSYSCFG special authority. This profile is named the calling user
profile.</p>
<dl>
<dt><em>Cluster Resource Group Library Authority</em></dt>
<dd>*OBJOPR, *ADD, and *READ</dd>
<dt><em>Cluster Resource Group Lock</em></dt>
<dd>*EXCL</dd>
<dt><em>Exit Program Authority (applies to user profile calling the API and user
profile to run the exit program)</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Exit Program Library Authority (applies to user profile calling the API and
user profile to run the exit program)</em></dt>
<dd>*EXECUTE</dd>
<dt><em>User Profile Authority (applies to user profile to run the exit program)</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><img src="delta.gif" alt="Start of change"><em>Configuration Object Lock</em></dt>
<dd>*EXCLRD<img src="deltaend.gif" alt="End of change"></dd>
<dt><em>Distribute Information User Queue Authority</em></dt>
<dd>*OBJOPR, *ADD</dd>
<dt><em>Distribute Information User Queue Library Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Failover Message Queue
Authority</em></dt>
<dd><em>*OBJOPR, *ADD</em></dd>
<dt><em>Failover Message Queue Library Authority</em></dt>
<dd>*EXECUTE </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 which will contain 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 which is to be created. The cluster
resource group name cannot begin with QCST. The cluster resource group object
will be created in the QUSRSYS library.</p>
</dd>
<dt><strong>Cluster resource group type</strong></dt>
<dd>INPUT; BINARY(4)
<p>The type of cluster resource group being created. Valid cluster resource
group types are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Data resiliency</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Application resiliency</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">Device resiliency</td>
</tr>
<tr>
<td align="left" valign="top"><em><img src="delta.gif" alt="Start of change">
4</em></td>
<td align="left" valign="top">Peer resiliency<img src="deltaend.gif" alt="End of change"></td>
</tr>
</table>
</dd>
</dl>
<dl>
<dt><strong>Cluster resource group description information</strong></dt>
<dd>INPUT; CHAR(*)</dd>
</dl>
<p>Detailed information about the cluster resource group. For more information,
see <a href="#HDRRGDI01">Data Resiliency (RGDI0100 Format)</a> , <a href=
"#HDRRGDI02">Application Resiliency (RGDI0200 Format)</a> , <a href=
"#HDRRGDI03">Device Resiliency (RGDI0300 Format)</a> , and
<img src="delta.gif" alt="Start of change"> <a href=
"#HDRRGDI04">Peer Resiliency (RGDI0400 Format)</a>
<img src="deltaend.gif" alt="End of change">.</p>
<dl>
<dt><strong>Format name</strong></dt>
<dd>INPUT; CHAR(8)</dd>
</dl>
<p>The content and format of the cluster resource group information. The
possible values for format name are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em><a href="#HDRRGDI01">RGDI0100</a></em></td>
<td align="left" valign="top">This format describes the cluster resource group
type 1 (data resiliency).</td>
</tr>
<tr>
<td align="left" valign="top"><em><a href="#HDRRGDI02">RGDI0200</a></em></td>
<td align="left" valign="top">This format describes the cluster resource group
type 2 (application resiliency).</td>
</tr>
<tr>
<td align="left" valign="top"><em><a href="#HDRRGDI03">RGDI0300</a></em></td>
<td align="left" valign="top">This format describes the cluster resource group
type 3 (device resiliency)</td>
</tr>
<tr>
<td align="left" valign="top"><em><a href="#HDRRGDI04"><img src="delta.gif" alt="Start of change">RGDI0400</a></em></td>
<td align="left" valign="top">This format describes the cluster resource group
type 4 (peer resiliency)<img src="deltaend.gif" alt="End of change"></td>
</tr>
</table>
<br>
<dl>
<dt><strong>Text description</strong></dt>
<dd>INPUT; CHAR(50)</dd>
</dl>
<p>This text briefly describes the cluster resource group.</p>
<dl>
<dt><strong>Results information</strong></dt>
<dd>INPUT; CHAR(30)</dd>
</dl>
<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>
<dl>
<dt><strong>Error code</strong></dt>
<dd>I/O; CHAR(*)</dd>
</dl>
<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>.<br>
</p>
<h3><a name="HDRRGDI01">Data Resiliency (RGDI0100 Format)</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">CHAR(10)</td>
<td align="left" valign="top" width="60%">Cluster resource group exit program
name</td>
</tr>
<tr>
<td align="center" valign="top">10</td>
<td align="center" valign="top">A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Cluster resource group exit program library
name</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Cluster resource group exit program format
name</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User profile</td>
</tr>
<tr>
<td align="center" valign="top">38</td>
<td align="center" valign="top">26</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Additional fields used</td>
</tr>
<tr>
<td align="center" valign="top">39</td>
<td align="center" valign="top">27</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">40</td>
<td align="center" valign="top">28</td>
<td align="left" valign="top">CHAR(256)</td>
<td align="left" valign="top">Exit program data</td>
</tr>
<tr>
<td align="center" valign="top">296</td>
<td align="center" valign="top">128</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to recovery domain array</td>
</tr>
<tr>
<td align="center" valign="top">300</td>
<td align="center" valign="top">12C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of nodes in recovery domain</td>
</tr>
<tr>
<td align="center" valign="top">304</td>
<td align="center" valign="top">130</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to additional fields</td>
</tr>
<tr>
<td align="center" valign="top">308</td>
<td align="center" valign="top">134</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of additional fields</td>
</tr>
<tr>
<td align="center" valign="top">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">Array (*) of CHAR(*)</td>
<td align="left" valign="top">Recovery domain array</td>
</tr>
<tr>
<td align="left" valign="top" colspan="2" rowspan="2">These fields repeat, in
the order listed, for each node in the recovery domain.</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Node id</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Node role</td>
</tr>
<tr>
<td align="center" valign="top" colspan="1" rowspan="1">*</td>
<td align="center" valign="top" >*</td>
<td align="left" valign="top" >CHAR(48)</td>
<td align="left" valign="top">Additional fields</td>
</tr>
<tr>
<td align="left" valign="top" colspan="2" rowspan="6" >These fields are part of
the additional fields structure.</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Distribute information user queue name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Distribute information user queue library
name</td>
</tr>
<tr>
<td align="left" valign="top">
BINARY(4)</td>
<td align="left" valign="top">Failover wait time</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Failover default action</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Failover message queue name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Failover message queue library name</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRRGDI02">Application Resiliency (RGDI0200 Format)</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">CHAR(10)</td>
<td align="left" valign="top" width="60%">Cluster resource group exit program
name</td>
</tr>
<tr>
<td align="center" valign="top">10</td>
<td align="center" valign="top">A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Cluster resource group exit program library
name</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Cluster resource group exit program format
name</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User profile</td>
</tr>
<tr>
<td align="center" valign="top">38</td>
<td align="center" valign="top">26</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Additional fields used</td>
</tr>
<tr>
<td align="center" valign="top">39</td>
<td align="center" valign="top">27</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">40</td>
<td align="center" valign="top">28</td>
<td align="left" valign="top">CHAR(256)</td>
<td align="left" valign="top">Exit program data</td>
</tr>
<tr>
<td align="center" valign="top">296</td>
<td align="center" valign="top">128</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to recovery domain array</td>
</tr>
<tr>
<td align="center" valign="top">300</td>
<td align="center" valign="top">12C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of nodes in recovery domain</td>
</tr>
<tr>
<td align="center" valign="top">304</td>
<td align="center" valign="top">130</td>
<td align="left" valign="top">CHAR(16)</td>
<td align="left" valign="top">Takeover IP address</td>
</tr>
<tr>
<td align="center" valign="top">320</td>
<td align="center" valign="top">140</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Job name</td>
</tr>
<tr>
<td align="center" valign="top">330</td>
<td align="center" valign="top">14A</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Configure takeover IP address</td>
</tr>
<tr>
<td align="center" valign="top">331</td>
<td align="center" valign="top">14B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">332</td>
<td align="center" valign="top">14C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Allow application restart</td>
</tr>
<tr>
<td align="center" valign="top">336</td>
<td align="center" valign="top">150</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of restarts</td>
</tr>
<tr>
<td align="center" valign="top">340</td>
<td align="center" valign="top">154</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to additional fields</td>
</tr>
<tr>
<td align="center" valign="top">344</td>
<td align="center" valign="top">158</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of additional fields</td>
</tr>
<tr>
<td align="center" valign="top">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">Array (*) of CHAR(*)</td>
<td align="left" valign="top">Recovery domain array</td>
</tr>
<tr>
<td align="left" valign="top" colspan="2" rowspan="2">These fields repeat, in
the order listed, for each node in the recovery domain.</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Node id</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Node role</td>
</tr>
<tr>
<td align="center" valign="top" colspan="1" rowspan="1">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">CHAR(49)</td>
<td align="left" valign="top">Additional fields</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="7" colspan="2">These fields are part of
the additional fields structure.</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Distribute information user queue name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Distribute information user queue library
name</td>
</tr>
<tr>
<td align="left" valign="top">
BINARY(4)</td>
<td align="left" valign="top">Failover wait time</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Failover default action</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Failover message queue name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Failover message queue library name</td>
</tr>
<tr>
<td align="left" valign="top">
<img src="delta.gif" alt="Start of change"> CHAR(1)</td>
<td align="left" valign="top">Allow active takeover IP address<img src="deltaend.gif" alt="End of change"></td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRRGDI03">Device Resiliency (RGDI0300 Format)</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">CHAR(10)</td>
<td align="left" valign="top" width="60%">Cluster resource group exit program
name</td>
</tr>
<tr>
<td align="center" valign="top">10</td>
<td align="center" valign="top">A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Cluster resource group exit program library
name</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Cluster resource group exit program format
name</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User profile</td>
</tr>
<tr>
<td align="center" valign="top">38</td>
<td align="center" valign="top">26</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">40</td>
<td align="center" valign="top">28</td>
<td align="left" valign="top">CHAR(256)</td>
<td align="left" valign="top">Exit program data</td>
</tr>
<tr>
<td align="center" valign="top">296</td>
<td align="center" valign="top">128</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to recovery domain array</td>
</tr>
<tr>
<td align="center" valign="top">300</td>
<td align="center" valign="top">12C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of nodes in recovery domain</td>
</tr>
<tr>
<td align="center" valign="top">304</td>
<td align="center" valign="top">130</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of recovery domain array entry</td>
</tr>
<tr>
<td align="center" valign="top">308</td>
<td align="center" valign="top">134</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to configuration object array</td>
</tr>
<tr>
<td align="center" valign="top">312</td>
<td align="center" valign="top">138</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of configuration object array entries</td>
</tr>
<tr>
<td align="center" valign="top">316</td>
<td align="center" valign="top">13C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of configuration object array entry</td>
</tr>
<tr>
<td align="center" valign="top">320</td>
<td align="center" valign="top">140</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to additional fields</td>
</tr>
<tr>
<td align="center" valign="top">324</td>
<td align="center" valign="top">144</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of additional fields</td>
</tr>
<tr>
<td align="center" valign="top">328</td>
<td align="center" valign="top">148</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Distribute information user queue name</td>
</tr>
<tr>
<td align="center" valign="top">338</td>
<td align="center" valign="top">152</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Distribute information user queue library
name</td>
</tr>
<tr>
<td align="center" valign="top">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">Array (*) of CHAR(*)</td>
<td align="left" valign="top">Recovery domain array
if Length of recovery domain array entry field is set to non-zero
</td>
</tr>
<tr>
<td align="left" valign="top" colspan="2" rowspan="2">These fields repeat, in
the order listed, for each node in the recovery domain.</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Node id</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Node role</td>
</tr>
<tr>
<td align="center" valign="top" colspan="1" rowspan="1">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">Array (*) of CHAR(*)</td>
<td align="left" valign="top">Recovery domain array if Length of
recovery domain array entry field is set to zero</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="7" colspan="2">These fields repeat, in
the order listed, for each node in the recovery domain.</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of entry in the recovery domain</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Node id</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Node role</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Site name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to data port IP address array</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of data port IP addresses</td>
</tr>
<tr>
<td align="left" valign="top">Array(*) of CHAR(16)</td>
<td align="left" valign="top">Data port IP address</td>
</tr>
<tr>
<td align="center" valign="top">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">Array (*) of CHAR(36)</td>
<td align="left" valign="top">Configuration object array</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="5" colspan="2">These fields repeat, in
the order listed, for each device entry.</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Configuration object name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Configuration object type</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Configuration object online</td>
</tr>
<tr>
<td align="left" valign="top">
CHAR(16)</td>
<td align="left" valign="top">Server takeover IP address</td>
</tr>
<tr>
<td align="center" valign="top">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">CHAR(28)</td>
<td align="left" valign="top">Additional fields</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="4" colspan="2">These fields are part of
the additional fields structure.</td>
<td align="left" valign="top">
BINARY(4)</td>
<td align="left" valign="top">Failover wait time</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Failover default action</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Failover message queue name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Failover message queue library name</td>
</tr>
</table>
<br>
<br>
<h3><img src="delta.gif" alt="Start of change"><a name="HDRRGDI04">Peer Resiliency (RGDI0400 Format)</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Length of fixed fields</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to recovery domain array</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of nodes in recovery domain</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of recovery domain array entry</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">16</td>
<td align="center" valign="top" width="10%">10</td>
<td align="left" valign="top" width="20%">CHAR(10)</td>
<td align="left" valign="top" width="60%">Cluster resource group exit program
name</td>
</tr>
<tr>
<td align="center" valign="top">26</td>
<td align="center" valign="top">1A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Cluster resource group exit program library
name</td>
</tr>
<tr>
<td align="center" valign="top">36</td>
<td align="center" valign="top">24</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Cluster resource group exit program format
name</td>
</tr>
<tr>
<td align="center" valign="top">44</td>
<td align="center" valign="top">2C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User profile</td>
</tr>
<tr>
<td align="center" valign="top">54</td>
<td align="center" valign="top">36</td>
<td align="left" valign="top">CHAR(256)</td>
<td align="left" valign="top">Exit program data</td>
</tr>
<tr>
<td align="center" valign="top">310</td>
<td align="center" valign="top">136</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Distribute information user queue name</td>
</tr>
<tr>
<td align="center" valign="top">320</td>
<td align="center" valign="top">140</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Distribute information user queue library</td>
</tr>
<tr>
<td align="center" valign="top">330</td>
<td align="center" valign="top">14A</td>
<td align="left" valign="top">CHAR(20)</td>
<td align="left" valign="top">Application id</td>
</tr>
<tr>
<td align="center" valign="top">*</td>
<td align="center" valign="top">*</td>
<td align="left" valign="top">Array (*) of CHAR(*)</td>
<td align="left" valign="top">Recovery domain array</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="4" colspan="2">These fields repeat, in
the order listed, for each node in the recovery domain.</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Node id</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Node role<img src="deltaend.gif" alt="End of change"></td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRLSCDDR">Field Descriptions</a></h3>
<p><strong>Additional fields.</strong> A structure containing optional
additional fields.</p>
<p><strong>Additional fields used.</strong> A flag to signify whether the
additional fields in formats RGDI0100,
<img src="delta.gif" alt="Start of change">
RGDI0200, and RGDI0300
<img src="deltaend.gif" alt="End of change">
are being used. Possible
values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>0x00</em></td>
<td align="left" valign="top">The additional fields are not being used.</td>
</tr>
<tr>
<td align="left" valign="top"><em>0x01</em></td>
<td align="left" valign="top">The additional fields are being used.</td>
</tr>
</table>
<img src="delta.gif" alt="Start of change">
<p><strong>Allow active takeover IP
address.</strong> Allows a takeover IP address to already be active when it
is assigned to an application cluster resource group. This field is only
valid when configure takeover IP address field is 0x01. Possible values
are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">The takeover IP address must not already
be active when starting the cluster resource group. This is the default
value if the field is not specified.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The takeover IP address is allowed to be
active prior to starting the cluster resource group but only on the
primary node.</td>
</tr>
</table>
<img src="deltaend.gif" alt="End of change">
<p><strong>Allow application restart.</strong> Attempt to restart an
application if the cluster resource group exit program fails. Possible values
are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Do not attempt to restart the application. The
cluster resource group exit program is called with an action code of Failover
(9).</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Attempt to restart the application on the same
node. The cluster resource group exit program will be called with an action
code of Restart (3). If the application cannot be restarted in the specified
maximum number of attempts, the cluster resource group exit program will be
called with an action code of Failover (9).</td>
</tr>
</table>
<img src="delta.gif" alt="Start of change">
<p><strong>Application id.</strong>
This is a string to identify the application supplying the peer cluster
resource group. The recommended format is 'vendor-id.name' where vendor-id is an
identifier for the vendor creating the cluster resource group and name is the application
name. For example, QIBM.ExamplePeer, indicates it is supplied by IBM for the ExamplePeer
application. It is not recommended to use QIBM for vendor id name unless the
cluster resource group is supplied by IBM.
</p>
<img src="deltaend.gif" alt="End of change">
<p><strong>Cluster resource group exit program format name.</strong> Indicates
which format should be used for the <strong>Information Given To User</strong>
parameter on the cluster resource group exit program when it is called.
This value must be set to hexadecimal zeroes if an exit program is not specified.
Possible values if an exit program is specified are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>EXTP0100</em></td>
<td align="left" valign="top">Standard information.
<img src="delta.gif" alt="Start of change">This value is allowed
for primary-backup model cluster resource group and peer model cluster
resource group.<img src="deltaend.gif" alt="End of change"></td>
</tr>
<tr>
<td align="left" valign="top"><em>EXTP0200</em></td>
<td align="left" valign="top">Additional information in the recovery domain array
which contains site name and data port IP addresses on each node.
<img src="delta.gif" alt="Start of change">This value is allowed
for primary-backup model cluster resource group.<img src="deltaend.gif" alt="End of change">
</td>
</tr>
</table>
<p><strong>Cluster resource group exit program library name.</strong> The name
of the library where the exit program exists. The special value *CURLIB or
*LIBL may not be used for the library name. QTEMP is not a valid library name.
This value must be set to hexadecimal zeroes if an exit program is not specified.</p>
<p><strong>Cluster resource group exit program name.</strong> The name of the
exit program that is used to handle action codes that are passed to it. The
action codes are described in <a href="clrgexit.htm">Cluster Resource Group
Exit Program</a>.</p>
<p> The cluster resource group
exit program cannot be in an independent auxiliary storage pool. Valid special
values for this field are: </p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">A device cluster resource group may have no
cluster resource group exit program. This must be left justified.</td>
</tr>
</table>
<p><strong>Configuration object array.</strong> This array identifies the
resilient devices that can be switched from one node to another.</p>
<p><strong>Configuration object name.</strong> The name of the auxiliary
storage pool device description object which can be switched between the nodes
in the recovery domain. An auxiliary storage pool device description can be
specified in only one cluster resource group.</p>
<p><strong>Configuration object
online.</strong> Vary the configuration object on and start the server takeover
IP address or leave the configuration object varied off and the server takeover
IP address inactive when a device is switched from one node to another with the
<a href="clrginitso.htm">Initiate Switchover (QcstInitiateSwitchOver) API</a>
or when it is failed over to a backup node. This attribute does
<strong>not</strong> vary the device on or off and does <strong>not</strong>
start or end the server takeover IP address when the cluster resource group is
started or ended and when adding a new device entry to the cluster resource
group. For secondary auxiliary storage pools, only a value of 2 is valid. If
cluster resources cannot determine if this value is correct for a device entry
because the auxiliary storage pool is not yet created, any errors will be
detected when the cluster resource group is started. A value of 2 cannot be
specified for any other device type. Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Do not vary the configuration object on and do
not start the server takeover IP address.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Vary the configuration object on and start the
server takeover IP address.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Perform the same action for a secondary auxiliary
storage pool as is specified for the primary. </td>
</tr>
</table>
<p><strong>Configuration object type.</strong> This specifies the type of
configuration object specified with configuration object name. Possible values
are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Device description</td>
</tr>
<tr>
<td align="left" valign="top"></td>
<td align="left" valign="top"></td>
</tr>
<tr>
<td align="left" valign="top"></td>
<td align="left" valign="top"></td>
</tr>
</table>
<p><strong>Configure takeover IP address.</strong> This field identifies who is
responsible for configuring (adding and removing) the takeover IP address. This
does not affect the starting and ending of the takeover IP address, Cluster
Resource Services will perform this function. The following values are
valid:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>0x00</em></td>
<td align="left" valign="top">Cluster Resource Services is responsible for
configuring the takeover IP address. The takeover IP address must not exist on
any of the nodes in the recovery domain prior to creating cluster resource
group. The takeover IP address will be removed when the cluster resource group
is deleted.</td>
</tr>
<tr>
<td align="left" valign="top"><em>0x01</em></td>
<td align="left" valign="top">User is responsible for configuring the takeover
IP address. The takeover IP address must be added on all nodes in the recovery
domain except replicates prior to starting the cluster resource group. Using
this option it is possible to specify recovery domain nodes in different
subnets. See <a href="../rzaig/rzaigconfigdualsubnettakeover.htm">Enabling
application switchover across subnets</a> for details.</td>
</tr>
</table>
<p><strong>Data Port IP address.</strong> The IP address associated with the
recovery domain node. User is responsible for configuring and starting/ending
data port IP address. The data port IP address may or may not already exist on the specified
node. This field must be
represented in dotted decimal format and be a null-terminated string.
</p>
<p><strong>Distribute information user queue library name.</strong> The name of
the library that contains the user queue to receive the distributed
information. The library name cannot be *CURLIB, QTEMP, or *LIBL. If the user
would like to distribute cluster-wide information through this cluster resource
group using the <a href="cldistinfo.htm">Distribute
Information(QcstDistributeInformation) API</a>, then this field must be set.
The only way to change the value of this field once the cluster resource group
has been created is to delete and recreate the cluster resource group. This
field must be set to hexadecimal zeroes if the distribute information user
queue name is *NONE.</p>
<p><strong>Distribute information user queue name.</strong> The name of the
user queue to receive distributed information from the Distribute Information
API. If the user would like to distribute cluster-wide information through this
cluster resource group using the Distribute Information API, then this field
must be set to a value other than *NONE. If this field is set, the specified
user queue must exist on all nodes in the recovery domain after the exit
program completes.</p>
<p> The queue cannot be in an
independent auxiliary storage pool. </p>
<p>The only way to change the value of this field once the cluster resource
group has been created is to delete and recreate the cluster resource group.
Valid special values for this field are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">The Distribute Information API will not be used
to distribute information through this cluster resource group.</td>
</tr>
</table>
<p><strong>Exit program data.</strong> 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. This value must be set to hexadecimal zeroes if an exit program is not specified.</p>
<p> <strong>Failover default
action.</strong> Should a response to the failover message queue not be
received in the failover wait time limit, then this field tells clustering what
it should do pertaining to the failover request. This field must be set to 0 if
the failover message queue name is *NONE. For format RGDI0100 or RGDI0200, if
the current cluster version is 2 and the length of additional fields specified
includes the failover default action, this field must be set to 0.</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Proceed with failover.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Do NOT attempt failover.</td>
</tr>
</table>
<p><strong>Failover message queue library name</strong> The name of the library
that contains the user queue to receive failover messages. The library name
cannot be *CURLIB, QTEMP, or *LIBL. If the user would like to receive failover
message through this cluster resource group, then this field must be set. This
field must be set to hexadecimal zeroes if the failover message queue name is
*NONE. For format RGDI0100 or RGDI0200, if the current cluster version is 2 and
the length of additional fields specified includes the failover message queue
library name, this field must be set to hexadecimal zeroes.</p>
<p><strong>Failover message queue name.</strong> The name of the message queue
to receive messages dealing with failover. If the user would like to receive
notice before a failover occurs, then this field must be set to a value other
than *NONE. If this field is set, the specified message queue must exist on all
nodes in the recovery domain. The queue cannot be in an independent auxiliary
storage pool. For format RGDI0100 or RGDI0200, if the current cluster version
is 2 and the length of additional fields specified includes the failover
message queue name, this field must be set to hexadecimal zeroes. Valid special
values for this field are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">No messages will be sent when a failover occurs
through this cluster resource group.</td>
</tr>
</table>
<p><strong>Failover wait time.</strong> Number of minutes to wait for a reply
to the failover message (CPFBBAB) that was enqueued on the failover message
queue. This field must be set to 0 if the failover message queue name is *NONE.
This field cannot be set to 0 if a failover message queue is specified. For
format RGDI0100 or RGDI0200, if the current cluster version is 2 and the length
of additional fields specified includes the failover wait time, this field must
be set to 0. Valid values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>-1</em></td>
<td align="left" valign="top">Wait forever until a response is given to the
failover inquiry message.</td>
</tr>
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Failover proceeds without user intervention. Acts
the same as V5R1 and prior.</td>
</tr>
<tr>
<td align="left" valign="top"><em>&gt;=1</em></td>
<td align="left" valign="top">Number of minutes to wait for a response to the
failover inquiry message. If no response is received in the specified number of
minutes, the failover default action field will be looked at to decide how to
proceed.</td>
</tr>
</table>
<p><strong>Job name.</strong> The name given the batch job that is submitted.
This is the job that calls the cluster resource group exit program. Valid
special values for this field are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*JOBD</em></td>
<td align="left" valign="top">The job name in the job description for the
specified user profile will be used. This must be left justified.</td>
</tr>
</table>
<p><strong>Length of additional
fields.</strong> The length in bytes of additional fields. In formats RGDI0100
and RGDI0200, this field is ignored if the additional fields used flag is not
set to 1. If the additional fields used flag is 1 in formats RGDI0100 and
RGDI0200, the value of this field must be equal to 20,
<img src="delta.gif" alt="Start of change">
48 or 49.<img src="deltaend.gif" alt="End of change">
In format
RGDI0300, if the cluster version is less than 3, the value of this field must
be 0. If the cluster version is 3, the value of this field must be equal to 0
or 28.</p>
<p><strong>Length of configuration object array entry.</strong> The length of
an entry in the configuration object array. This field must be set to 0 if the
number of entries in the configuration object array field has a value of 0. If
the number of entries has a value greater than 0, it must be set to the length
of a single entry.</p>
<p><strong>Length of entry in the recovery domain.</strong> The length of an
entry in the recovery domain array. This field is used if each entry may
have a different length.
</p>
<p><strong><img src="delta.gif" alt="Start of change">Length of fixed fields.</strong> The length of the fixed fields in the format description. For RGDI0400 this value must be 350.
<img src="deltaend.gif" alt="End of change"></p>
<p><strong>Length of recovery domain array entry.</strong> The length of an
entry in the recovery domain array.
For formats other than RGDI0300, this field must be set to 12.
For format RGDI0300, this field can be set to either 12 or zero.
If zero, then the length of entry in the recovery domain field is used.
</p>
<p><strong>Node id.</strong> A unique string of characters that identifies a
node that is participating in the recovery domain of the specified cluster
resource group. The node specified must be active in the cluster, and it must
be unique in the recovery domain of the specified cluster resource group.</p>
<p><strong>Node role.</strong> The role the node has in the recovery domain. A
role must be defined for each node in the recovery domain. <img src="delta.gif" alt="Start of change">For primary-backup model cluster resource groups
<img src="deltaend.gif" alt="End of change">a node can have one
of three roles: primary, backup, or replicate. Only one node can be designated
as the primary. This node will become an active access point when the cluster
resource group is started. Backup nodes are assigned a backup order. One indicates the
first backup, two the second backup, and so on. Backup nodes are avaliable to
become an active access point. Replicates are not ordered and
cannot become an access point for the cluster resource unless the <a href=
"clrgchgcrg.htm">Change Cluster Resource Group (QcstChangeClusterResourceGroup)
API</a> is used to change its role from replicate to either a backup or
primary.
<br><img src="delta.gif" alt="Start of change">For peer model cluster
resource groups a node can have one
of two roles: peer or replicate. Any number of nodes can be designated
as the peer or replicate. Peer nodes are not ordered and can become an active access point
for the cluster resources. Replicates are not ordered and
cannot become an active access point for the cluster resource unless the <a href=
"clrgchgcrg.htm">Change Cluster Resource Group (QcstChangeClusterResourceGroup)
API</a> is used to change its role from replicate to peer.
<img src="deltaend.gif" alt="End of change">
The following summarizes the valid values for this field:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Primary node. Only one node can have this
value. </td>
</tr>
<tr>
<td align="left" valign="top"><em>&gt;=1</em></td>
<td align="left" valign="top">Backup node. The backup order is designated by
increasing value. The values need not be consecutive. No two backup nodes can
have the same value. At the completion of the API, Cluster Resource Services
will sequence the backups using consecutive numbers starting with 1.</td>
</tr>
<tr>
<td align="left" valign="top"><em>-1</em></td>
<td align="left" valign="top">Replicate node. All replicates have this
value.<img src="delta.gif" alt="Start of change"></td>
</tr>
<tr>
<td align="left" valign="top"><em><br>-4</em></td>
<td align="left" valign="top">Peer node. All peers have this value.<img src="deltaend.gif" alt="End of change"></td>
</tr>
</table>
<p><strong>Number of configuration object array entries.</strong> The number of
entries in the configuration object array. This value can be 0 if no
configuration object entries are to be added when the cluster resource group is
initially created. At least one configuration object entry must be added before
the <a href="clrgstcrg.htm">Start Cluster Resource Group
(QcstStartClusterResourceGroup)</a> API is called. A cluster resource group can
have a maximum of 256 configuration object entries. If no configuration objects
specified this field must be hexadecimal zero.</p>
<p><strong>Number of data port IP addresses.</strong> The number of data port IP addresses associated
with the recovery domain node. A node can have up to 4 data port IP addresses.
If the current cluster version is 3 and the length of recovery
domain array specified includes this field, it must be set to zero.
</p>
<p><strong>Number of nodes in the recovery domain.</strong> The number of nodes
in the recovery domain array. This should equal the number of backup nodes plus
the number of replicate nodes plus one (for the primary node). This must be
greater than or equal to one and equal the number of nodes in the recovery
domain.</p>
<p><strong>Number of restarts.</strong> Number of times an application can be
restarted on the same node before a failover occurs. Maximum number of restarts
is 3. Every time the cluster resource group exit program is run, the number of
restarts is reset to 0 and works up to the maximum value specified.</p>
<p><strong>Offset to additional fields.</strong> The byte offset from the
beginning of this parameter to additional fields. In formats RGDI0100 and
RGDI0200, this field will be ignored unless the additional fields used field is
set to 1. In format RGDI0300, if the cluster version is less than 3, the value
of this field must be 0.</p>
<p><strong>Offset to configuration object array.</strong> The byte offset from
the beginning of this parameter to the Configuration object array field. This
field must be set to 0 if the number of entries in the configuration object
array field has a value of 0.</p>
<p><strong>Offset to data port IP address array.</strong> The byte offset from the beginning
of this parameter to the first data port IP address. If the current cluster version is 3
and the length of recovery domain array specified includes this field, it must
be set to zero.
This field is ignored if the number of data port IP addresses field is set to zero.
</p>
<p><strong>Offset to recovery domain array.</strong> The byte offset from the
beginning of this parameter to the Recovery domain array field.</p>
<p><strong>Recovery domain array.</strong> This array identifies the nodes that
compose the recovery domain. A role must be defined for each node in the
recovery domain. Nodes in the recovery domain must be unique. See the node
role field for more information on primary, backup, replicate <img src="delta.gif" alt="Start of change">and peer.<img src="deltaend.gif" alt="End of change"></p>
<p>An example<img src="delta.gif" alt="Start of change"> for a primary-backup model
cluster resource group<img src="deltaend.gif" alt="End of change">: A cluster resource group has four nodes: NodeA, NodeB, NodeC and
NodeD. NodeA is the primary. There are two backup nodes: NodeB and NodeD. NodeD
is the first backup and NodeB is the second backup. There is one replicate:
NodeC.</p>
<pre>
Node Role
----- ----
NodeA 0 &lt;-- primary
NodeD 1 &lt;-- backup #1
NodeB 2 &lt;-- backup #2
NodeC -1 &lt;-- replicate
</pre>
<p>The nodes do not have to be arranged in any particular order in the array.
They could be in the array as listed below and have the same result.</p>
<pre>
Node Role
----- ----
NodeB 2 &lt;-- backup #2
NodeA 0 &lt;-- primary
NodeC -1 &lt;-- replicate
NodeD 1 &lt;-- backup #1
</pre>
<p><strong>Reserved.</strong> Must contain hexadecimal zeroes.</p>
<p><strong>Server takeover IP
address.</strong> This is a takeover IP address for servers associated with the
relational database name in the device description for an auxiliary storage
pool. This field is optional and can only be specified for a primary auxiliary
storage pool. If specified, the address must be represented in dotted decimal
format and be a null-terminated string. The specified address must exist on all
nodes in the recovery domain if the cluster resource group is active. If not
specified, or for a secondary and UDFS auxiliary storage pool, this field must
be set to *NONE and be left justified. If the current cluster version is 2 and
the length of configuration object array entry specified includes the server
takeover IP address, this field must be set to hexadecimal zeroes. Valid
special values for this field are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">There is no server takeover IP address associated
with the relational database name in the device description for an auxiliary
storage pool.</td>
</tr>
</table>
<p><strong>Site name.</strong> The name of the site associated with the recovery
domain node. If the current cluster version is 3 and the length of recovery
domain array specified includes this field, this field must be set to
hexadecimal zeroes. Valid special values for this field are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">The node in the recovery domain is not associated
with a site name. This must be left justified.</td>
</tr>
</table>
<p><strong>Takeover IP address.</strong> This is the floating IP address that
is to be associated with the application. This field must be represented in
dotted decimal format and be a null-terminated string. The Cluster Resource
Services will create this IP address on every system in the recovery domain if
the Configure takeover IP address is 0x00. If the IP address already exists,
then this API will fail.</p>
<p><strong>User profile.</strong> The name of the user profile under which the
exit program should process. The user profile must exist on all nodes in the
recovery domain. This field must be set to hexadecimal zeroes if the cluster
resource group does not have an exit program. The following user profiles are
not valid:</p>
<ul>
<li>QDBSHR</li>
<li>QDOC</li>
<li>QDFTOWN</li>
<li>QRJE</li>
<li>QLPAUTO</li>
<li>QLPINSTALL</li>
<li>QSECOFR</li>
<li>QSPL</li>
<li>QSYS</li>
<li>QTSTRQS</li>
</ul>
<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">Error 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 valign="top">CPF18BA D</td>
<td valign="top">Error occurred with subsystem.</td>
</tr>
<tr>
<td valign="top">CPF2204 D</td>
<td valign="top">User profile &amp;1 not found.</td>
</tr>
<tr>
<td valign="top">CPF2108 D</td>
<td valign="top">Object not added to library.</td>
</tr>
<tr>
<td valign="top">CPF2112 D</td>
<td valign="top">Object &amp;1 in &amp;2 type *&amp;3 already exists.</td>
</tr>
<tr>
<td valign="top">CPF2113 D</td>
<td valign="top">Cannot allocate library &amp;1.</td>
</tr>
<tr>
<td valign="top">CPF2182 D</td>
<td valign="top">Not authorized to library &amp;1.</td>
</tr>
<tr>
<td valign="top">CPF3C29 D</td>
<td valign="top">Object name &amp;1 is not valid.</td>
</tr>
<tr>
<td valign="top">CPF3CF2 D</td>
<td valign="top">Error(s) occurred during running of &amp;1 API.</td>
</tr>
<tr>
<td valign="top">CPF9801 D</td>
<td valign="top">Object &amp;2 in library &amp;3 not found.</td>
</tr>
<tr>
<td valign="top">CPF9802 D</td>
<td valign="top">Not authorized to object &amp;2 in &amp;3.</td>
</tr>
<tr>
<td valign="top">CPF9803 E</td>
<td valign="top">Cannot allocate object &amp;2 in library &amp;3.</td>
</tr>
<tr>
<td valign="top">CPF9804 D</td>
<td valign="top">Object &amp;2 in library &amp;3 damaged.</td>
</tr>
<tr>
<td valign="top">CPF9810 D</td>
<td valign="top">Library &amp;1 not found.</td>
</tr>
<tr>
<td valign="top">CPF9820 D</td>
<td valign="top">Not authorized to use library &amp;1.</td>
</tr>
<tr>
<td valign="top">CPF9830 D</td>
<td valign="top">Cannot assign library &amp;1.</td>
</tr>
<tr>
<td valign="top">CPF9838 D</td>
<td valign="top">User profile storage limit exceeded.</td>
</tr>
<tr>
<td valign="top">CPF9870 D</td>
<td valign="top">Object &amp;2 type *&amp;5 already exists in library
&amp;3.</td>
</tr>
<tr>
<td valign="top">CPFBB02 D</td>
<td valign="top">Cluster &amp;1 does not exist.</td>
</tr>
<tr>
<td valign="top">CPFBB0A D</td>
<td valign="top">Node &amp;1 is not active in cluster &amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB0B D</td>
<td valign="top">Request using takeover IP address &amp;1 failed.</td>
</tr>
<tr>
<td valign="top">CPFBB17 D</td>
<td valign="top">&amp;1 API cannot be processed in cluster &amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB27 D</td>
<td valign="top">A primary node was not specified for the recovery domain.</td>
</tr>
<tr>
<td valign="top">CPFBB28 D</td>
<td valign="top">Cluster node &amp;1 and cluster node &amp;2 have the same node
role value &amp;3.</td>
</tr>
<tr>
<td valign="top">CPFBB29 D</td>
<td valign="top">Node role value &amp;1 not valid.</td>
</tr>
<tr>
<td valign="top">CPFBB2C D</td>
<td valign="top">Attributes of exit program &amp;1 in library &amp;2 are not
valid.</td>
</tr>
<tr>
<td valign="top">CPFBB2D D</td>
<td valign="top">Timeout detected while waiting for a response.</td>
</tr>
<tr>
<td valign="top">CPFBB2E D</td>
<td valign="top">Job submission failed for cluster resource group &amp;1 in
cluster &amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB30 D</td>
<td valign="top">Takeover IP address &amp;1 is not part of the TCP/IP
subnetwork.</td>
</tr>
<tr>
<td valign="top">CPFBB32 D</td>
<td valign="top">Attributes of user queue &amp;1 in library &amp;2 are not
valid.</td>
</tr>
<tr>
<td valign="top">CPFBB34 D</td>
<td valign="top">Cluster resource group &amp;1 already exists in cluster
&amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB35 D</td>
<td valign="top">The user profile name &amp;1 is not valid for this
request.</td>
</tr>
<tr>
<td valign="top">CPFBB38 D</td>
<td valign="top">Library name &amp;1 is not allowed for this request.</td>
</tr>
<tr>
<td valign="top">CPFBB39 D</td>
<td valign="top">Current user does not have IOSYSCFG special authority.</td>
</tr>
<tr>
<td valign="top">CPFBB46 D</td>
<td valign="top">Cluster Resource Services internal error.</td>
</tr>
<tr>
<td valign="top">CPFBB47 D</td>
<td valign="top">Cluster Resource Services ended abnormally.</td>
</tr>
<tr>
<td valign="top">CPFBB48 D</td>
<td valign="top">Cluster Resource Services error detected.</td>
</tr>
<tr>
<td valign="top">CPFBB51 D</td>
<td valign="top">IP address &amp;1 already in use by the cluster
&amp;3.</td>
</tr>
<tr>
<td valign="top">CPFBB5A D</td>
<td valign="top">All recovery domain nodes not in same device domain.</td>
</tr>
<tr>
<td valign="top">CPFBB5B D</td>
<td valign="top">Resource name &amp;1 incorrect for configuration object &amp;2
on node &amp;3.</td>
</tr>
<tr>
<td valign="top">CPFBB5C D</td>
<td valign="top">Configuration object &amp;1 already in cluster resource group
&amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB5D D</td>
<td valign="top">Other related devices already in cluster resource group
&amp;1.</td>
</tr>
<tr>
<td valign="top">CPFBB60 D</td>
<td valign="top">Cluster message not received from cluster node &amp;3.</td>
</tr>
<tr>
<td valign="top">CPFBB64 D</td>
<td valign="top">Configuration object &amp;1 not valid device type.</td>
</tr>
<tr>
<td valign="top">CPFBB66 D</td>
<td valign="top">Request failed for device cluster resource group &amp;3.</td>
</tr>
<tr>
<td valign="top">CPFBB7A D</td>
<td valign="top">Primary node &amp;1 in cluster resource group &amp;2 not
current owner of specified devices.</td>
</tr>
<tr>
<td valign="top">CPFBB7B D</td>
<td valign="top">Device type incorrect for configuration object &amp;1 on node
&amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB7C D</td>
<td valign="top">Resource name &amp;1 already used by configuration object
&amp;2 in cluster resource group &amp;4.</td>
</tr>
<tr>
<td valign="top">CPFBB7D D</td>
<td valign="top">Configuration object &amp;1 already in cluster resource group
&amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB7E D</td>
<td valign="top">Resource name &amp;1 already in cluster resource group
&amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB7F D</td>
<td valign="top">Too many I/O processors or high-speed link I/O bridges
specified for cluster resource group &amp;1.</td>
</tr>
<tr>
<td valign="top">CPFBB80 D</td>
<td valign="top">Request failed for device cluster resource group &amp;3.</td>
</tr>
<tr>
<td valign="top">CPFBB84 D</td>
<td valign="top">Device domain entry for node &amp;1 being removed.</td>
</tr>
<tr>
<td valign="top">CPFBB90 D</td>
<td valign="top">Request failed for device cluster resource group &amp;3.</td>
</tr>
<tr>
<td valign="top">CPFBB98 D</td>
<td valign="top">Hardware resource &amp;1 not switchable.</td>
</tr>
<tr>
<td valign="top">CPFBB99 D</td>
<td valign="top">Request failed for device cluster resource group &amp;3.</td>
</tr>
<tr>
<td valign="top"> CPFBB9A D</td>
<td valign="top">Online value not valid for device &amp;1.</td>
</tr>
<tr>
<td valign="top">CPFBB9B D</td>
<td valign="top">Auxiliary storage pool group member &amp;1 not specified.</td>
</tr>
<tr>
<td valign="top">CPFBB9D D</td>
<td valign="top">Device &amp;1 not compatible with current cluster
version.</td>
</tr>
<tr>
<td valign="top">CPFBB9E D</td>
<td valign="top">Data base name &amp;1 not correct for configuration object
&amp;2 on node &amp;3.</td>
</tr>
<tr>
<td valign="top">CPFBBA6 D</td>
<td valign="top">Server takeover IP address cannot be associated with device
subtype &amp;1. </td>
</tr>
<tr>
<td valign="top">CPFBBA8 D</td>
<td valign="top">Site name &amp;1 specified for node &amp;2 not allowed. </td>
</tr>
<tr>
<td valign="top">CPFBBA9 D</td>
<td valign="top">Data port IP address &amp;1 specified for node &amp;2 not allowed. </td>
</tr>
<tr>
<td valign="top">CPIBB10 D</td>
<td valign="top">Cluster resource group exit program &amp;1 in library &amp;2
on node &amp;3 failed.</td>
</tr>
</table>
<br>
<h3>Error Messages</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">CPF2112 E</td>
<td width="85%" valign="top">Object &amp;1 in &amp;2 type *&amp;3 already
exist.</td>
</tr>
<tr>
<td valign="top">CPF2113 E</td>
<td valign="top">Cannot allocate library &amp;1.</td>
</tr>
<tr>
<td valign="top">CPF2204 E</td>
<td valign="top">User profile &amp;1 not found.</td>
</tr>
<tr>
<td valign="top">CPF24B4 E</td>
<td valign="top">Severe error while addressing parameter list.</td>
</tr>
<tr>
<td valign="top">CPF3C1E E</td>
<td valign="top">Required parameter &amp;1 omitted.</td>
</tr>
<tr>
<td valign="top">CPF3C21 E</td>
<td valign="top">Format name &amp;1 is not valid.</td>
</tr>
<tr>
<td valign="top">CPF3C29 E</td>
<td valign="top">Object name &amp;1 is not valid.</td>
</tr>
<tr>
<td valign="top">CPF3C39 E</td>
<td valign="top">Value for reserved field not valid.</td>
</tr>
<tr>
<td valign="top">CPF3C4B E</td>
<td valign="top">Value not valid for field &amp;1.</td>
</tr>
<tr>
<td valign="top">CPF3CF1 E</td>
<td valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td valign="top">CPF3CF2 E</td>
<td valign="top">Error(s) occurred during running of &amp;1 API.</td>
</tr>
<tr>
<td valign="top">CPF9801 E</td>
<td valign="top">Object &amp;2 in library &amp;3 not found.</td>
</tr>
<tr>
<td valign="top">CPF9802 E</td>
<td valign="top">Not authorized to object &amp;2 in &amp;3.</td>
</tr>
<tr>
<td valign="top">CPF9804 E</td>
<td valign="top">Object &amp;2 in library &amp;3 damaged.</td>
</tr>
<tr>
<td valign="top">CPF980C E</td>
<td valign="top">Object &amp;1 in library &amp;2 cannot be in an independent
auxiliary storage pool. </td>
</tr>
<tr>
<td valign="top">CPF9810 E</td>
<td valign="top">Library &amp;1 not found.</td>
</tr>
<tr>
<td valign="top">CPF9820 E</td>
<td valign="top">Not authorized to use library &amp;1.</td>
</tr>
<tr>
<td valign="top">CPF9838 E</td>
<td valign="top">User profile storage limit exceeded.</td>
</tr>
<tr>
<td valign="top">CPF9872 E</td>
<td valign="top">Program or service program &amp;1 in library &amp;2 ended.
Reason code &amp;3.</td>
</tr>
<tr>
<td valign="top">CPFBB02 E</td>
<td valign="top">Cluster &amp;1 does not exist.</td>
</tr>
<tr>
<td valign="top">CPFBB09 E</td>
<td valign="top">Cluster node &amp;1 does not exist in cluster &amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB0A E</td>
<td valign="top">Cluster node &amp;1 in cluster &amp;2 is not active.</td>
</tr>
<tr>
<td valign="top">CPFBB0E E</td>
<td valign="top">Cluster resource group type &amp;1 not valid.</td>
</tr>
<tr>
<td valign="top">CPFBB26 E</td>
<td valign="top">Cluster Resource Services not active or not responding.</td>
</tr>
<tr>
<td valign="top">CPFBB27 E</td>
<td valign="top">No primary node specified in recovery domain.</td>
</tr>
<tr>
<td valign="top">CPFBB28 E</td>
<td valign="top">Two or more backup nodes have the same node role value
&amp;1.</td>
</tr>
<tr>
<td valign="top">CPFBB29 E</td>
<td valign="top">Node role value &amp;1 not valid.</td>
</tr>
<tr>
<td valign="top">CPFBB2C E</td>
<td valign="top">Attributes of exit program &amp;1 in library &amp;2 are not
valid.</td>
</tr>
<tr>
<td valign="top">CPFBB31 E</td>
<td valign="top">Value &amp;1 specified for number of restarts not valid.</td>
</tr>
<tr>
<td valign="top">CPFBB32 E</td>
<td valign="top">Attributes of user queue &amp;1 in library &amp;2 are not
valid.</td>
</tr>
<tr>
<td valign="top">CPFBB33 E</td>
<td valign="top">Cluster node &amp;1 already exists in the recovery domain for
cluster resource group &amp;4</td>
</tr>
<tr>
<td valign="top">CPFBB34 E</td>
<td valign="top">Cluster resource group &amp;1 already exist in cluster
&amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB35 E</td>
<td valign="top">User profile name not valid for this request.</td>
</tr>
<tr>
<td valign="top">CPFBB36 E</td>
<td valign="top">Number of nodes in recovery domain is not valid.</td>
</tr>
<tr>
<td valign="top">CPFBB37 E</td>
<td valign="top">Offset to recovery domain is not valid.</td>
</tr>
<tr>
<td valign="top">CPFBB38 E</td>
<td valign="top">Library name &amp;1 not allowed for this request.</td>
</tr>
<tr>
<td valign="top">CPFBB39 E</td>
<td valign="top">Current user does not have IOSYSCFG special authority.</td>
</tr>
<tr>
<td valign="top">CPFBB40 E</td>
<td valign="top">The value &amp;1 specified for the allow application restart
parameter is not valid.</td>
</tr>
<tr>
<td valign="top">CPFBB43 E</td>
<td valign="top">Format name &amp;1 not valid for cluster resource group type
&amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB44 E</td>
<td valign="top">&amp;1 API cannot be called from a cluster resource group exit
program.</td>
</tr>
<tr>
<td valign="top">CPFBB51 E</td>
<td valign="top">IP address &amp;1 already in use by the cluster
&amp;3.</td>
</tr>
<tr>
<td valign="top">CPFBB5A E</td>
<td valign="top">Device domain for recovery domain nodes not correct.</td>
</tr>
<tr>
<td valign="top">CPFBB5F E</td>
<td valign="top">Field value within structure is not valid.</td>
</tr>
<tr>
<td valign="top">CPFBB61 E</td>
<td valign="top">Configuration object &amp;1 specified more than once in
configuration object array.</td>
</tr>
<tr>
<td valign="top">CPFBB62 E</td>
<td valign="top">Exit program name *NONE not valid.</td>
</tr>
<tr>
<td valign="top">CPFBB63 E</td>
<td valign="top">Configuration object &amp;1 not valid type.</td>
</tr>
<tr>
<td valign="top">CPFBB64 E</td>
<td valign="top">Configuration object &amp;1 not valid device type.</td>
</tr>
<tr>
<td valign="top">CPFBB70 E</td>
<td valign="top">API request &amp;1 not compatible with current cluster
version.</td>
</tr>
<tr>
<td valign="top">CPFBBA2 E</td>
<td valign="top">Value &amp;1 specified for failover wait time is not
valid.</td>
</tr>
<tr>
<td valign="top">CPFBBA3 E</td>
<td valign="top">Value &amp;1 specified for failover default action is not
valid.</td>
</tr>
<tr>
<td valign="top">CPFBBA4 E</td>
<td valign="top">Field value within additional fields structure is not
valid.</td>
</tr>
<tr>
<td valign="top">CPFBBA5 E</td>
<td valign="top">Server takeover IP address &amp;1 specified more than once in
the configuration object array. </td>
</tr>
<tr>
<td valign="top">CPFBBA7 E</td>
<td valign="top">Site name and data port IP address not match. </td>
</tr>
<tr>
<td valign="top">CPFBBA8 E</td>
<td valign="top">Site name &amp;1 specified for node &amp;2 not allowed. </td>
</tr>
<tr>
<td valign="top">CPFBBA9 E</td>
<td valign="top">Data port IP address &amp;1 specified for node &amp;2 not allowed. </td>
</tr>
<tr>
<td valign="top">CPFBBAC E</td>
<td valign="top">The offset to the data port IP address array for node &amp;1
is not valid.</td>
</tr>
<tr>
<td valign="top">CPFBBAD E</td>
<td valign="top">The number of data port IP addresses specified for node &amp;1
is not valid. </td>
</tr>
<tr>
<td valign="top">TCP1901 E</td>
<td valign="top">Internet address &amp;1 not valid.</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>
<!-- End Footer Records -->
</body>
</html>