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

1225 lines
40 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 Services (QcstChgClusterResourceServices)
API</title>
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- 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 Services (QcstChgClusterResourceServices) 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 services information</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Length of cluster resource services
information</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">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">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">7</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;<img src="delta.gif" alt="Start of change">Service Program: QCSTCTL2<img src="deltaend.gif" alt="End of change"> <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 Services (QcstChgClusterResourceServices) API is
used to tune cluster performance and configuration parameters. The API provides
a base level of tuning support where the cluster will adjust to a predefined
set of values identified for high, low, and normal timeout and messaging
interval values using format CRSC0100. If an advanced level of tuning is
desired, usually anticipated with the help of IBM support personnel, then
individual parameters may be tuned over a predefined range of values using
format CRSC0200. Example control language command source has been provided in
the base operating system option 7 (Example Tools Library, QUSRTOOL). See
member, TCSTINFO, in file QUSRTOOL/QATTSYSC for more information.</p>
<p>The default values are set on a create operation and changes must be made
under the Change Cluster Resource Services API documented here. Values for
current settings may be retrieved using the <a href="clcntrtcrs.htm">Retrieve
Cluster Resource Services Information (QcstRetrieveCRSInfo) API</a>.</p>
<p>The rules for merging of partitioned nodes are as follows:</p>
<ul>
<li>If the tuning parameters defined under the Change Cluster Resource Services
API documented here match exactly in both partitions, a merge will be
allowed.</li>
</ul>
<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> 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>User Queue Authority</em></dt>
<dd>*OBJOPR and *ADD</dd>
<dt><em>User Queue Library Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>User Queue Lock</em></dt>
<dd>*EXCLRD</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.</p>
</dd>
<dt><strong>Cluster resource services information</strong></dt>
<dd>INPUT; CHAR(*)
<p>Detailed information about the cluster resource services.</p>
</dd>
<dt><strong>Length of cluster resource services information</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the cluster resource services information.</p>
</dd>
<dt><strong>Format name</strong></dt>
<dd>INPUT; CHAR(8)
<p>The format of the Cluster Resource Services information to be changed. The
possible format names are:</p>
<table cellpadding="5">
<!-- cols="25 75" -->
<tr>
<td align="left" valign="top"><em><a href="#crsc0100">CRSC0100</a></em></td>
<td align="left" valign="top">Automatic tuning to a level of high, low or
normal heartbeat intervals and message timeout values for cluster performance
and configuration parameters.</td>
</tr>
<tr>
<td align="left" valign="top"><em><a href="#crsc0200">CRSC0200</a></em></td>
<td align="left" valign="top">Manually tune one or more of the cluster
performance and configuration parameters.<br>
</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Results information</strong></dt>
<dd>INPUT; CHAR(30)
<p>A library qualified user queue name followed by a reserved field.</p>
<p>Library qualified user queue: A user queue, which exists on the node from
which the API was called, that receives results information after the function
has completed on all active nodes in the cluster. 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, and
*CURLIB are not valid for the library name. The attributes of this user queue
must be keyed.</p>
<p>Reserved: The last 10 characters of results information are reserved and
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="crsc0100">CRSC0100 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%">Configuration tuning level</td>
</tr>
</table>
<br>
<br>
<h3><a name="crsc0200">CRSC0200 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(8)</td>
<td align="left" valign="top" width="60%">Receive/send heartbeat timer
ratio</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Maximum retry timer ratio</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Send heartbeat interval</td>
</tr>
<tr>
<td align="center" valign="top">24</td>
<td align="center" valign="top">18</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Retry timer value</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">CDAT protocol timeout interval</td>
</tr>
<tr>
<td align="center" valign="top">40</td>
<td align="center" valign="top">28</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Cluster recovery interval</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Maximum retry time</td>
</tr>
<tr>
<td align="center" valign="top">56</td>
<td align="center" valign="top">38</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Message fragment size</td>
</tr>
<tr>
<td align="center" valign="top">64</td>
<td align="center" valign="top">40</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Send queue overflow</td>
</tr>
<tr>
<td align="center" valign="top">72</td>
<td align="center" valign="top">48</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Number of bad messages threshold</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Number of ack messages threshold</td>
</tr>
<tr>
<td align="center" valign="top">88</td>
<td align="center" valign="top">58</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Unreachable heartbeat ack threshold</td>
</tr>
<tr>
<td align="center" valign="top">96</td>
<td align="center" valign="top">60</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Reachable heartbeat ack threshold</td>
</tr>
<tr>
<td align="center" valign="top">104</td>
<td align="center" valign="top">68</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Unreachable heartbeat threshold</td>
</tr>
<tr>
<td align="center" valign="top">112</td>
<td align="center" valign="top">70</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Reachable heartbeat threshold</td>
</tr>
<tr>
<td align="center" valign="top">120</td>
<td align="center" valign="top">78</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Delayed ack timer</td>
</tr>
<tr>
<td align="center" valign="top">128</td>
<td align="center" valign="top">80</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Message send window</td>
</tr>
<tr>
<td align="center" valign="top">136</td>
<td align="center" valign="top">88</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Enable multicast</td>
</tr>
<tr>
<td align="center" valign="top">144</td>
<td align="center" valign="top">90</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Performance class</td>
</tr>
<tr>
<td align="center" valign="top">152</td>
<td align="center" valign="top">98</td>
<td align="left" valign="top">BINARY(8)</td>
<td align="left" valign="top">Ack remote fragments</td>
</tr>
</table>
<br>
<h3>Field Descriptions</h3>
<p><strong>Note:</strong> Specify -1 on any parameters that are not changed.
This pertains to format CRSC0200 only.</p>
<p><strong>Note:</strong> Units and ranges for the fields described here may be
found in the Field Settings Range Table located at the end of this Field
Descriptions section of this document.</p>
<p><strong>Ack remote fragments.</strong> Provides a switch to enable or
disable a cluster messaging level acknowledgment for receipt of each fragment
sent to a remote cluster node. Fragments are sent by the cluster messaging
service for each cluster message whose size is greater than the specified
Message fragment size. Remote cluster nodes are defined to be any nodes not on
the local LAN (having a network or subnet IP address other than that of the
source node for the message). ACKing remote fragments may be desirable in those
few cases where low bandwidth gateways, routers, or bridges exist between local
and remote systems.</p>
<p><strong>CDAT protocol timeout interval.</strong> The timeout value used for
distributing the Cluster Destination Address Table (CDAT) and synchronizing
cluster communications when doing a create cluster, add node, or start node
process. As the number of nodes in the cluster increases, the time required to
run this synchronizing protocol increases. This is a low level Cluster Resoure Services start-up protocol.</p>
<p><strong>Cluster recovery interval.</strong> The interval at which a cluster
node takes inventory of required recovery actions and attempts automatic
recovery as necessary. Those items checked are:</p>
<ul>
<li>Unreachable alternate point-point interface addresses for remote
nodes.</li>
<li>Unreachable multicast IP address for the local subnet.</li>
<li>Partitioned nodes.</li>
</ul>
<p><strong>Configuration tuning level.</strong> Provides for a simple way to
set cluster performance and configuration parameters. The valid values for this
field are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Adjustments are made to cluster communications to
<img src="delta.gif" alt="Start of change">
decrease<img src="deltaend.gif" alt="End of change"> the
heartbeating <img src="delta.gif" alt="Start of change">frequency
<img src="deltaend.gif" alt="End of change"> and increase the various message timeout
values. With fewer heartbeats and longer timeout values, the cluster will be
slower to respond (less sensitive) to communications failures.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Default values are used for cluster
communications performance and configuration parameters. This setting may be
used to return all parameters to the original default values.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">Adjustments are made to cluster communications to
<img src="delta.gif" alt="Start of change">increase
<img src="deltaend.gif" alt="End of change">
the heartbeating
<img src="delta.gif" alt="Start of change">frequency
<img src="deltaend.gif" alt="End of change">
and decrease
the various message timeout
values. With more frequent heartbeats and shorter timeout values, the cluster
will be quicker to respond (more sensitive) to communications failures.</td>
</tr>
</table>
<p><strong>Delayed ack timer.</strong> The timer used over inbound reliable
messages to force an acknowledgment for unacknowledged messages should the
sender not have requested an acknowledgment over the last delayed ack time
period. This timer is started on receipt of a reliable message and stopped when
an acknowledgment is sent for one or more unacknowledged messages.</p>
<p><strong>Enable multicast.</strong> The cluster communications infrastructure
makes use of User Datagram Protocol (UDP) multicast capabilities as the
preferred protocol for sending cluster management information between nodes in
a cluster. Where multicast capabilities are supported by the underlying
physical media, cluster communications will utilize the UDP multicast to send
management messaging from a given node to all local cluster nodes supporting
the same subnet address. Messages being sent to nodes on remote networks will
always be sent using UDP point to point capabilities. Cluster communications
does not rely on routing capability of multicast messages.</p>
<p>The multicast traffic supporting cluster management messaging tends by
nature to be bursty. Depending on the number of nodes on a given LAN
(supporting a common subnet address) and the complexity of the cluster
management structure that is chosen by the cluster administrator, cluster
related multicast packets can easily exceed 40 packets/second. Bursts of this
nature could have a negative impact on older networking equipment. One example
would be congestion problems on devices on the LAN serving as Simple Network
Management Protocol (SNMP) agents which need to evaluate each and every UDP
multicast packet. Some of the earlier networking equipment does not have
adequate bandwidth to keep up with this type of traffic. Insure that the
network administrator has reviewed the capacity of the networks to handle UDP
multicast traffic to make certain that clustering will not have a negative
impact on the health and performance of the networks over which it is chosen to
operate.</p>
<p>If the network does not wish to have the more efficient multicast
capabilities used, setting this field to FALSE (0) will disable the multicast
capabilities of the cluster and only point to point communications will be used
by the cluster messaging services.</p>
<p><strong>Maximum retry time.</strong> Reliable messages are resent at
exponentially increasing times should they timeout (that is, not receive a timely
acknowledgment). The initial timeout value for a message is the Retry Timer
Value and each successive retry builds up by a factor of 2 until the Maximum
retry timer value is exceeded. For the default cases, a message would be sent,
resent 1 second later, then 2 seconds, 4 seconds, and finally 8 seconds. This
represents a total of 15 seconds following which attempts to use alternate
internet addressing are tried with the same timer values.</p>
<p><strong>Maximum retry timer ratio.</strong> Remote subnets (remote cluster
nodes on another LAN/WAN/BUS supporting a different subnet interface address
than the sending node) use an extended message timeout value which is based
from the Maximum retry time used for local subnets (local cluster nodes
supporting the same subnet interface address). For the default case, the
Maximum retry time for a local multicast message would be 8 seconds and for a
remote point to point message would be 8 x 8 = 64 seconds. This allows for
network routing considerations.</p>
<p><strong>Message fragment size.</strong> Cluster communications fragments its
own messages. This fragment size should be set consistent with the physical
media and routing capabilities throughout the network used for clustering. The
preferred settings allow for the largest fragment size possible that does not
exceed any of the hardware Maximum Transmission Units defined over the entire
path so that clustering does all of the fragmentation, not the intermediary
networks. The default is set to assume a minimum 1500 byte (less network header
space) Ethernet environment.</p>
<p><strong>Message send window.</strong> The number of messages allowed
outstanding without having received an acknowledgment. The higher the number,
the lower the message latency but the larger the required buffer space on a
node to save inbound messages.</p>
<p><strong>Number of ack messages threshold.</strong> The number of repeat
messages that are received over the course of a cluster recovery interval
before acknowledgments are sent to multiple source interface addresses for a
given node instead of just the current primary address for each message
received. While increasing the number of ACKs flowing, this reduces the message
resends and latency given that an intermittent communications condition is
detected. Eventually, one of the node addresses should be marked as failed and
at cluster recovery time, messaging will settle back down using single
acknowledgments.</p>
<p><strong>Number of bad messages threshold.</strong> The number of
undeliverable messages per Cluster recovery interval allowed before a failing
status is assigned to a node's interface address. At this time, a secondary
address (if available) is assigned to be the new primary interface address for
the subject remote node.</p>
<p><strong>Performance class.</strong> The requested performance
characteristics of the cluster communications messaging protocol. Pacing is
selectively used for sending out fragments of large messages. Messages are
fragmented by the cluster messaging service at the specified message fragment
size. The pacing mechanism releases a set number of fragments to the underlying
physical layer, then delays, then releases a next set. This is to avoid over
running slower physical media. Local here refers to nodes on a local LAN.
Remote refers to messaging to cluster nodes on other than the local LAN. Valid
values for the performance class are as follows:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Normal: Pacing applied to local and remote
fragments.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">High Throughput Local: Pacing applied to remote
fragments.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">High Throughput Local and Remote: No pacing of
any fragmented messages.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">High Throughput Remote: Pacing applied to local
fragments.</td>
</tr>
</table>
<p><strong>Reachable heartbeat ack threshold.</strong> A node becomes reachable
(formerly having been marked as unreachable) from a Cluster Communications
heartbeating perspective if "Reachable heartbeat ack threshold" (or greater)
heartbeat message ACKs are received for the last "Reachable heartbeat
threshold" heartbeat messages sent to a node. For the default case, a node
becomes reachable if 3 or more of the last four heartbeats sent to the marked
unreachable node are now acknowledged.</p>
<p><strong>Reachable heartbeat threshold.</strong> See Reachable heartbeat ack
threshold field description.</p>
<p><strong>Receive/send heartbeat timer ratio.</strong> Ratio of incoming
heartbeat messages expected from a neighboring node to the number of heartbeat
messages that are sent out. The send rate is always set higher to insure a
neighboring node's receive heartbeat timer does not fire under normal
operational circumstances.</p>
<p><strong>Retry timer value.</strong> See Maximum retry time field
description.</p>
<p><strong>Send heartbeat interval.</strong> The interval at which a low level
Cluster Communications heartbeat message is sent to a neighboring node.</p>
<p><strong>Send queue overflow.</strong> The maximum number of messages that
are allowed to be queued up in a Cluster Communications outbound message queue.
The cluster communication send queues are distributed amongst the various
groups. The larger the number, the greater the memory resources that are
required to support cluster messaging. If a send queue overflow is hit for a
given group, the inability to send a message could lead to the termination of
that group resulting from the lack of resources on a node.</p>
<p><strong>Unreachable heartbeat ack threshold.</strong> A reachable node
becomes unreachable from a cluster communications heartbeating perspective if
"Unreachable heartbeat ack threshold" heartbeat message ACKs (or less) are
received for the last "Unreachable heartbeat threshold" heartbeat messages sent
to a node. For the default case, a node becomes unreachable if one or less of
the last four heartbeats sent to the marked reachable node are
acknowledged.</p>
<p><strong>Unreachable heartbeat threshold.</strong> See Unreachable heartbeat
ack threshold field description.</p>
<br>
<h3><a name="crsc0200">Field Settings For CRSC0200 Format</a></h3>
<table border width="80%">
<tr>
<th align="left" valign="top">&nbsp;</th>
<th align="CENTER" valign="top" colspan="3">Configuration Tuning Level</th>
<th align="left" valign="top">&nbsp;</th>
</tr>
<tr>
<th align="left" valign="top">Field</th>
<th align="CENTER" valign="top">1</th>
<th align="CENTER" valign="top">2</th>
<th align="CENTER" valign="top">3</th>
<th align="left" valign="top">Unit</th>
</tr>
<tr>
<td align="left" valign="top" width="50%">Receive/send heartbeat timer
ratio</td>
<td align="center" valign="top" width="10%">4</td>
<td align="center" valign="top" width="10%">2</td>
<td align="center" valign="top" width="10%">2</td>
<td align="left" valign="top" width="20%">unitless</td>
</tr>
<tr>
<td align="left" valign="top">Maximum retry timer ratio</td>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">unitless</td>
</tr>
<tr>
<td align="left" valign="top">Send heartbeat interval</td>
<td align="center" valign="top">6</td>
<td align="center" valign="top">3</td>
<td align="center" valign="top">1</td>
<td align="left" valign="top">seconds</td>
</tr>
<tr>
<td align="left" valign="top">Retry timer value</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="left" valign="top">seconds</td>
</tr>
<tr>
<td align="left" valign="top">CDAT protocol timeout interval</td>
<td align="center" valign="top">4</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">2</td>
<td align="left" valign="top">minutes</td>
</tr>
<tr>
<td align="left" valign="top">Cluster recovery interval</td>
<td align="center" valign="top">30</td>
<td align="center" valign="top">15</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">minutes</td>
</tr>
<tr>
<td align="left" valign="top">Maximum retry time</td>
<td align="center" valign="top">16</td>
<td align="center" valign="top">8</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">seconds</td>
</tr>
<tr>
<td align="left" valign="top">Message fragment size</td>
<td align="center" valign="top">1,464</td>
<td align="center" valign="top">1,464</td>
<td align="center" valign="top">1,464</td>
<td align="left" valign="top">bytes</td>
</tr>
<tr>
<td align="left" valign="top">Send queue overflow</td>
<td align="center" valign="top">1,024</td>
<td align="center" valign="top">1,024</td>
<td align="center" valign="top">1,024</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Number of bad messages threshold</td>
<td align="center" valign="top">5</td>
<td align="center" valign="top">3</td>
<td align="center" valign="top">2</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Number of ack messages threshold</td>
<td align="center" valign="top">20</td>
<td align="center" valign="top">10</td>
<td align="center" valign="top">5</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Unreachable heartbeat ack threshold</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Reachable heartbeat ack threshold</td>
<td align="center" valign="top">3</td>
<td align="center" valign="top">3</td>
<td align="center" valign="top">3</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Unreachable heartbeat threshold</td>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Reachable heartbeat threshold</td>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Delayed ack timer</td>
<td align="center" valign="top">300</td>
<td align="center" valign="top">100</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">milliseconds</td>
</tr>
<tr>
<td align="left" valign="top">Message send window</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">2</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Enable multicast</td>
<td align="center" valign="top">TRUE(1)</td>
<td align="center" valign="top">TRUE(1)</td>
<td align="center" valign="top">TRUE(1)</td>
<td align="left" valign="top">unitless</td>
</tr>
<tr>
<td align="left" valign="top">Performance class</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">2</td>
<td align="left" valign="top">unitless</td>
</tr>
<tr>
<td align="left" valign="top">Ack remote fragments</td>
<td align="center" valign="top">FALSE(0)</td>
<td align="center" valign="top">FALSE(0)</td>
<td align="center" valign="top">FALSE(0)</td>
<td align="left" valign="top">unitless</td>
</tr>
</table>
<br>
<br>
<h3><a name="fldset">Field Settings Range</a></h3>
<table border width="80%">
<tr>
<th align="left" valign="top">Field</th>
<th align="CENTER" valign="top">Minimum</th>
<th align="CENTER" valign="top">Default</th>
<th align="CENTER" valign="top">Maximum</th>
<th align="left" valign="top">Unit</th>
</tr>
<tr>
<td align="left" valign="top">Receive/send heartbeat timer ratio</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">unitless</td>
</tr>
<tr>
<td align="left" valign="top">Maximum retry timer ratio</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">unitless</td>
</tr>
<tr>
<td align="left" valign="top">Send heartbeat interval</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">3</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">seconds</td>
</tr>
<tr>
<td align="left" valign="top">Retry timer value</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">seconds</td>
</tr>
<tr>
<td align="left" valign="top">CDAT protocol timeout interval</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">5</td>
<td align="left" valign="top">minutes</td>
</tr>
<tr>
<td align="left" valign="top">Cluster recovery interval</td>
<td align="center" valign="top">5</td>
<td align="center" valign="top">15</td>
<td align="center" valign="top">60</td>
<td align="left" valign="top">minutes</td>
</tr>
<tr>
<td align="left" valign="top">Maximum retry time</td>
<td align="center" valign="top">4</td>
<td align="center" valign="top">8</td>
<td align="center" valign="top">16</td>
<td align="left" valign="top">seconds</td>
</tr>
<tr>
<td align="left" valign="top">Message fragment size</td>
<td align="center" valign="top">540</td>
<td align="center" valign="top">1,464</td>
<td align="center" valign="top">32,500</td>
<td align="left" valign="top">bytes</td>
</tr>
<tr>
<td align="left" valign="top">Send queue overflow</td>
<td align="center" valign="top">512</td>
<td align="center" valign="top">1,024</td>
<td align="center" valign="top">4,096</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Number of bad messages threshold</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">3</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Number of ack messages threshold</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">10</td>
<td align="center" valign="top">25</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Unreachable heartbeat ack threshold</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">m</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Reachable heartbeat ack threshold</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">3</td>
<td align="center" valign="top">n</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Unreachable heartbeat threshold</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">4</td>
<td align="center" valign="top">16</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Reachable heartbeat threshold</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">4</td>
<td align="center" valign="top">16</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Delayed ack timer</td>
<td align="center" valign="top">50</td>
<td align="center" valign="top">100</td>
<td align="center" valign="top">300</td>
<td align="left" valign="top">milliseconds</td>
</tr>
<tr>
<td align="left" valign="top">Message send window</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">messages</td>
</tr>
<tr>
<td align="left" valign="top">Enable multicast</td>
<td align="center" valign="top">FALSE(0)</td>
<td align="center" valign="top">TRUE(1)</td>
<td align="center" valign="top">TRUE(1)</td>
<td align="left" valign="top">unitless</td>
</tr>
<tr>
<td align="left" valign="top">Performance class</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">3</td>
<td align="left" valign="top">unitless</td>
</tr>
<tr>
<td align="left" valign="top">Ack remote fragments</td>
<td align="center" valign="top">FALSE(0)</td>
<td align="center" valign="top">FALSE(0)</td>
<td align="center" valign="top">TRUE(1)</td>
<td align="left" valign="top">unitless</td>
</tr>
</table>
<br>
<h3><a name="usage_notes">Usage Notes</a></h3>
<h4>Results Information User Queue</h4>
<p>Asynchronous results are returned to a user queue specified by the Results
Information parameter of the API. See <a href="clust1a4.htm">Cluster APIs Use of User Queues</a>
and <a href="clust1a5.htm">Using Results Information</a> for details on how to create the
results information user queue, the format of the entries, and how to use the
data placed on the queue. The data is sent to the user queue in the form of a
message identifier and the substitution data for the message (if any exists).
The following identifies the data sent to the user queue (excluding the message
text).</p>
<table width="100%" cellpadding="5">
<!-- cols="15 85" -->
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Message Text</th>
</tr>
<tr>
<td width="15%" valign="top">CPCBB01 C</td>
<td width="85%" valign="top">Cluster Resource Services API &amp;1
completed.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB24 D</td>
<td align="left" valign="top">Node &amp;1 not participating in &amp;2 API protocol.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB2D D</td>
<td align="left" valign="top">Timeout detected while waiting for a response.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB46 D</td>
<td align="left" valign="top">Cluster Resource Services internal error.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB4D D</td>
<td align="left" valign="top">Cluster Resource Services cannot process the request.</td>
</tr>
</table>
<br>
<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 align="left" valign="top">CPF2113 E</td>
<td align="left" valign="top">Cannot allocate library &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C1E E</td>
<td align="left" valign="top">Required parameter &amp;1 omitted.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C21 E</td>
<td align="left" valign="top">Format name &amp;1 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C39 E</td>
<td align="left" valign="top">Value for reserved field not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF1 E</td>
<td align="left" valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF2 E</td>
<td align="left" valign="top">Error(s) occurred during running of &amp;1 API.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9801 E</td>
<td align="left" valign="top">Object &amp;2 in library &amp;3 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9802 E</td>
<td align="left" valign="top">Not authorized to object &amp;2 in &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9804 E</td>
<td align="left" valign="top">Object &amp;2 in library &amp;3 damaged.</td>
</tr>
<tr>
<td align="left" valign="top">CPF980C E</td>
<td align="left" valign="top">Object &amp;1 in library &amp;2 cannot be in an independent
auxiliary storage pool.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9810 E</td>
<td align="left" valign="top">Library &amp;1 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9820 E</td>
<td align="left" valign="top">Not authorized to use library &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9872 E</td>
<td align="left" valign="top">Program or service program &amp;1 in library &amp;2 ended.
Reason code &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB02 E</td>
<td align="left" valign="top">Cluster &amp;1 does not exist.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB26 E</td>
<td align="left" valign="top">Cluster Resource Services not active or not responding.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB32 E</td>
<td align="left" valign="top">Attributes of user queue &amp;1 in library &amp;2 are not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB39 E</td>
<td align="left" valign="top">Current user does not have IOSYSCFG special authority.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB44 E</td>
<td align="left" valign="top">&amp;1 API cannot be called from a cluster resource group exit
program.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB46 E</td>
<td align="left" valign="top">Cluster Resource Services internal error.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB5F E</td>
<td align="left" valign="top">Field value within structure is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB70 E</td>
<td align="left" valign="top">API request &amp;1 not compatible with current cluster
version.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB86 E</td>
<td align="left" valign="top">Length specified in parameter &amp;1 not valid.</td>
</tr>
</table>
<br>
<hr>
API introduced: V5R1
<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>