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

2419 lines
72 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>Change Cluster Resource Group (QcstChangeClusterResourceGroup)
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>Change Cluster Resource Group (QcstChangeClusterResourceGroup) 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 description
information</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">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">6</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">7</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">8</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 Change Cluster Resource Group (QcstChangeClusterResourceGroup) API
changes some of the attributes of a cluster resource group.</p>
<p>The following fields may be changed without causing the cluster resource
group exit program to be called:</p>
<ul>
<li>Text description</li>
<li>Exit program data</li>
<li>User profile</li>
<li>Takeover IP address</li>
<li>Job name</li>
<li>Allow application restart</li>
<li>Number of restarts</li>
<li>The cluster resource group exit program</li>
<li>Failover message queue</li>
<li>Failover wait time</li>
<li>Failover default action</li>
<li>Cluster resource group exit program format name </li>
<li>Application id </li>
</ul>
<p>To add a node to the recovery domain use, the <a href="clrgaddnrd.htm">Add
Node To Recovery Domain (QcstAddNodeToRcvyDomain) API</a>.</p>
<p>To remove a node from the recovery domain, use the <a href=
"clrgrmvnrd.htm">Remove Node From Recovery Domain
(QcstRemoveNodeFromRcvyDomain) API</a>.</p>
<p>To add a device to a resilient device cluster resource group, use the <a
href="clrgadddevent.htm">Add Cluster Resource Group Device Entry
(QcstAddClusterResourceGroupDev) API</a>.</p>
<p>To remove a device from a resilient device cluster resource group, use the
<a href="clrgrmvdevent.htm">Remove Cluster Resource Group Device Entry
(QcstRmvClusterResourceGroupDev) API</a>.</p>
<p>To change a device entry in a resilient device cluster resource group, use
the <a href="clrgchgdevent.htm">Change Cluster Resource Group Device Entry
(QcstChgClusterResourceGroupDev) API</a>.</p>
<p>This API will do the following for all cluster resource group types:</p>
<ul>
<li>Call the cluster resource group exit program with an action code of Change
(13) on all active nodes in the recovery domain when either the preferred or
current role is changed,or when a site name and/or data port IP addresses are changed,
if an exit program is specified for the cluster
resource group. The cluster resource group status is set to Change Pending
(520). If the exit program completes successfully, the cluster resource group
status is reset to its value at the time the API was called. If the exit
program fails and the cluster resource group cannot be restored to its original
condition, the cluster resource group status is set to Indoubt (30).</li>
<li>Change the cluster resource group without calling the exit program if
neither node role, site name nor data port IP addresses are changed.</li>
<li>Change the name to be used for batch jobs submitted by cluster resource
group. If the cluster resource group status is Active (10), batch jobs already
submitted will not be changed. Any jobs submitted after the change will use the
new name. This is true for other attributes associated with a submitted exit
program such as the user profile, the restart count and so on. Changes to the
cluster resource group will not affect an exit program that was previously
submitted and is either on a job queue or is running.</li>
<li><img src="delta.gif" alt="Start of change">For a primary-backup model cluster
resource group,<img src="deltaend.gif" alt="End of change">
if the current node role in the recovery domain is changed and the cluster resource group is active and it has more than one backup node and some backup nodes are not active, the recovery domain may be reordered so that all active backup nodes are ordered before inactive backup nodes.
</li>
</ul>
<p>This API will do the following for resilient application cluster resource
groups:</p>
<ul>
<li>If the Cluster Resource Services configures the takeover IP address, it
will remove the current address and add the new address when the takeover IP
address is changed. If either the add or remove address function fails, the API
will fail.</li>
<li>If the cluster resource group is active and the role of a node is being
changed from replica to backup, verify the takeover IP address exists and is
not active on the node being changed. If the takeover IP address does not exist
or is active on the node being changed, the API will fail.</li>
</ul>
<p>This API will do the following for resilient device cluster resource
groups:</p>
<ul>
<li>If the role of the current
primary node is being changed, ownership of the devices specified in the
cluster resource group is switched from the current primary to the new primary
if the current primary has none of the devices varied on. If any devices are
varied on, an error message is returned. In addition, the new primary node must
be active. All members of an auxiliary storage pool group must be configured in
the cluster resource group before ownership can be changed. Devices are not
varied on after the ownership is switched.</li>
<li>If the site name and/or data
port IP addresses for a recovery domain node is changed but the node role
is not changed, you can specify only the node that is changed, no need to specify
all nodes in the recovery domain.
</li>
<li>If a recovery domain node role
is changed (a value other than -2 is specified), then the rest of the nodes in the
recovery domain must also be specified and they must have value other than -2.
</li>
<li>In cross-site mirroring,
a switchover on a mirror site can be done by changing the mirror site node roles,
by assigning a different active node to be the highest node role ranking at a mirror site.
</li>
</ul>
<p>This API requires for all cluster resource group types:</p>
<ol>
<li>Cluster Resource Services must be active on the node processing the
request.</li>
<li>A cluster resource group must have a status of Inactive (20) or Indoubt
(30) to designate a new primary node.</li>
<li>The new exit program, if one specified, must exist on all nodes in the
recovery domain when the cluster resource group exit program is changed.</li>
<li>At least one active node in the recovery domain.</li>
<li>If defined, the failover message queue must exist on all nodes in the
recovery domain when the cluster resource group is changed.</li>
</ol>
<p><img src="delta.gif" alt="Start of change">This API requires for all
primary-backup model cluster resource group types:<img src="deltaend.gif" alt="End of change"></p>
<ol>
<li>Changing the node role to primary or changing the takeover IP address can
only be done when the cluster resource group is Inactive (20) or Indoubt (30).
If the cluster resource group is Active, the Initiate Switchover API can be
used to assign the primary role to the first backup node. For information about
the Initiate Switchover API, see <a href="clrginitso.htm">Initiate Switchover
(QcstInitiateSwitchOver) API</a>.
</ol>
<p><img src="delta.gif" alt="Start of change">This API requires for all
peer model cluster resource group types:</p>
<ol>
<li>The recovery domain role can be changed from peer to replicate or replicate to
peer by specifying one or more recovery domain nodes. The full recovery domain does
not need to be specified.</li>
<li>If the cluster resource group is Active (10) and:
<ul>
<li>The role is changed from peer to replicate, the node becomes an inactive access point.</li>
<li>The role is changed from replicate to peer, the node becomes an active access point.</li>
</ul>
</li>
<li>There must be at least one node designated as peer if the cluster resource group
is Active (10).<img src="deltaend.gif" alt="End of change">
</ol>
<p>This API operates in an asynchronous mode. See <a href=
"clust1a3.htm#HDRASYMOD">Cluster Resource Services APIs Behavior</a> for more
information.</p>
<p><strong>Restriction:</strong> This API cannot be called from a cluster
resource group exit program.<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.</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 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>Failover Message Queue
Authority</em></dt>
<dd>*OBJOPR, *ADD</dd>
<dt><em>Failover Message Queue Library Authority</em></dt>
<dd>*EXECUTE </dd>
</dl>
<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 to which the cluster resource group belongs.</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 changed.</p>
</dd>
<dt><strong>Cluster resource group description information</strong></dt>
<dd>INPUT; CHAR(*)
<p>Detailed information about the cluster resource group. For more information,
see <a href="#HDRRGDIC01">Data Resiliency (RGDC0100 Format)</a>, <a href=
"#HDRRGDIC1A">Data Resiliency (RGDC0110 Format)</a>, <a href=
"#HDRRGDIC02">Application Resiliency (RGDC0200 Format)</a>, <a href=
"#HDRRGDIC03">Device Resiliency (RGDC0300 Format)</a> <img src="delta.gif" alt="Start of change">and <a href=
"#HDRRGDIC04">Peer Resiliency (RGDC0400 Format)</a><img src="deltaend.gif" alt="End of change">.</p>
</dd>
<dt><strong>Format name</strong></dt>
<dd>INPUT; CHAR(8)
<p>The content and format of the cluster resource group information. The
possible format names are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em><a href="#HDRRGDIC01">RGDC0100</a></em></td>
<td align="left" valign="top">This format describes the data cluster resource
group.</td>
</tr>
<tr>
<td align="left" valign="top"><em><a href="#HDRRGDIC1A">RGDC0110</a></em></td>
<td align="left" valign="top">This format also describes the data cluster
resource group, with some additional fields added. </td>
</tr>
<tr>
<td align="left" valign="top"><em><a href="#HDRRGDIC02">RGDC0200</a></em></td>
<td align="left" valign="top">This format describes the application cluster
resource group.</td>
</tr>
<tr>
<td align="left" valign="top"><em><a href="#HDRRGDIC03">RGDC0300</a></em></td>
<td align="left" valign="top">This format describes the device cluster resource
group.</td>
</tr>
<tr>
<td align="left" valign="top"><em><a href="#HDRRGDIC04"><img src="delta.gif" alt="Start of change">RGDC0400</a></em></td>
<td align="left" valign="top">This format describes the peer cluster resource
group.<img src="deltaend.gif" alt="End of change"></td>
</tr>
</table>
<br>
<br>
</dd>
<dt><strong>Text description</strong></dt>
<dd>INPUT; CHAR(50)
<p>This text briefly describes the cluster resource group. This must be left
justified. The following special value can be used:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*SAME</em></td>
<td align="left" valign="top">The current text description is not changed. This
must be left justified.</td>
</tr>
</table>
<br>
</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="HDRRGDIC01">Data Resiliency (RGDC0100 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="left" valign="bottom">Dec</th>
<th align="left" 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(10)</td>
<td align="left" valign="top">Action for recovery domain array</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</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">304</td>
<td align="center" valign="top">130</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">308</td>
<td align="center" valign="top">134</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">*</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>
</table>
<br>
<h3> <a name="HDRRGDIC1A">Data
Resiliency (RGDC0110 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="left" valign="bottom">Dec</th>
<th align="left" 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(10)</td>
<td align="left" valign="top">Action for recovery domain array</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</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">304</td>
<td align="center" valign="top">130</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">308</td>
<td align="center" valign="top">134</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">312</td>
<td align="center" valign="top">138</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Failover wait time</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">Failover default action</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">Failover message queue name</td>
</tr>
<tr>
<td align="center" valign="top">330</td>
<td align="center" valign="top">14A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Failover message queue library name</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>
</table>
<br>
<h3><a name="HDRRGDIC02">Application Resiliency (RGDC0200 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="left" valign="bottom">Dec</th>
<th align="left" 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(10)</td>
<td align="left" valign="top">Action for recovery domain array</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</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">304</td>
<td align="center" valign="top">130</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">308</td>
<td align="center" valign="top">134</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">312</td>
<td align="center" valign="top">138</td>
<td align="left" valign="top">CHAR(16)</td>
<td align="left" valign="top">Application takeover IP address</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">Job name</td>
</tr>
<tr>
<td align="center" valign="top">
338</td>
<td align="center" valign="top">152</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">339</td>
<td align="center" valign="top">153</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</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">Allow application restart</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">Number of restarts</td>
</tr>
<tr>
<td align="center" valign="top">348</td>
<td align="center" valign="top">15C</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">352</td>
<td align="center" valign="top">160</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(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><a name="HDRRGDIC03">Device Resiliency (RGDC0300 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="left" valign="bottom">Dec</th>
<th align="left" 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(10)</td>
<td align="left" valign="top">Action for recovery domain array</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</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">304</td>
<td align="center" valign="top">130</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">308</td>
<td align="center" valign="top">134</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">312</td>
<td align="center" valign="top">138</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">316</td>
<td align="center" valign="top">13C</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">320</td>
<td align="center" valign="top">140</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
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="8" 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">BINARY(4)</td>
<td align="left" valign="top">Data Port IP address action</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">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>
<br>
<br>
<h3><img src="delta.gif" alt="Start of change"><a name="HDRRGDIC04">Peer Resiliency (RGDC0400 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" width="10%">4</td>
<td align="center" valign="top" width="10%">4</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">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">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Action for recovery domain array</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">26</td>
<td align="center" valign="top" width="10%">1A</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">36</td>
<td align="center" valign="top">24</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">46</td>
<td align="center" valign="top">2E</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">54</td>
<td align="center" valign="top">36</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User profile</td>
</tr>
<tr>
<td align="center" valign="top">64</td>
<td align="center" valign="top">40</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">320</td>
<td align="center" valign="top">140</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" 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<img src="deltaend.gif" alt="End of change"></td>
</tr>
</table>
<br>
<h3><a name="HDRLSCDDE1">Field Descriptions</a></h3>
<p><strong>Action for recovery domain array.</strong> Indicates which node role
in the recovery domain is being changed. The special values used are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*SAME</em></td>
<td align="left" valign="top">Neither node role is changed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*CHGPREFER</em></td>
<td align="left" valign="top">The <strong>PREFFERED</strong> node role in the
recovery domain will change.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*CHGCURREN</em></td>
<td align="left" valign="top">The <strong>CURRENT</strong> node role in the
recovery domain can be changed. For a device cluster resource group, site name and data port IP addresses also can be changed.</td>
</tr>
</table>
<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 format RGDC0200 are being used. If the cluster version is
less than 3, this field must be set to hexadecimal zero. 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>
<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>
<tr>
<td align="left" valign="top" nowrap><em>-1</em></td>
<td align="left" valign="top">Allow application restart is not changed.</td>
</tr>
</table>
<p><strong><img src="delta.gif" alt="Start of change">Application id.</strong>
This is a string to identify the application that supplied the 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.
<img src="deltaend.gif" alt="End of change"></p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*SAME</em></td>
<td align="left" valign="top">The application id is not changed. This must
be left justified.</td>
</tr>
</table>
<p><strong>Application takeover IP address.</strong> This is the floating IP address that
is to be associated with an application. This field must be represented in
dotted decimal format and be a null-terminated string. The following special
value can be used:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*SAME</em></td>
<td align="left" valign="top">The takeover IP address is not changed. This must
be left justified.</td>
</tr>
</table>
<p>If the value is not *SAME and the Cluster Resource Services configured the
takeover IP address, this API will remove the current takeover IP address and
add this takeover IP address to the node. If either the add or remove address
function fails, the API will fail. The cluster resource group must be Inactive
(20) to change this field.</p>
<p><strong>Cluster resource
group exit program format name.</strong> The contents and format of the cluster
resource group exit program information. This field must be set to hexadecimal
zeroes if no exit program is specified. If the exit program name is *SAME and
was previously *NONE, this field is ignored. The format name supported is:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>EXTP0100</em></td>
<td align="left" valign="top">Exit program 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">Exit program information, with 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>
<tr>
<td align="left" valign="top"><em>*SAME</em></td>
<td align="left" valign="top">Exit program format name is not changed.
</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.</p>
<p>If the cluster resource group exit program name is *NONE or *SAME, the exit
program library name is ignored.</p>
<p><strong>Cluster resource
group exit program name.</strong> The name of exit program that is used to
handle action codes that are passed to it. The exit program cannot be in an
independent auxiliary storage pool. </p>
<p>If the exit program is changed for an active application cluster resource
group, the job currently running which was submitted to handle the Start (2)
action code continues running the prior exit program.</p>
<p>The following special value can be used:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*SAME</em></td>
<td align="left" valign="top">The current exit program is not changed. This
must be left justified.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">The cluster resource group does not have an exit
program.This is valid only for a device. This must be left justified.</td>
</tr>
</table>
<p>
<strong>Data port IP address.</strong> The IP address associated with the recovery domain node.
When adding a data port IP address, it must already exist on the specified node if the CRG is active.
User is responsible for starting/ending data port IP address.
This field must be
represented in dotted decimal format and be a null-terminated string.
</p>
<p>
<strong>Data port IP address action.</strong> Indicates whether to add or remove the data port IP address
associated with the recovery domain node. The 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">The data port IP addresses are not changed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Remove the data port IP addresses from the recovery domain node.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Add the data port IP addresses to the recovery domain node.</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. The data specified will replace the
existing exit program data stored with the cluster resource group, if the API
completes successfully. This field must be set to hexadecimal zeroes if no exit
program is specified. If the exit program name is *SAME and was previously
*NONE, this field is ignored.</p>
<p>The following special value can be used:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*SAME</em></td>
<td align="left" valign="top">The exit program data is not changed. This must
be left justified.</td>
</tr>
</table>
<p><strong>Failover default
action.</strong> Indicates what clustering should do pertaining to the failover
request when a response to the failover message queue was not be received in
the failover wait time limit. If the failover message queue is *NONE, this
field must be set to 0. If the failover message queue is *SAME and was
previously *NONE, this field must be set to -1 or 0.</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top" nowrap><em>-1</em></td>
<td align="left" valign="top">Failover default action is not changed. This is
the default value.</td>
</tr>
<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.</p>
<p>If the failover message queue name is *NONE or *SAME, the failover message
queue library name is ignored. Version 2 or lower cluster resource groups will
default to *NONE for the message queue library name when the cluster version is
changed to 3.</p>
<p><strong>Failover message queue name.</strong> The name of the message queue
to receive messages dealing with failover. The queue cannot be in an
independent auxiliary storage pool.</p>
<p>The following special values can be used:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*SAME</em></td>
<td align="left" valign="top">The current failover message queue is not
changed. This is the default value. This must be left justified.</td>
</tr>
<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. This must be left justified.</td>
</tr>
</table>
<p><strong>Failover wait time.</strong> Number of minutes to wait for a reply
to the failover message that was enqueued on the failover message queue. If the
failover message queue is *NONE, this field must be set to 0. If the failover
message queue is *SAME and was previously *NONE, this field must be set to -2
or 0. If a failover message queue is specified, this field cannot be set to 0.
Valid values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top" nowrap><em>-2</em></td>
<td align="left" valign="top">Failover wait time is not changed. This is the
default value.</td>
</tr>
<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 V5R1M0 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 by
the cluster resource group. This job will call the cluster resource group exit
program with the action code generated by the API being used. If this field is
blank, the job name will be the value of the job description found in the user
profile. Valid special values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*SAME</em></td>
<td align="left" valign="top">The job name is not changed. This must be left
justified.</td>
</tr>
<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 format RGDC0200,
this field is ignored if the additional fields used flag is not set to 1. If
the additional fields used flag is 1 in format RGDC0200, the value of this
field must be less than or equal to 28. In format RGDC0300, the value of this
field must be less than or equal to 28. In format RGDC0110 this field must be
set to hexadecimal zero. It will be used in a future release if more fields are
needed. </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 RGDC0400 this value must be 340.
<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 RGDC0300, this field must be set to 12.
For format RGDC0300, 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. Backup nodes are assigned a backup order. One indicates the
first backup, two the second backup, and so on. Replicates are not ordered and
cannot become a primary or backup node unless its role is changed 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 be an active access point
for the cluster resources. Replicates are not ordered and
cannot become an active access point for the cluster resource unless its role is
changed from replicate to peer.
<br><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.</td>
</tr>
<tr>
<td align="left" valign="top"><em>-2</em></td>
<td align="left" valign="top">The node role is not changed.<img src="delta.gif" alt="Start of change"></td>
</tr>
<tr>
<td align="left" valign="top"><em>-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 data port IP addresses.</strong> The number of data port IP
addresses to be added
to or removed from the recovery domain node.
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 must also be set to zero if no change is made to the
data port IP addresses.
</p>
<p><strong>Number of nodes in the recovery domain.</strong> The number of nodes
in the recovery domain array. This field is ignored if the Action for recovery domain array
field contains *SAME. <img src="delta.gif" alt="Start of change">For
primary-backup model cluster resource groups <img src="deltaend.gif" alt="End of change">
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. <img src="delta.gif" alt="Start of change">For
peer model cluster resource groups
all recovery domain nodes do not need to be specified to change the role. Only specify
those nodes that are changing. If roles are changing this must be equal to the number
of nodes being changed and cannot exceed the number of nodes currently defined in the
recovery domain.<img src="deltaend.gif" alt="End of change">
</p>
<p><strong>Number of restarts.</strong> Number of times a cluster resource
group exit program can be called on a same node before failure occurs. Maximum
number of restarts is 3. -1 means the maximum number of restarts does not
change. If the cluster resource group is currently active, any change does not
take affect until failover occurs or the cluster resource group exit program
job ends.</p>
<p><strong>Offset to additional
fields.</strong> The byte offset from the beginning of this parameter to
additional fields. In format RGDC0200, this field will be ignored unless the
additional fields used field is set to 1. In format RGDC0110, this must be set
to hexadecimal zero. </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 table to the array of node information. This field is ignored
if the Action for recovery domain array field contains *SAME.</p>
<p><strong>Recovery domain array.</strong><img src="delta.gif" alt="Start of change">
Array of recovery domain information. A role must be defined
for each node specified. Nodes in the recovery domain must be unique. See <a href=
"#node_role">node role</a> for more information on the node roles associated with the
specific cluster resource group type. For primary-backup model cluster resource groups
this array identifies the nodes that compose the recovery domain. The complete recovery
domain must be specified. For peer model cluster resource groups, this
array identifies the recovery domain nodes that are changing. Only those nodes that are
being changed need to be specified.
<img src="deltaend.gif" alt="End of change"></p>
<p>An example <img src="delta.gif" alt="Start of change">of 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>Site name.</strong> The name of the site associated with the recovery
domain node. The site name can be changed from *NONE to a name,
or from a name to *NONE. Changing a name to a different name is not allowed.
If the current cluster version is 3 and the length of recovery
domain array specified includes this field, it 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>
<tr>
<td align="left" valign="top"><em>*SAME</em></td>
<td align="left" valign="top">The site name it not changed. This must be left justified.</td>
</tr>
</table>
<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 no exit program is
specified. If the exit program name is *SAME and was previously *NONE, this
field is ignored.</p>
<p>The following user profiles are not valid:</p>
<ul>
<li>QDBSHR</li>
<li>QDOC</li>
<li>QDTFOWN</li>
<li>QRJE</li>
<li>QLPAUTO</li>
<li>QLPINSTALL</li>
<li>QSECOFR</li>
<li>QSPL</li>
<li>QSYS</li>
<li>QTSTRQS</li>
</ul>
<p>The following special value can be used:<br>
<br>
</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*SAME</em></td>
<td align="left" valign="top">The current user profile is not changed. This
must be left justified.</td>
</tr>
</table>
<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 valign="top">CPF18BA D</td>
<td valign="top">Error occurred with subsystem.</td>
</tr>
<tr>
<td valign="top">CPF2113 E</td>
<td valign="top">Cannot allocate library &amp;1.</td>
</tr>
<tr>
<td valign="top">CPF2204 D</td>
<td valign="top">User profile &amp;1 not found.</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 D</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">CPFBB0B D</td>
<td valign="top">Request using takeover IP address &amp;1 failed.</td>
</tr>
<tr>
<td valign="top">CPFBB0F D</td>
<td valign="top">Cluster resource group &amp;1 does not exist in cluster
&amp;2.</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">CPFBB18 D</td>
<td valign="top">Request &amp;1 is not allowed for cluster resource group
&amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB1A D</td>
<td valign="top">At least one node in the recovery domain of cluster resource
group &amp;1 must be active.</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">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">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">The 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">CPFBB51 D</td>
<td valign="top">IP address &amp;1 already in use by the cluster
&amp;3.</td>
</tr>
<tr>
<td valign="top">CPFBB5E E</td>
<td valign="top">User profile to run exit program not specified.</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">CPFBB67 D</td>
<td valign="top">Node &amp;1 cannot take ownership of configuration object
&amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB69 D</td>
<td valign="top">Primary node &amp;1 not current owner of hardware resource
&amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB6C D</td>
<td valign="top">Hardware configuration is not complete for configuration
objects in cluster resource group &amp;1.</td>
</tr>
<tr>
<td valign="top">CPFBB70 D</td>
<td valign="top">API request &amp;1 not compatible with current cluster
version.</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">CPFBB81 D</td>
<td valign="top">New primary node &amp;1 not active.</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">CPFBB92 D</td>
<td valign="top">Hardware resource &amp;1 not owned by node &amp;3 or node
&amp;4.</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">CPFBB9B D</td>
<td valign="top">Auxiliary storage pool group member &amp;1 not specified.</td>
</tr>
<tr>
<td valign="top">CPFBBA2 D</td>
<td valign="top">Value &amp;1 specified for failover wait time is not
valid.</td>
</tr>
<tr>
<td valign="top">CPFBBA3 D</td>
<td valign="top">Value &amp;1 specified for failover default action is not
valid.</td>
</tr>
<tr>
<td valign="top">CPFBBA4 D</td>
<td valign="top">Field value within additional fields structure is not
valid.</td>
</tr>
<tr>
<td valign="top">CPFBBA7 D</td>
<td valign="top">Site name and data port IP address not match. </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">CPFBBB0 D</td>
<td valign="top">Exit program format name not specified.
</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.<br>
</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 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">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">CPF9803 E</td>
<td valign="top">Cannot allocate object &amp;2 in library &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">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">Node Id &amp;1 is not a member of Cluster &amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB0A E</td>
<td valign="top">Cluster node &amp;1 in cluster &amp;2 not active.</td>
</tr>
<tr>
<td valign="top">CPFBB0F E</td>
<td valign="top">Cluster resource group &amp;1 does not exist in cluster
&amp;2.</td>
</tr>
<tr>
<td valign="top">CPFBB25 E</td>
<td valign="top">Value &amp;1 specified for recovery domain array action is 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">A primary node was not specified for the recovery domain.</td>
</tr>
<tr>
<td valign="top">CPFBB28 E</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 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">CPFBB30 E</td>
<td valign="top">Takeover IP address &amp;1 not part of the TCP/IP subnet.</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 not
valid.</td>
</tr>
<tr>
<td valign="top">CPFBB33 E</td>
<td valign="top">Cluster node &amp;1 already exists in recovery domain for
cluster resource group &amp;4.</td>
</tr>
<tr>
<td valign="top">CPFBB35 E</td>
<td valign="top">The user profile name &amp;1 is not valid for this
request.</td>
</tr>
<tr>
<td valign="top">CPFBB36 E</td>
<td valign="top">The number of cluster nodes specified for the recovery domain
is not valid.</td>
</tr>
<tr>
<td valign="top">CPFBB37 E</td>
<td valign="top">The offset to the recovery domain array is not valid.</td>
</tr>
<tr>
<td valign="top">CPFBB38 E</td>
<td valign="top">Library name &amp;1 is 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 restarts
parameter is not valid.</td>
</tr>
<tr>
<td valign="top">CPFBB43 E</td>
<td valign="top">Invalid format name &amp;1 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">CPFBB5E E</td>
<td valign="top">User profile to run exit program not specified.</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">CPFBB62 E</td>
<td valign="top">Exit program name *NONE not valid.</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">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">CPFBBAE E</td>
<td valign="top">The data port IP address action for node &amp;1
is not valid.</td>
</tr>
<tr>
<td valign="top">CPFBBAF E</td>
<td valign="top">Recovery domain node role is not valid.</td>
</tr>
<tr>
<td valign="top">CPFBBB0 E</td>
<td valign="top">Exit program format name not specified.
</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>
</body>
</html>