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

509 lines
16 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>Retrieve Class Information (QWCRCLSI) 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. -->
<!-- WM SCRIPT A converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!-- File cleanup completed on 16 July 2001 -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- File cleanup completed Feb 2002 by v2cdijab -->
<!-- End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="Top_Of_Page"></a>
<!-- Java sync-link -->
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<h2>Retrieve Class Information (QWCRCLSI) API</h2>
<div class="box" style="width: 80%;">
<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%">Receiver variable</td>
<td align="left" valign="top" width="20%">Output</td>
<td align="left" valign="top" width="20%">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Length of receiver variable</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Format of class information</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">Qualified class name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(20)</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;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: No<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Retrieve Class Information (QWCRCLSI) API returns the attributes of a
class object. A class contains the job run attributes for jobs that use this
class. This API provides support similar to the Display Class (DSPCLS)
command.</p>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>Class</em></dt>
<dd>*USE</dd>
<dt><em>Class Library</em></dt>
<dd>*EXECUTE</dd>
</dl>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Receiver variable</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>The receiver variable that receives the information requested. You can
specify the size of the area to be smaller than the format requested as long as
you specify the length parameter correctly. As a result, the API returns only
the data that the area can hold.</p>
</dd>
<dt><strong>Length of receiver variable</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the receiver variable provided. The length of receiver
variable parameter may be specified up to the size of the receiver variable
specified in the user program. If the length of receiver variable parameter
specified is larger than the allocated size of the receiver variable specified
in the user program, the results are not predictable. The minimum length is 8
bytes.</p>
</dd>
<dt><strong>Format of class information</strong></dt>
<dd>INPUT; CHAR(8)
<p>The format of the class information being returned. The format names that
can be used are as follows:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>CLSI0100</em></td>
<td align="left" valign="top">This format returns all of the class information.
See <a href="#HDRCLSI010">Format CLSI0100</a> for details.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Qualified class name</strong></dt>
<dd>INPUT; CHAR(20)
<p>The class name whose attributes are to be retrieved. The first 10 characters
contain the class name, and the second 10 characters contain the library name.
You can use these special values for the library name:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*CURLIB</em></td>
<td align="left" valign="top">The job's current library</td>
</tr>
<tr>
<td align="left" valign="top"><em>*LIBL</em></td>
<td align="left" valign="top">The job's library list</td>
</tr>
</table>
<br>
</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="HDRCLSI010">Format CLSI0100</a></h3>
<p>The following information is returned by this API when format CLSI0100 is
used:</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%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Bytes returned</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">Bytes available</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Class name</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Class library name</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Run priority</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Time slice</td>
</tr>
<tr>
<td align="center" valign="top">36</td>
<td align="center" valign="top">24</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Eligible for purge</td>
</tr>
<tr>
<td align="center" valign="top">40</td>
<td align="center" valign="top">28</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Default wait time</td>
</tr>
<tr>
<td align="center" valign="top">44</td>
<td align="center" valign="top">2C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Maximum CPU time</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Maximum temporary storage in kilobytes</td>
</tr>
<tr>
<td align="center" valign="top">52</td>
<td align="center" valign="top">34</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Maximum number of threads</td>
</tr>
<tr>
<td align="center" valign="top">56</td>
<td align="center" valign="top">38</td>
<td align="left" valign="top">CHAR(50)</td>
<td align="left" valign="top">Text</td>
</tr>
<tr>
<td align="center" valign="top">106</td>
<td align="center" valign="top">6A</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">108</td>
<td align="center" valign="top">6C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Maximum temporary storage in megabytes</td>
</tr>
</table>
<br>
<br>
<h3><a name="Header_187">Field Description</a></h3>
<p><strong>Bytes available.</strong> The number of bytes of data available to
be returned. All available data is returned if enough space is provided.</p>
<p><strong>Bytes returned.</strong> The number of bytes of data returned.</p>
<p><strong>Class library name.</strong> The name of the library in which the
class resides.</p>
<p><strong>Class name.</strong> The name of the class about which information
is returned.</p>
<p><strong>Default wait time.</strong> The default maximum time (in seconds)
that a thread in a job waits for a system instruction, such as the LOCK machine
interface (MI) instruction, to acquire a resource. This default wait time is
used when a wait time is not otherwise specified for a given situation.
Normally, this would be the amount of time the user would be willing to wait
for the system before the request is ended. A value of -1 is returned for
*NOMAX, which indicates there is no maximum wait time.</p>
<p><strong>Eligible for purge.</strong> Whether or not the job is eligible to
be moved out of main storage and put into auxiliary storage at the end of a
time slice or when beginning a long wait (such as waiting for a work station
user's response). This attribute is ignored when more than one thread is active
within the job. The possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">The job is not eligible to be moved out of main
storage and put into auxiliary storage. When main storage is needed, however,
pages belonging to a thread in this job may be moved to auxiliary storage.
Then, when a thread in the job runs again, its pages are returned to main
storage as they are needed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The job is eligible to be moved out of main
storage and put into auxiliary storage. A job with multiple threads, however,
is never purged from main storage.</td>
</tr>
</table>
<p><strong>Maximum CPU time.</strong> The maximum processing unit time (in
milliseconds) that the job can use. If the job consists of multiple routing
steps, this is the maximum processing unit time that the routing step can use.
If the maximum time is exceeded, the job is ended. A value of -1 is returned
for *NOMAX, which indicates there is no limit on the processing unit time.</p>
<p><strong>Maximum number of threads.</strong> The maximum number of threads
that a job using this class can run with at any time. If multiple threads are
initiated simultaneously, this value may be exceeded. If this maximum value is
exceeded, the excess threads will be allowed to run to their normal completion.
Initiation of additional threads will be inhibited until the maximum number of
threads in the job drops below this maximum value. A value of -1 is returned
for *NOMAX, which indicates there is no maximum number of threads. Depending on
the resources used by the threads and the resources available on the system,
the initiation of additional threads may be inhibited before the maximum is
reached.</p>
<p><strong>Maximum temporary storage in kilobytes.</strong> The maximum amount
of auxiliary storage (in kilobytes) that the job can use. If the job consists
of multiple routing steps, this is the maximum temporary storage that the
routing step can use. This temporary storage is used for storage that is
required by the programs running in the job and by internal system objects
created while the programs are running. (It does not include storage in the
QTEMP library.) If the maximum temporary storage is exceeded, the job is ended.
This does not apply to the use of permanent storage, which is controlled
through the user profile. A value of -1 is returned for *NOMAX, which indicates
the system maximum is used.</p>
<p><strong>Maximum temporary storage in megabytes.</strong> The maximum amount
of auxiliary storage (in megabytes) that the job can use. If the job consists
of multiple routing steps, this is the maximum temporary storage that the
routing step can use. This temporary storage is used for storage that is
required by the programs running in the job and by internal system objects
created while the programs are running. (It does not include storage in the
QTEMP library.) If the maximum temporary storage is exceeded, the job is ended.
This does not apply to the use of permanent storage, which is controlled
through the user profile. A value of -1 is returned for *NOMAX, which indicates
the system maximum is used.</p>
<p><strong>Reserved.</strong> This field is ignored.</p>
<p><strong>Run priority.</strong> A value that represents the priority at which
the job competes for the processing unit relative to other jobs that are active
at the same time. The run priority ranges from 0 (highest priority) to 99
(lowest priority). This value is the highest run priority allowed for any
thread within the job. Individual threads may have a lower priority.</p>
<p><strong>Text.</strong> The text description of the class.</p>
<p><strong>Time slice.</strong> The maximum amount of processor time, in
milliseconds, given to each thread in a job before other threads in the job or
other jobs are given the opportunity to run. The time slice establishes the
amount of time needed by a thread in the job to accomplish a meaningful amount
of processing. At the end of the time slice, the thread might be put in an
inactive state so that other threads can become active in the storage pool.</p>
<br>
<h3>Error Messages</h3>
<table width="100%" cellpadding="5">
<!-- cols="15 85" -->
<tr>
<th align="left" valign="top" nowrap>Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td align="left" valign="top">CPF1029 E</td>
<td align="left" valign="top">No authority to library &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1039 E</td>
<td align="left" valign="top">Class library &amp;1 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1065 E</td>
<td align="left" valign="top">Class &amp;1 in library &amp;2 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1067 E</td>
<td align="left" valign="top">Cannot allocate library &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1068 E</td>
<td align="left" valign="top">Cannot allocate class &amp;1 in library
&amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPF1098 E</td>
<td align="left" valign="top">No authority to class &amp;1 in library
&amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPF24B4 E</td>
<td align="left" valign="top">Severe error while addressing parameter
list.</td>
</tr>
<tr>
<td align="left" valign="top">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">CPF3C19 E</td>
<td align="left" valign="top">Error occurred with receiver variable
specified.</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">CPF3C24 E</td>
<td align="left" valign="top">Length of the receiver variable is not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C90 E</td>
<td align="left" valign="top">Literal value cannot be changed.</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>
</table>
<br>
<hr>
API introduced: V4R3
<hr>
<table align="center" cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top">Top</a> | <a href="wm1.htm">
Work Management APIs</a> | <a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</body>
</html>