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

592 lines
17 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>List Cluster Information (QcstListClusterInfo) 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 -->
<!-- CLUST2A SCRIPT A converted by B2H R4.1 (346) (CMS) by NLJONES at -->
<!-- RCHVMX on 24 Feb 1999 at 17:15:51 -->
<!-- Edited by Kersten Oct 2001 -->
<!-- Added bullet for "A header section" -->
<!-- End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body><!--Java sync-link-->
<!-- -->
<!-- -->
<!-- -->
<!-- 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 -->
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<a name="Top_Of_Page"></a>
<h2>List Cluster Information (QcstListClusterInfo) 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%">Qualified user space name</td>
<td align="LEFT" valign="TOP" width="20%">Input</td>
<td align="LEFT" valign="TOP" width="20%">Char(20)</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">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">4</td>
<td align="LEFT" valign="TOP">Node id</td>
<td align="LEFT" valign="TOP">Input</td>
<td align="LEFT" valign="TOP">Char(8)</td>
</tr>
<tr>
<td align="center" valign="TOP">5</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: QCSTCTL1<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The List Cluster Information (QcstListClusterInfo) API is used to retrieve
information about a cluster. It must be called from a program running on one of
the nodes in the cluster. The information returned may not be current if this
API is called from a program running on a node that has a status of Inactive or
Failed. This API may be called from a cluster resource group exit program.<br>
</p>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>User Space Authority</em></dt>
<dd>*CHANGE</dd>
<dt><em>User Space 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>Qualified user space name</strong></dt>
<dd>OUTPUT; CHAR(20)
<p>The user space that receives the information and the library in which it is
located. The first 10 characters contain the user space name, and the second 10
characters contain the library name.
No special
values (QTEMP, *CURLIB, or *LIBL) can used for the
library name.
</p>
</dd>
<dt><strong>Cluster name</strong></dt>
<dd>INPUT; CHAR(10)
<p>The name of the cluster for which information is retrieved.</p>
</dd>
<dt><strong>Format name</strong></dt>
<dd>INPUT; CHAR(8)
<p>The format of the information to be returned. Supported format names
are:</p>
<table cellpadding="5">
<!-- cols="25 75" -->
<tr>
<td align="left" valign="top"><em><a href="#lcti0100">LCTI0100</a></em></td>
<td align="left" valign="top">Returns information about a specific node or all
nodes in the cluster and additional information about the cluster.</td>
</tr>
</table>
</dd>
<dt><strong>Node id</strong></dt>
<dd>INPUT; CHAR(8)
<p>A valid simple name that uniquely identifies a node. *ALL special value can
be used to return information about all nodes in the cluster. The *ALL special
value must be left-justified.</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>Format of Generated Lists</h3>
<p>The cluster information list consists of:</p>
<ul>
<li>A user space</li>
<li>A generic header</li>
<li>A header section</li>
<li>An input parameter section</li>
<li>A list data section
<ul>
<li>LCTI0100</li>
</ul>
</li>
</ul>
<p>For details about the user area and generic header, see <a href="../apiref/usf.htm">
User Space Format for List APIs</a>. For detailed descriptions of the fields in
the list returned, see <a href="#field_descriptions">Field
Descriptions</a>.</p>
<p>When you retrieve list entry information from a user space, you must not use
the entry size returned in the generic header. Each entry may have a different
size. The size of each entry may be padded at the end.<br>
</p>
<h3>Input Parameter Section</h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="TOP" width="10%">0</td>
<td align="center" valign="TOP" width="10%">0</td>
<td align="LEFT" valign="TOP" width="20%">CHAR(10)</td>
<td align="LEFT" valign="TOP" width="60%">User space 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">User space 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(10)</td>
<td align="LEFT" valign="TOP">Cluster name</td>
</tr>
<tr>
<td align="center" valign="TOP">30</td>
<td align="center" valign="TOP">1E</td>
<td align="LEFT" valign="TOP">CHAR(8)</td>
<td align="LEFT" valign="TOP">Format name</td>
</tr>
<tr>
<td align="center" valign="TOP">38</td>
<td align="center" valign="TOP">26</td>
<td align="LEFT" valign="TOP">CHAR(8)</td>
<td align="LEFT" valign="TOP">Node id</td>
</tr>
</table>
<br>
<h4><a name="HDRCSTLIP2">Header Section</a></h4>
<p>Global information about the cluster.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="TOP" width="10%">0</td>
<td align="center" valign="TOP" width="10%">0</td>
<td align="LEFT" valign="TOP" width="20%">CHAR(1)</td>
<td align="LEFT" valign="TOP" width="60%">Information status</td>
</tr>
<tr>
<td align="center" valign="TOP">1</td>
<td align="center" valign="TOP">1</td>
<td align="LEFT" valign="TOP">CHAR(3)</td>
<td align="LEFT" valign="TOP">Reserved</td>
</tr>
<tr>
<td align="center" valign="TOP">4</td>
<td align="center" valign="TOP">4</td>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Current cluster version</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">Current cluster version modification level</td>
</tr>
</table>
<br>
<h3><a name="lcti0100">LCTI0100 Format</a></h3>
<table border width="80%">
<!-- cols="10 10 20 60" -->
<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="LEFT" valign="TOP" rowspan="10" colspan="2" width="20%">These fields are
repeated for each node entry returned.</td>
<td align="LEFT" valign="TOP" width="20%">Array(*) of CHAR(*)</td>
<td align="LEFT" valign="TOP" width="60%">Node entry array</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Length of node entry</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 status</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Offset to first cluster interface entry</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Number of cluster interfaces</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Potential node version</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Potential node version modification level</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">CHAR(10)</td>
<td align="LEFT" valign="TOP">Device domain name</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Array(*) of CHAR(16)</td>
<td align="LEFT" valign="TOP">Cluster interface entry array</td>
</tr>
<tr>
<td align="LEFT" valign="TOP" colspan="2">These fields are repeated for each
cluster interface entry returned.</td>
<td align="LEFT" valign="TOP">CHAR(16)</td>
<td align="LEFT" valign="TOP">Cluster interface address</td>
</tr>
</table>
<br>
<h3><a name="field_descriptions">Field Descriptions</a></h3>
<p><strong>Cluster interface address.</strong> The cluster interface address is
an IP address which is used by Cluster Resource Services to communicate with
other nodes in the cluster. It is returned as a null-terminated string and
represented in dotted decimal format.</p>
<p><strong>Cluster interface address array.</strong> Array of cluster interface
addresses in use by each node in the node entry array.</p>
<p><strong>Cluster name.</strong> The name of the cluster for which information
is retrieved.</p>
<p><strong>Current cluster version.</strong> The version at which the nodes in
the cluster are actively communicating with each other. This value in
conjunction with the potential node version determines what nodes can join in
the cluster. This value also determines the cluster's ability to use new
functions supported by the node's potential node version. It is set when the
cluster is created and can be changed by the
<a href="clcntchgcv.htm">Adjust Cluster Version (QcstAdjustClusterVersion) API</a>.</p>
<p><strong>Current cluster version modification level.</strong> The
modification level of the current cluster version. The modification level
further identifies the version at which the nodes in the cluster communicate.
It is updated when code changes that impact the version are applied to the
system. </p>
<p><strong>Device domain name.</strong> The name of the device domain that this
node belongs to. This field will
contain hexadecimal zeros if the node does not belong to a device domain.</p>
<p><strong>Format name.</strong> The content and format of the information
returned in the user space.</p>
<p><strong>Information status.</strong> Indicates the consistency of the
retrieved information.</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">The information is consistent for all active
nodes in the cluster.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The information retrieved from the node running
the API may not be consistent with all active nodes in the cluster. In order to
obtain consistent information:
<ul>
<li>Call this API on an active node in the cluster.</li>
<li>Start Cluster Resource Services on the node and call the API again.</li>
</ul>
</td>
</tr>
</table>
<p><strong>Length of node entry.</strong> The length of the node entry.</p>
<p><strong>Node entry array.</strong> Array of cluster nodes for which
information is being returned.</p>
<p><strong>Node id.</strong> A valid simple name that uniquely identifies a
node.</p>
<p><strong>Node status.</strong> The status of the node in the cluster.
See <a href=
"clust2a4TOC.htm#header_3">Cluster Node Status</a> for the possible values and
definitions of the status.
</p>
<p><strong>Number of cluster interfaces.</strong> The number of IP interfaces
used by the node for Cluster Resource Services.</p>
<p><strong>Offset to first cluster interface entry.</strong> The offset from
the beginning of the user space to the first cluster interface entry.</p>
<p> <strong>Potential node version.</strong> The version at which the node is
capable of communicating with the other nodes in the cluster. This is the value
associated with the cluster code installed on the node. It will be used to
determine if the node can join a cluster. If communications have not yet been
established with the node (status of New), then the potential node version will
be reported as 0.</p>
<p><strong>Potential node version modification level.</strong>The modification
level of the potential node version. The modification level further identifies
the version at which the node is capable of communicating with the other nodes
in the cluster. It is updated when code changes that impact the version are
applied to the system.</p>
<p><strong>Reserved.</strong> The field will contain hexadecimal zeroes.</p>
<p><strong>User space name.</strong> The name of the user space.</p>
<p><strong>User space library name.</strong> The name of the library in which
the user space resides. No special values are supported for library name.<br>
</p>
<h3>Error Messages</h3>
<p>Messages that are delivered through the error code parameter are listed
here.</p>
<table width="100%" cellpadding="5">
<!-- cols="15 85" -->
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td width="15%" valign="top">CPF2113 E</td>
<td width="85%" valign="top">Cannot allocate library &amp;1. </td>
</tr>
<tr>
<td align="left" valign="top">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">CPF3CF1 E</td>
<td align="left" valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF2 E</td>
<td align="left" valign="top">Error(s) occurred during running of &amp;1 API.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9801 E</td>
<td align="left" valign="top">Object &amp;2 in library &amp;3 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9802 E</td>
<td align="left" valign="top">Not authorized to object &amp;2 in &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9803 E</td>
<td align="left" valign="top">Cannot allocate object &amp;2 in library &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9804 E</td>
<td align="left" valign="top">Object &amp;2 in library &amp;3 damaged.</td>
</tr>
<tr>
<td align="left" valign="top">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">CPFBB09 E</td>
<td align="left" valign="top">Cluster node &amp;1 does not exist in cluster &amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPFBB38 E</td>
<td align="left" valign="top">Library name &amp;1 not allowed for this request.</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>