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

3335 lines
97 KiB
HTML
Raw Permalink Normal View History

2024-04-02 14:02:31 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Retrieve Program Information (QCLRPGMI) 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. -->
<!-- QCLRPGM SCRIPT A converted by B2H R4.1 (346) (CMS) by HOLTJM at -->
<!-- RCHVMW2 on 5 Feb 1999 at 11:11:16 -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!--File Edited by Kersten Nov 2001 -->
<!--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 Program Information (QCLRPGMI) 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%">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 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">Qualified program 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 Program Information (QCLRPGMI) API lets you retrieve program
information and place it into a single variable in the calling program. The
amount of information returned is limited to the size of the variable. This
information is the same as the information returned using the Display Program
(DSPPGM) command.</p>
<p>You can use the QCLRPGMI API to retrieve the following:</p>
<ul>
<li>Program creation information</li>
<li>Program statistics</li>
<li>Program performance information</li>
<li>SQL statement information</li>
<li>ILE program size information</li>
</ul>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>Library Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Program Authority</em></dt>
<dd>*READ</dd>
<dt><em>Program Lock</em></dt>
<dd>*SHRRD</dd>
</dl>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Receiver variable</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>The variable that is to receive the information requested. The minimum size
for this area is 8 bytes. You can specify the size of this 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. If this value is larger than the actual
size of the receiver variable, the results may not be predictable. The minimum
value is 8.</p>
</dd>
<dt><strong>Format name</strong></dt>
<dd>INPUT; CHAR(8)
<p>The content and format of the information returned for the program.</p>
<p>The possible format names are:</p>
<table cellpadding="5">
<!-- cols="25 75" -->
<tr>
<td align="left" valign="top"><em><a href="#HDRRPGM1">PGMI0100</a></em></td>
<td align="left" valign="top">Basic program information for OPM and ILE
programs.</td>
</tr>
<tr>
<td align="left" valign="top"><em><a href="#HDRRPGM2">PGMI0200</a></em></td>
<td align="left" valign="top">Basic program information for OPM and ILE
programs plus SQL statement information for OPM programs.</td>
</tr>
<tr>
<td align="left" valign="top"><em><a href="#HDRRPGM3">PGMI0300</a></em></td>
<td align="left" valign="top">ILE program size information.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Qualified program name</strong></dt>
<dd>INPUT; CHAR(20)
<p>The first 10 characters contain the program name. The second 10 characters
contain the name of the library where the program is located.</p>
<p>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 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="HDRRPGM1">PGMI0100 Format</a></h3>
<p>The following information is returned for the PGMI0100 format. Some of the
fields returned are blank or zero if they do not apply to the type of program
specified. For detailed descriptions of the fields in the table, see <a href=
"#HDRRPGMDDE">Field Descriptions</a>.</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="left" valign="top" colspan="4">Program creation information</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">Program 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">Program library 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">Program owner</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">Program attribute</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</td>
<td align="left" valign="top">CHAR(13)</td>
<td align="left" valign="top">Creation date and time</td>
</tr>
<tr>
<td align="center" valign="top">61</td>
<td align="center" valign="top">3D</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Source file name</td>
</tr>
<tr>
<td align="center" valign="top">71</td>
<td align="center" valign="top">47</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Source file library name</td>
</tr>
<tr>
<td align="center" valign="top">81</td>
<td align="center" valign="top">51</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Source file member name</td>
</tr>
<tr>
<td align="center" valign="top">91</td>
<td align="center" valign="top">5B</td>
<td align="left" valign="top">CHAR(13)</td>
<td align="left" valign="top">Source file updated date and time</td>
</tr>
<tr>
<td align="center" valign="top">104</td>
<td align="center" valign="top">68</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Observable information</td>
</tr>
<tr>
<td align="center" valign="top">105</td>
<td align="center" valign="top">69</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">User profile option</td>
</tr>
<tr>
<td align="center" valign="top">106</td>
<td align="center" valign="top">6A</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Use adopted authority</td>
</tr>
<tr>
<td align="center" valign="top">107</td>
<td align="center" valign="top">6B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Log commands</td>
</tr>
<tr>
<td align="center" valign="top">108</td>
<td align="center" valign="top">6C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow RTVCLSRC</td>
</tr>
<tr>
<td align="center" valign="top">109</td>
<td align="center" valign="top">6D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Fix decimal data</td>
</tr>
<tr>
<td align="center" valign="top">110</td>
<td align="center" valign="top">6E</td>
<td align="left" valign="top">CHAR(50)</td>
<td align="left" valign="top">Text description</td>
</tr>
<tr>
<td align="center" valign="top">160</td>
<td align="center" valign="top">A0</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Type of program</td>
</tr>
<tr>
<td align="center" valign="top">161</td>
<td align="center" valign="top">A1</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Teraspace storage-enabled program</td>
</tr>
<tr>
<td align="center" valign="top">162</td>
<td align="center" valign="top">A2</td>
<td align="left" valign="top">CHAR(58)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top" colspan="4">Program statistics information</td>
</tr>
<tr>
<td align="center" valign="top">220</td>
<td align="center" valign="top">DC</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Minimum number of parameters</td>
</tr>
<tr>
<td align="center" valign="top">224</td>
<td align="center" valign="top">E0</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Maximum number of parameters</td>
</tr>
<tr>
<td align="center" valign="top">228</td>
<td align="center" valign="top">E4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Program size</td>
</tr>
<tr>
<td align="center" valign="top">232</td>
<td align="center" valign="top">E8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Associated space size</td>
</tr>
<tr>
<td align="center" valign="top">236</td>
<td align="center" valign="top">EC</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Static storage size</td>
</tr>
<tr>
<td align="center" valign="top">240</td>
<td align="center" valign="top">F0</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Automatic storage size</td>
</tr>
<tr>
<td align="center" valign="top">244</td>
<td align="center" valign="top">F4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of MI instructions</td>
</tr>
<tr>
<td align="center" valign="top">248</td>
<td align="center" valign="top">F8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of MI ODT entries</td>
</tr>
<tr>
<td align="center" valign="top">252</td>
<td align="center" valign="top">FC</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Program state</td>
</tr>
<tr>
<td align="center" valign="top">253</td>
<td align="center" valign="top">FD</td>
<td align="left" valign="top">CHAR(14)</td>
<td align="left" valign="top">Compiler identification</td>
</tr>
<tr>
<td align="center" valign="top">267</td>
<td align="center" valign="top">10B</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Earliest release program can run</td>
</tr>
<tr>
<td align="center" valign="top">273</td>
<td align="center" valign="top">111</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Sort sequence table name</td>
</tr>
<tr>
<td align="center" valign="top">283</td>
<td align="center" valign="top">11B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Sort sequence table library name</td>
</tr>
<tr>
<td align="center" valign="top">293</td>
<td align="center" valign="top">125</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Language identifier</td>
</tr>
<tr>
<td align="center" valign="top">303</td>
<td align="center" valign="top">12F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Program domain</td>
</tr>
<tr>
<td align="center" valign="top">304</td>
<td align="center" valign="top">130</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Conversion required</td>
</tr>
<tr>
<td align="center" valign="top">305</td>
<td align="center" valign="top">131</td>
<td align="left" valign="top">CHAR(20)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top" colspan="4">Program performance information</td>
</tr>
<tr>
<td align="center" valign="top">325</td>
<td align="center" valign="top">145</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Optimization</td>
</tr>
<tr>
<td align="center" valign="top">326</td>
<td align="center" valign="top">146</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Paging pool</td>
</tr>
<tr>
<td align="center" valign="top">327</td>
<td align="center" valign="top">147</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Update program automatic storage area (PASA)</td>
</tr>
<tr>
<td align="center" valign="top">328</td>
<td align="center" valign="top">148</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Clear program automatic storage area (PASA)</td>
</tr>
<tr>
<td align="center" valign="top">329</td>
<td align="center" valign="top">149</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Paging amount</td>
</tr>
<tr>
<td align="center" valign="top">330</td>
<td align="center" valign="top">14A</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top" colspan="4">ILE information</td>
</tr>
<tr>
<td align="center" valign="top">348</td>
<td align="center" valign="top">15C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Program entry procedure module</td>
</tr>
<tr>
<td align="center" valign="top">358</td>
<td align="center" valign="top">166</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Program entry procedure module library</td>
</tr>
<tr>
<td align="center" valign="top">368</td>
<td align="center" valign="top">170</td>
<td align="left" valign="top">CHAR(30)</td>
<td align="left" valign="top">Activation group attribute</td>
</tr>
<tr>
<td align="center" valign="top">398</td>
<td align="center" valign="top">18E</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Observable information compressed</td>
</tr>
<tr>
<td align="center" valign="top">399</td>
<td align="center" valign="top">18F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Run-time information compressed</td>
</tr>
<tr>
<td align="center" valign="top">400</td>
<td align="center" valign="top">190</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Release program created on</td>
</tr>
<tr>
<td align="center" valign="top">406</td>
<td align="center" valign="top">196</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Shared activation group</td>
</tr>
<tr>
<td align="center" valign="top">407</td>
<td align="center" valign="top">197</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow update</td>
</tr>
<tr>
<td align="center" valign="top">408</td>
<td align="center" valign="top">198</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Program CCSID</td>
</tr>
<tr>
<td align="center" valign="top">412</td>
<td align="center" valign="top">19C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of modules</td>
</tr>
<tr>
<td align="center" valign="top">416</td>
<td align="center" valign="top">1A0</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of service programs</td>
</tr>
<tr>
<td align="center" valign="top">420</td>
<td align="center" valign="top">1A4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of copyrights</td>
</tr>
<tr>
<td align="center" valign="top">424</td>
<td align="center" valign="top">1A8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of unresolved references</td>
</tr>
<tr>
<td align="center" valign="top">428</td>
<td align="center" valign="top">1AC</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Release program created for</td>
</tr>
<tr>
<td align="center" valign="top">434</td>
<td align="center" valign="top">1B2</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow static storage reinitialization</td>
</tr>
<tr>
<td align="center" valign="top">435</td>
<td align="center" valign="top">1B3</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">All creation data</td>
</tr>
<tr>
<td align="center" valign="top">436</td>
<td align="center" valign="top">1B4</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow bound *SRVPGM library name update</td>
</tr>
<tr>
<td align="center" valign="top">437</td>
<td align="center" valign="top">1B5</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Profiling data</td>
</tr>
<tr>
<td align="center" valign="top">447</td>
<td align="center" valign="top">1BF</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Teraspace storage enabled modules</td>
</tr>
<tr>
<td align="center" valign="top">448</td>
<td align="center" valign="top">1C0</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Storage model</td>
</tr>
<tr>
<td align="center" valign="top">449</td>
<td align="center" valign="top">1C1</td>
<td align="left" valign="top">CHAR(87)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRRPGM2">PGMI0200 Format</a></h3>
<p>The following information is returned for the PGMI0200 format. Some of the
fields returned are blank or zero if they do not apply to the type of program
specified. For detailed descriptions of the fields in the table, see <a href=
"#HDRRPGMDDE">Field Descriptions</a>.</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="left" valign="top" colspan="4">Program creation information</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">Program 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">Program library 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">Program owner</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">Program attribute</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</td>
<td align="left" valign="top">CHAR(13)</td>
<td align="left" valign="top">Creation date and time</td>
</tr>
<tr>
<td align="center" valign="top">61</td>
<td align="center" valign="top">3D</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Source file name</td>
</tr>
<tr>
<td align="center" valign="top">71</td>
<td align="center" valign="top">47</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Source file library name</td>
</tr>
<tr>
<td align="center" valign="top">81</td>
<td align="center" valign="top">51</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Source file member name</td>
</tr>
<tr>
<td align="center" valign="top">91</td>
<td align="center" valign="top">5B</td>
<td align="left" valign="top">CHAR(13)</td>
<td align="left" valign="top">Source file updated date and time</td>
</tr>
<tr>
<td align="center" valign="top">104</td>
<td align="center" valign="top">68</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Observable information</td>
</tr>
<tr>
<td align="center" valign="top">105</td>
<td align="center" valign="top">69</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">User profile option</td>
</tr>
<tr>
<td align="center" valign="top">106</td>
<td align="center" valign="top">6A</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Use adopted authority</td>
</tr>
<tr>
<td align="center" valign="top">107</td>
<td align="center" valign="top">6B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Log commands</td>
</tr>
<tr>
<td align="center" valign="top">108</td>
<td align="center" valign="top">6C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow RTVCLSRC</td>
</tr>
<tr>
<td align="center" valign="top">109</td>
<td align="center" valign="top">6D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Fix decimal data</td>
</tr>
<tr>
<td align="center" valign="top">110</td>
<td align="center" valign="top">6E</td>
<td align="left" valign="top">CHAR(50)</td>
<td align="left" valign="top">Text description</td>
</tr>
<tr>
<td align="center" valign="top">160</td>
<td align="center" valign="top">A0</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Type of program</td>
</tr>
<tr>
<td align="center" valign="top">161</td>
<td align="center" valign="top">A1</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Teraspace storage-enabled program</td>
</tr>
<tr>
<td align="center" valign="top">162</td>
<td align="center" valign="top">A2</td>
<td align="left" valign="top">CHAR(58)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top" colspan="4">Program statistics information</td>
</tr>
<tr>
<td align="center" valign="top">220</td>
<td align="center" valign="top">DC</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Minimum number of parameters</td>
</tr>
<tr>
<td align="center" valign="top">224</td>
<td align="center" valign="top">E0</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Maximum number of parameters</td>
</tr>
<tr>
<td align="center" valign="top">228</td>
<td align="center" valign="top">E4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Program size</td>
</tr>
<tr>
<td align="center" valign="top">232</td>
<td align="center" valign="top">E8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Associated space size</td>
</tr>
<tr>
<td align="center" valign="top">236</td>
<td align="center" valign="top">EC</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Static storage size</td>
</tr>
<tr>
<td align="center" valign="top">240</td>
<td align="center" valign="top">F0</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Automatic storage size</td>
</tr>
<tr>
<td align="center" valign="top">244</td>
<td align="center" valign="top">F4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of MI instructions</td>
</tr>
<tr>
<td align="center" valign="top">248</td>
<td align="center" valign="top">F8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of MI ODT entries</td>
</tr>
<tr>
<td align="center" valign="top">252</td>
<td align="center" valign="top">FC</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Program state</td>
</tr>
<tr>
<td align="center" valign="top">253</td>
<td align="center" valign="top">FD</td>
<td align="left" valign="top">CHAR(14)</td>
<td align="left" valign="top">Compiler identification</td>
</tr>
<tr>
<td align="center" valign="top">267</td>
<td align="center" valign="top">10B</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Earliest release program can run</td>
</tr>
<tr>
<td align="center" valign="top">273</td>
<td align="center" valign="top">111</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Sort sequence table name</td>
</tr>
<tr>
<td align="center" valign="top">283</td>
<td align="center" valign="top">11B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Sort sequence table library name</td>
</tr>
<tr>
<td align="center" valign="top">293</td>
<td align="center" valign="top">125</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Language identifier</td>
</tr>
<tr>
<td align="center" valign="top">303</td>
<td align="center" valign="top">12F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Program domain</td>
</tr>
<tr>
<td align="center" valign="top">304</td>
<td align="center" valign="top">130</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Conversion required</td>
</tr>
<tr>
<td align="center" valign="top">305</td>
<td align="center" valign="top">131</td>
<td align="left" valign="top">CHAR(20)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top" colspan="4">Program performance information</td>
</tr>
<tr>
<td align="center" valign="top">325</td>
<td align="center" valign="top">145</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Optimization</td>
</tr>
<tr>
<td align="center" valign="top">326</td>
<td align="center" valign="top">146</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Paging pool</td>
</tr>
<tr>
<td align="center" valign="top">327</td>
<td align="center" valign="top">147</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Update program automatic storage area (PASA)</td>
</tr>
<tr>
<td align="center" valign="top">328</td>
<td align="center" valign="top">148</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Clear program automatic storage area (PASA)</td>
</tr>
<tr>
<td align="center" valign="top">329</td>
<td align="center" valign="top">149</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Paging amount</td>
</tr>
<tr>
<td align="center" valign="top">330</td>
<td align="center" valign="top">14A</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top" colspan="4">Program SQL information</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">Number of SQL statements</td>
</tr>
<tr>
<td align="center" valign="top">352</td>
<td align="center" valign="top">160</td>
<td align="left" valign="top">CHAR(18)</td>
<td align="left" valign="top">Relational database</td>
</tr>
<tr>
<td align="center" valign="top">370</td>
<td align="center" valign="top">172</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Commitment control</td>
</tr>
<tr>
<td align="center" valign="top">380</td>
<td align="center" valign="top">17C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Allow copy of data</td>
</tr>
<tr>
<td align="center" valign="top">390</td>
<td align="center" valign="top">186</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Close SQL cursor</td>
</tr>
<tr>
<td align="center" valign="top">400</td>
<td align="center" valign="top">190</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Naming convention</td>
</tr>
<tr>
<td align="center" valign="top">410</td>
<td align="center" valign="top">19A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Date format</td>
</tr>
<tr>
<td align="center" valign="top">420</td>
<td align="center" valign="top">1A4</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Date separator</td>
</tr>
<tr>
<td align="center" valign="top">421</td>
<td align="center" valign="top">1A5</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Time format</td>
</tr>
<tr>
<td align="center" valign="top">431</td>
<td align="center" valign="top">1AF</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Time separator</td>
</tr>
<tr>
<td align="center" valign="top">432</td>
<td align="center" valign="top">1B0</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Delay PREPARE</td>
</tr>
<tr>
<td align="center" valign="top">442</td>
<td align="center" valign="top">1BA</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Allow blocking</td>
</tr>
<tr>
<td align="left" valign="top" colspan="4">ILE information</td>
</tr>
<tr>
<td align="center" valign="top">452</td>
<td align="center" valign="top">1C4</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Program entry procedure module</td>
</tr>
<tr>
<td align="center" valign="top">462</td>
<td align="center" valign="top">1CE</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Program entry procedure module library</td>
</tr>
<tr>
<td align="center" valign="top">472</td>
<td align="center" valign="top">1D8</td>
<td align="left" valign="top">CHAR(30)</td>
<td align="left" valign="top">Activation group attribute</td>
</tr>
<tr>
<td align="center" valign="top">502</td>
<td align="center" valign="top">1F6</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Observable information compressed</td>
</tr>
<tr>
<td align="center" valign="top">503</td>
<td align="center" valign="top">1F7</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Run-time information compressed</td>
</tr>
<tr>
<td align="center" valign="top">504</td>
<td align="center" valign="top">1F8</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Release program created on</td>
</tr>
<tr>
<td align="center" valign="top">510</td>
<td align="center" valign="top">1FE</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Shared activation group</td>
</tr>
<tr>
<td align="center" valign="top">511</td>
<td align="center" valign="top">1FF</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow update</td>
</tr>
<tr>
<td align="center" valign="top">512</td>
<td align="center" valign="top">200</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Program CCSID</td>
</tr>
<tr>
<td align="center" valign="top">516</td>
<td align="center" valign="top">204</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of modules</td>
</tr>
<tr>
<td align="center" valign="top">520</td>
<td align="center" valign="top">208</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of service programs</td>
</tr>
<tr>
<td align="center" valign="top">524</td>
<td align="center" valign="top">20C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of copyrights</td>
</tr>
<tr>
<td align="center" valign="top">528</td>
<td align="center" valign="top">210</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of unresolved references</td>
</tr>
<tr>
<td align="center" valign="top">532</td>
<td align="center" valign="top">214</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Release program created for</td>
</tr>
<tr>
<td align="center" valign="top">538</td>
<td align="center" valign="top">21A</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow static storage reinitialization</td>
</tr>
<tr>
<td align="left" valign="top" colspan="4">Continuation of program SQL
information</td>
</tr>
<tr>
<td align="center" valign="top">539</td>
<td align="center" valign="top">21B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Default collection name</td>
</tr>
<tr>
<td align="center" valign="top">549</td>
<td align="center" valign="top">225</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package name</td>
</tr>
<tr>
<td align="center" valign="top">559</td>
<td align="center" valign="top">22F</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL package library name</td>
</tr>
<tr>
<td align="center" valign="top">569</td>
<td align="center" valign="top">239</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Dynamic user profile</td>
</tr>
<tr>
<td align="center" valign="top">579</td>
<td align="center" valign="top">243</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL sort sequence table name</td>
</tr>
<tr>
<td align="center" valign="top">589</td>
<td align="center" valign="top">24D</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL sort sequence table library name</td>
</tr>
<tr>
<td align="center" valign="top">599</td>
<td align="center" valign="top">257</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">SQL language identifier</td>
</tr>
<tr>
<td align="center" valign="top">609</td>
<td align="center" valign="top">261</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Connection method</td>
</tr>
<tr>
<td align="center" valign="top">619</td>
<td align="center" valign="top">26B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">620</td>
<td align="center" valign="top">26C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">SQL path offset</td>
</tr>
<tr>
<td align="center" valign="top">624</td>
<td align="center" valign="top">270</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">SQL path length</td>
</tr>
<tr>
<td align="center" valign="top">628</td>
<td align="center" valign="top">274</td>
<td align="left" valign="top">CHAR(91)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top" colspan="4">Continuation of ILE information</td>
</tr>
<tr>
<td align="center" valign="top">719</td>
<td align="center" valign="top">2CF</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">All creation data</td>
</tr>
<tr>
<td align="center" valign="top">720</td>
<td align="center" valign="top">2D0</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow bound *SRVPGM library name update</td>
</tr>
<tr>
<td align="center" valign="top">721</td>
<td align="center" valign="top">2D1</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Profiling data</td>
</tr>
<tr>
<td align="center" valign="top">731</td>
<td align="center" valign="top">2DB</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Teraspace storage-enabled modules</td>
</tr>
<tr>
<td align="center" valign="top">732</td>
<td align="center" valign="top">2DC</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Storage model</td>
</tr>
<tr>
<td align="center" valign="top">733</td>
<td align="center" valign="top">2DD</td>
<td align="left" valign="top">CHAR(87)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top" colspan="4">Program information through
offsets</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">SQL path</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRRPGM3">PGMI0300 Format</a></h3>
<p>The following information is returned for the PGMI0300 format. This format
is valid only for ILE programs. If an OPM program is specified, no data is
returned and an error is returned. For detailed descriptions of the fields in
the table, see <a href="#HDRRPGMDDE">Field Descriptions</a>.<br>
</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="left" valign="top" colspan="4">ILE program size information</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">Program 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">Program 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">Current total program size</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">Maximum program size</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">Current number of modules</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">Maximum number of modules</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">Current number of service programs</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 number of service programs</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">Current string directory size</td>
</tr>
<tr>
<td align="center" valign="top">56</td>
<td align="center" valign="top">38</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Maximum string directory size</td>
</tr>
<tr>
<td align="center" valign="top">60</td>
<td align="center" valign="top">3C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Current copyright string size</td>
</tr>
<tr>
<td align="center" valign="top">64</td>
<td align="center" valign="top">40</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Maximum copyright string size</td>
</tr>
<tr>
<td align="center" valign="top">68</td>
<td align="center" valign="top">44</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Current number of auxiliary storage segments</td>
</tr>
<tr>
<td align="center" valign="top">72</td>
<td align="center" valign="top">48</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Maximum number of auxiliary storage segments</td>
</tr>
<tr>
<td align="center" valign="top">76</td>
<td align="center" valign="top">4C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Minimum static storage size</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Maximum static storage size</td>
</tr>
<tr>
<td align="center" valign="top">
84</td>
<td align="center" valign="top">54</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Reserved</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">Minimum static storage size - long</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">Maximum static storage size - long</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRRPGMDDE">Field Descriptions</a></h3>
<p>For more detailed information than that provided in the following field
descriptions, refer to documentation for the command that was used to create
the program. For information on non-SQL fields, this would normally be one of
the following:</p>
<ul>
<li>One of the create program (CRTxxxPGM) commands described in the
programmer's guide for the language, identified by the xxx in the command
name.</li>
<li>The Create Program (CRTPGM) command.</li>
</ul>
<p>For information on SQL fields, (this would normally be a command of the form
CRTSQLxxx) see <a href="../sqlp/rbafykickoff.htm">DB2 Universal Database for iSeries
SQL Programming Concepts</a>. The xxx in the command name identifies the base language
(RPG, COBOL, and so on) of the program.</p>
<p><strong>Activation group attribute.</strong> The activation group attribute
of this ILE program.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NEW</em></td>
<td align="left" valign="top">A new activation group with the same name as the
program name is created when this program is called. The program runs in this
activation group.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*DFTACTGRP</em></td>
<td align="left" valign="top">The program uses one of two existing activation
groups created when the process is started. One default activation group is
reserved for system-state programs. The other default activation group is
reserved for user-state programs.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*CALLER</em></td>
<td align="left" valign="top">The program runs in the activation group of the
program from which it is called.</td>
</tr>
<tr>
<td align="left" valign="top"><em>activation group name</em></td>
<td align="left" valign="top">The name of the activation group in which this
program runs. If the activation group already exists when the program is
called, the program runs in the existing activation group. If the activation
group does not exist when the program is called, a new activation group is
created and the program runs in it.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">This program is an OPM program.</td>
</tr>
</table>
<p><strong>All creation
data.</strong> Whether the ILE program has all creation data and if that data
is observable or unobservable. All observable creation data is needed to
re-create the program using the Change Program (CHGPGM) command. All creation
data (either observable or unobservable) is needed to convert the program
during restore. </p>
<p>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">*NO. Not all of the creation data is present. The
creation template of the ILE program object could be missing or at least one of
the modules in this program does not have creation data.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">*YES. The ILE program has all creation data and
all of that data is observable.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">*UNOBS. The ILE program has all creation data but
not all of that data is observable.</td>
</tr>
</table>
<p><strong>Allow blocking.</strong> Whether blocking is used to improve the
performance of certain SQL statements.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">Blocking is not used.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*READ</em></td>
<td align="left" valign="top">Blocking is used for read-only data cursors when
running COMMIT(*NONE) and there are no EXECUTE or EXECUTE IMMEDIATE
statements.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*ALLREAD</em></td>
<td align="left" valign="top">Blocking is used for all read-only cursors when
running COMMIT(*NONE) or COMMIT(*CHG).</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program does not contain SQL statements or it
is an ILE program.</td>
</tr>
</table>
<p><strong>Allow copy of data.</strong> Whether a copy of the data can be used
in the implementation of an SQL query.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NO</em></td>
<td align="left" valign="top">A copy of the data cannot be used.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*YES</em></td>
<td align="left" valign="top">A copy of the data can be used when needed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*OPTIMIZE</em></td>
<td align="left" valign="top">The system determines whether a copy of the data
is used for optimal performance.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program does not contain SQL statements or it
is an ILE program.</td>
</tr>
</table>
<p><strong>Allow RTVCLSRC.</strong> The compiler allowed you to control this
attribute through the ALWRTVSRC parameter if this program was created using the
Create CL Program (CRTCLPGM) command.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">Source for the CL program is not saved with the
program (*NO).</td>
</tr>
<tr>
<td align="left" valign="top"><em>Y</em></td>
<td align="left" valign="top">Source is saved (*YES).</td>
</tr>
</table>
<p>Source that is saved can be retrieved by using the Retrieve CL Source
(RTVCLSRC) command. This information is blank if the program is not a CL
program.</p>
<p><strong>Allow static storage reinitialization.</strong> Whether program
static storage can be reinitialized. The values are valid for ILE programs
only.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>Y</em></td>
<td align="left" valign="top">Program static storage can be reinitialized.</td>
</tr>
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">Program static storage cannot be
reinitialized.</td>
</tr>
</table>
<p><strong>Allow bound *SRVPGM library name update.</strong> Whether the Update
Program (UPDPGM) command is allowed to change the bound *SRVPGM library names
on this program. The values are valid for ILE programs only.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>Y</em></td>
<td align="left" valign="top">The UPDPGM command can specify a library name for
the SRVPGMLIB parameter.</td>
</tr>
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">The UPDPGM command cannot specify a library name
for the SRVPGMLIB parameter.</td>
</tr>
</table>
<p><strong>Allow update.</strong> Whether the Update Program (UPDPGM) command
is allowed on this program. The values are valid for ILE programs only.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>Y</em></td>
<td align="left" valign="top">The UPDPGM command can be run on this
program.</td>
</tr>
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">The UPDPGM command cannot be run on this
program.</td>
</tr>
</table>
<p><strong>Associated space size.</strong> The size (in bytes) of the
associated space used by this program.</p>
<p><strong>Automatic storage size.</strong> The size (in bytes) of the
automatic storage used by this program. This information is blank if the
program is an ILE program.</p>
<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>Clear program automatic storage area (PASA).</strong> The compiler
may have allowed you to control this attribute through the GENOPT parameter of
the command used to create the program.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">Do not clear PASA storage (*NOCLRPASA).</td>
</tr>
<tr>
<td align="left" valign="top"><em>C</em></td>
<td align="left" valign="top">Clear PASA storage (*CLRPASA).</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program is an ILE program.</td>
</tr>
</table>
<p>*NOCLRPASA reduces the time needed to call the program. However, if a
program variable is referred to before it has been set, it may contain
unpredictable data.</p>
<p>*CLRPASA increases the time needed to call the program. However, it ensures
that if a program variable is referred to before it has been set, it will
contain binary zeros instead of unpredictable data.</p>
<p><strong>Close SQL cursor.</strong> Specifies when SQL cursors are implicitly
closed and SQL-prepared statements are implicitly discarded.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*ENDPGM</em></td>
<td align="left" valign="top">When the program that contains the SQL statements
ends. This value is valid for OPM programs only.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*ENDSQL</em></td>
<td align="left" valign="top">When the last program containing SQL statements
ends. This value is valid for OPM programs only.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*ENDJOB</em></td>
<td align="left" valign="top">When the job ends. This value is valid for OPM
programs only.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*ENDMOD</em></td>
<td align="left" valign="top">When the module ends. This value is valid for ILE
programs only.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*ENDACTGRP</em></td>
<td align="left" valign="top">When the activation group is deleted.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program does not contain SQL statements or it
is an ILE program.</td>
</tr>
</table>
<p><strong>Commitment control.</strong> The level of commitment control that
was specified on the SQL precompile.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">No commitment control was specified on the SQL
precompile. Uncommitted changes in other jobs can be seen.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*CHG</em></td>
<td align="left" valign="top">Objects referred to in SQL COMMENT ON, CREATE,
DROP, GRANT, LABEL ON, and REVOKE statements are locked until the end of the
unit of work (transaction). Updated, deleted, and inserted rows (records) are
locked until the end of the unit of work. Uncommitted changes in other jobs can
be seen.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*CS</em></td>
<td align="left" valign="top">Objects referred to in SQL COMMENT ON, CREATE,
DROP, GRANT, LABEL ON, and REVOKE statements are locked until the end of the
unit of work (transaction). Updated, deleted, and inserted rows (records) are
locked until the end of the unit of work. A row (record) that is selected but
not updated is locked until the next row (record) is selected. Uncommitted
changes in other jobs cannot be seen.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*ALL</em></td>
<td align="left" valign="top">Objects referred to in SQL COMMENT ON, CREATE,
DROP, GRANT, LABEL ON, and REVOKE statements are locked until the end of the
unit of work (transaction). All rows selected, updated, deleted, and inserted
are locked until the end of the unit of work. Uncommitted changes in other jobs
cannot be seen.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program does not contain SQL statements or it
is an ILE program.</td>
</tr>
</table>
<p><strong>Compiler identification.</strong> The licensed program identifier,
version, release, and modification level of the compiler. The field has a
pppppppbVvRrMm format, where:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top">ppppppp</td>
<td align="left" valign="top">The licensed program identifier.</td>
</tr>
<tr>
<td align="left" valign="top">b</td>
<td align="left" valign="top">A blank character.</td>
</tr>
<tr>
<td align="left" valign="top">Vv</td>
<td align="left" valign="top">The character V is followed by a 1-character
version number.</td>
</tr>
<tr>
<td align="left" valign="top">Rr</td>
<td align="left" valign="top">The character R is followed by a 1-character
release level.</td>
</tr>
<tr>
<td align="left" valign="top">Mm</td>
<td align="left" valign="top">The character M is followed by a 1-character
modification level.</td>
</tr>
</table>
<p>For programs created by the Create Program (QPRCRTPG) API, this field
identifies the version of the operating system that the program was created
under.</p>
<p>The field may be blank if the program is created without going through a
compilation process or if it is an ILE program.</p>
<p><strong>Connection method.</strong> The method used for establishing remote
connections when running distributed programs.</p>
<p>Special values that can be returned are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top">*RUW</td>
<td align="left" valign="top">Only one connection to a relational database is
allowed. Consecutive CONNECT statements result in the previous connection being
disconnected before a new connection is established.</td>
</tr>
<tr>
<td align="left" valign="top">*DUW</td>
<td align="left" valign="top">Connections to several relational databases are
allowed. Consecutive CONNECT statements to additional relational databases do
not result in disconnection from previous connects. SET CONNECTION can be used
to switch between connections. Read-only connections may result.</td>
</tr>
<tr>
<td align="left" valign="top">Blank</td>
<td align="left" valign="top">The program does not contain SQL statements or is
an ILE program.</td>
</tr>
</table>
<p><strong>Conversion required.</strong> Indicates whether the program has been
converted to reduced instruction-set computer (RISC) format or if conversion is
still required.</p>
<p>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">Conversion is not required. The program has
already been converted.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Conversion is required.</td>
</tr>
</table>
<p><strong>Creation date and time.</strong> The date and time the program was
created. The creation date and time field is in the CYYMMDDHHMMSS format as
follows:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top">C</td>
<td align="left" valign="top">Century, where 0 indicates years 19<em>xx</em>
and 1 indicates years 20<em>xx</em>.</td>
</tr>
<tr>
<td align="left" valign="top">YY</td>
<td align="left" valign="top">Year</td>
</tr>
<tr>
<td align="left" valign="top">MM</td>
<td align="left" valign="top">Month</td>
</tr>
<tr>
<td align="left" valign="top">DD</td>
<td align="left" valign="top">Day</td>
</tr>
<tr>
<td align="left" valign="top">HH</td>
<td align="left" valign="top">Hour</td>
</tr>
<tr>
<td align="left" valign="top">MM</td>
<td align="left" valign="top">Minute</td>
</tr>
<tr>
<td align="left" valign="top">SS</td>
<td align="left" valign="top">Second</td>
</tr>
</table>
<p><strong>Current copyright string size.</strong> The ILE program's copyright
string size.</p>
<p><strong>Current number of auxiliary storage segments.</strong> The number of
auxiliary storage segments in this ILE program.</p>
<p><strong>Current number of modules.</strong> The number of modules bound into
this ILE program.</p>
<p><strong>Current number of service programs.</strong> The number of service
programs bound to this ILE program.</p>
<p><strong>Current string directory size.</strong> The ILE program's string
directory size.</p>
<p><strong>Current total program size.</strong> The total size of the ILE
program, in kilobytes.</p>
<p><strong>Date format.</strong> The format used when accessing date-result
columns through SQL. All output date fields are returned in this format. For
input date strings, the value you specify is used to determine whether the date
is a valid format. This information is blank if the program does not contain
SQL statements or if it is an ILE program.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top">*USA</td>
<td align="left" valign="top">USA format (mm/dd/yyyy).</td>
</tr>
<tr>
<td align="left" valign="top">*ISO</td>
<td align="left" valign="top">International Standards Organization format
(yyyy-mm-dd).</td>
</tr>
<tr>
<td align="left" valign="top">*EUR</td>
<td align="left" valign="top">European format (dd.mm.yyyy).</td>
</tr>
<tr>
<td align="left" valign="top">*JIS</td>
<td align="left" valign="top">Japanese Industrial Standard Christian Era
(yyyy-mm-dd).</td>
</tr>
<tr>
<td align="left" valign="top">*MDY</td>
<td align="left" valign="top">Month/day/year format (mm/dd/yy).</td>
</tr>
<tr>
<td align="left" valign="top">*DMY</td>
<td align="left" valign="top">Day/month/year format (dd/mm/yy).</td>
</tr>
<tr>
<td align="left" valign="top">*YMD</td>
<td align="left" valign="top">Year/month/day format (yy/mm/dd).</td>
</tr>
<tr>
<td align="left" valign="top">*JUL</td>
<td align="left" valign="top">Julian format (a numeric value from 1 to
365).</td>
</tr>
<tr>
<td align="left" valign="top">blank</td>
<td align="left" valign="top">The program does not contain SQL statements, or
it is an ILE program.</td>
</tr>
</table>
<p><strong>Date separator.</strong> The separator used when accessing
date-result columns. This information is blank if the program does not contain
SQL statements or if it is an ILE program. However, the number of SQL
statements field should be checked to determine if the program contains SQL
statements. This is because a blank may be specified as a separator value.</p>
<p><strong>Default collection name.</strong> The collection name used for the
unqualified names of tables, views, indexes, and SQL packages.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">There is no default collection name.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program does not contain SQL statements or it
is an ILE program.</td>
</tr>
</table>
<p><strong>Delay PREPARE.</strong> Whether SQL prepare processing can be
delayed until the statement is actually used.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*YES</em></td>
<td align="left" valign="top">Prepare processing can be delayed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*NO</em></td>
<td align="left" valign="top">Prepare processing cannot be delayed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program does not contain SQL statements or it
is an ILE program.</td>
</tr>
</table>
<p><strong>Dynamic user profile.</strong> The user profile used for dynamic SQL
statements.</p>
<p>The following special values can be returned:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*USER</em></td>
<td align="left" valign="top">Local dynamic SQL statements are run under the
profile of the programs user. Distributed dynamic SQL statements are run under
the profile of the SQL package's user.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*OWNER</em></td>
<td align="left" valign="top">Local dynamic SQL statements are run under the
profile of the programs owner. Distributed dynamic SQL statements are run under
the profile of the SQL package's owner.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program does not contain SQL statements or it
is an ILE program.</td>
</tr>
</table>
<p><strong>Earliest release program can run.</strong> The version, release, and
modification level of the earliest release the program is allowed to run on.
The compiler may have allowed you to control this through the TGTRLS parameter
of the command used to create the program. The field has a VvRrMm format,
where:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>Vv</em></td>
<td align="left" valign="top">The character V is followed by a 1-character
version number.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Rr</em></td>
<td align="left" valign="top">The character R is followed by a 1-character
release level.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Mm</em></td>
<td align="left" valign="top">The character M is followed by a 1-character
modification level.</td>
</tr>
</table>
<p><strong>Fix decimal data.</strong> Whether decimal data that is not valid is
corrected or an error is signaled. If the System/36 environment is loaded on
your system, you can control this attribute through the fix decimal data
(FIXDECDTA) parameter of the CRTS36CBL or CRTS36RPG command.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">An error is signaled to the program without
correcting the data that is not valid (*NO).</td>
</tr>
<tr>
<td align="left" valign="top"><em>Y</em></td>
<td align="left" valign="top">Decimal data that is not valid is corrected
(*YES).</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program is an ILE program.</td>
</tr>
</table>
<p><strong>Language identifier.</strong> Returns the 3-character language
identifier used when the program was compiled. This information is blank if the
module does not contain any language identification information.</p>
<p>The following special value can also be returned:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*JOBRUN</em></td>
<td align="left" valign="top">The language identifier associated with the job
at the time the program is run.</td>
</tr>
</table>
<p><strong>Log commands.</strong> The value specified for the LOG parameter of
the CRTCLPGM command. This field is meaningful only if the program is a CL
program. The possible values are N (*NO), Y (*YES), and J (*JOB). This
information is blank if the program is not a CL program.</p>
<p><strong>Maximum copyright string size.</strong> The maximum size of the
copyright string in an ILE program.</p>
<p><strong>Maximum number of auxiliary storage segments.</strong> The maximum
number of auxiliary storage segments an ILE program can have.</p>
<p><strong>Maximum number of modules.</strong> The maximum number of modules
that can be bound into an ILE program.</p>
<p><strong>Maximum number of parameters.</strong> The maximum number of
parameters that may be received by the program when it is called. A value of -1
is returned if the information is not available.</p>
<p><strong>Maximum number of service programs.</strong> The maximum number of
service programs that can be bound to an ILE program.</p>
<p><strong>Maximum program size.</strong> The maximum size that an ILE program
can be, in kilobytes.</p>
<p><strong>Maximum static storage size.</strong> The maximum static storage
size (in bytes) that this program may need in order to run. A value of 4294967295 will be given if 4
gigabytes (4294967296) or greater is needed. In this case, the <em>maximum
static storage size - long</em> field should be used instead.</p>
<p><strong>Maximum static storage size - long.</strong> The maximum static
storage size in bytes that this program may need in order to run.</p>
<p><strong>Maximum string directory size.</strong> The maximum size that the
string directory can be in an ILE program.</p>
<p><strong>Minimum number of parameters.</strong> The minimum number of
parameters that is to be received by the program when it is called. A value of
-1 is returned if the information is not available.</p>
<p><strong>Minimum static storage size.</strong> The minimum static storage
size in bytes that this program needs in order to run. A value of 4294967295 will be given if 4 gigabytes
(4294967296) or greater is needed. In this case, the <em>minimum static storage
size - long</em> field should be used instead.</p>
<p><strong>Minimum static storage size - long.</strong> The minimum static
storage size in bytes that this program needs in order to run.</p>
<p><strong>Naming convention.</strong> The convention used for naming objects
in SQL statements.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*SQL</em></td>
<td align="left" valign="top">The SQL naming convention is used.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*SYS</em></td>
<td align="left" valign="top">The system naming convention is used.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The module does not contain SQL statements or it
is an ILE program.</td>
</tr>
</table>
<p><strong>Number of copyrights.</strong> The number of copyrights in this ILE
program. This field is zero if the program is an OPM program. Do not assume
that a value of zero indicates that the program is an OPM program. ILE programs
may not have any copyrights, so this value could be zero for an ILE program.
Check the type of program field to determine whether the program is an OPM
program or an ILE program.</p>
<p><strong>Number of MI instructions.</strong> The number of machine interface
(MI) instructions used by this program. A value of -1 is returned if the
program is not observable. This information is zero if the program is an ILE
program.</p>
<p><strong>Number of MI ODT entries.</strong> The number of ODT (object
definition table) entries for the program. This is the number of program
objects declared by the compiler. Program objects include variables, constants,
labels, operand lists, and exception descriptions. Typically, one or more ODT
entries are used for each variable, constant, and label in your program. Some
are used by the compiler for internal purposes. The number of internal ODT
entries varies depending on the size and complexity of the program. There is a
limit of 32&nbsp;767 ODT entries in a program. A value of -1 is returned if the
program is not observable. This information is zero if the program is an ILE
program.</p>
<p><strong>Number of modules.</strong> The number of modules bound into this
program. This information is zero if the program is an OPM program.</p>
<p><strong>Number of service programs.</strong> The number of service programs
bound to this program. This information is zero if the program is an OPM
program. Do not assume that a value of zero indicates that the program is an
OPM program. ILE programs may not have any service programs bound to them, so
this value could be zero for an ILE program. Check the type of program field to
determine whether the program is an OPM program or an ILE program.</p>
<p><strong>Number of SQL statements.</strong> The number of SQL statements
contained in the program. This value is zero if the program does not contain
SQL statements or if it is an ILE program.</p>
<p><strong>Number of unresolved references.</strong> The number of symbols that
could not be resolved at Create Program (CRTPGM) command time. This information
is always zero if the program is an OPM program. If this is an ILE program, and
if all references were resolved at the time the program was created, this value
for this field could be zero.</p>
<p><strong>Observable information.</strong> Whether the OPM program contains creation data and if that
data is observable or unobservable. All observable creation data is needed to
re-create the program using CHGPGM. All creation data (either observable or
unobservable) is needed to convert the program during restore.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>A</em></td>
<td align="left" valign="top">*ALL. The program has all creation data and that
data is observable.</td>
</tr>
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">*NONE. The program does not have all creation
data.</td>
</tr>
<tr>
<td align="left" valign="top"><em>U</em></td>
<td align="left" valign="top">*UNOBS. The program has all creation data but not
all of that data is observable.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program is an ILE program.</td>
</tr>
</table>
<p>The observable information for most programs may be removed by using the
remove observability (RMVOBS) parameter on the Change Program (CHGPGM)
command.</p>
<p><strong>Observable information compressed.</strong> Whether the observable
information associated with the program is compressed.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>Y</em></td>
<td align="left" valign="top">The observable information is compressed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">The observable information is not
compressed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program is an OPM program.</td>
</tr>
</table>
<p><strong>Optimization.</strong> Indicates what was specified on the OPTIMIZE
parameter when the program was created or changed.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">*NOOPTIMIZE was specified.</td>
</tr>
<tr>
<td align="left" valign="top"><em>O</em></td>
<td align="left" valign="top">*OPTIMIZE was specified.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program is an ILE program.</td>
</tr>
</table>
<p><strong>Paging amount.</strong> The compiler may have allowed you to control
this attribute through the GENOPT parameter of the command used to create the
program.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">Page the program one page at a time
(*NOBLOCK).</td>
</tr>
<tr>
<td align="left" valign="top"><em>B</em></td>
<td align="left" valign="top">Page the program in eight-page blocks
(*BLOCK).</td>
</tr>
</table>
<p>*BLOCK gives better performance in most situations. It is likely that more
than one page in the block is referred to before being replaced by some other
paging occurring in the storage pool.</p>
<p>*NOBLOCK can give better performance if the other pages that would have been
brought in as a block are unlikely to be referred to before being replaced by
some other paging.</p>
<p><strong>Paging pool.</strong> The paging pool used for the program object.
The compiler may have allowed you to control this attribute through the GENOPT
parameter of the command used to create the program.</p>
<p>The values returned are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>U</em></td>
<td align="left" valign="top">Use the user pool (*USER).</td>
</tr>
<tr>
<td align="left" valign="top"><em>B</em></td>
<td align="left" valign="top">Use the base pool (*BASE).</td>
</tr>
<tr>
<td align="left" valign="top"><em>M</em></td>
<td align="left" valign="top">Use the machine pool (*MACHINE).</td>
</tr>
</table>
<p>*USER is used by most system programs and all user programs, unless
GENOPT(*MACHINE) is specified.</p>
<p>*BASE is used by certain system programs to avoid disturbing the user pool
when they need to be paged in. These programs are not used frequently enough to
belong in the machine pool. This value will only appear for OPM programs.</p>
<p>*MACHINE is used by a small number of system programs that are so highly
used that their pages should remain almost constantly in main storage. The
machine pool is intended to be a stable, low paging pool. If user programs page
in the machine pool, there may be contention for main storage between system
and user programs. This may adversely affect system performance and response
times. To prevent paging contention, increase the QMCHPOOL system value with
the Change System Value (CHGSYSVAL) command.</p>
<p><strong>Profiling data.</strong> Specifies the profiling data attribute for
this ILE program.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top">*NOCOL</td>
<td align="left" valign="top">The collection of profiling data is not enabled
and profiling data is not applied.</td>
</tr>
<tr>
<td align="left" valign="top">*COL</td>
<td align="left" valign="top">The collection of profiling data is enabled for
at least one module bound into this ILE program. Any applied profiling data has
been removed. The QBNLPGMI API, format PGML0100, can be used to determine if a
module bound into this ILE program is enabled to collect profiling data.</td>
</tr>
<tr>
<td align="left" valign="top">*APYBLKORD</td>
<td align="left" valign="top">Block order profiling data has been applied to at
least one module bound into this ILE program. The QBNLPGMI API, format
PGML0100, can be used to determine if a module bound into this ILE program has
block order profiling data applied.</td>
</tr>
<tr>
<td align="left" valign="top">*APYPRCORD</td>
<td align="left" valign="top">Procedure order profiling data has been applied
to this ILE program.</td>
</tr>
<tr>
<td align="left" valign="top">*APYALL</td>
<td align="left" valign="top">Block order and procedure order profiling data
has been applied to this ILE program.</td>
</tr>
<tr>
<td align="left" valign="top">Blank</td>
<td align="left" valign="top">This program is an OPM program.</td>
</tr>
</table>
<p><strong>Program attribute.</strong> The language the program is written in.
(For example, the value is CLP for a CL program, and the value is RPG for an
RPG program). This field can be blank. (For example, the program was created by
the Create Program (QPRCRTPG) API or the program is created by a compilation
process internal to IBM).</p>
<p><strong>Program CCSID.</strong> The coded character set identifier (CCSID)
for this ILE program. This is 65535 for ILE programs. This information is zero
if the program is an OPM program.</p>
<p><strong>Program domain.</strong> The domain of the program.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>S</em></td>
<td align="left" valign="top">The program can be called by system-state
programs.</td>
</tr>
<tr>
<td align="left" valign="top"><em>U</em></td>
<td align="left" valign="top">The program can be called by user- or
system-state programs.</td>
</tr>
</table>
<p><strong>Program entry procedure module.</strong> The module name that
contains the program entry procedure for this program. This information is
blank if the program is an OPM program.</p>
<p><strong>Program entry procedure module library.</strong> The library name
that contained the module that contained the program entry procedure for this
program when the bind was done. This information is blank if the program is an
OPM program.</p>
<p><strong>Program library name.</strong> The name of the library containing
the program.</p>
<p><strong>Program name.</strong> The name of the program.</p>
<p><strong>Program owner.</strong> The name of the program owner's user
profile.</p>
<p><strong>Program size.</strong> The size (in bytes) of this program.</p>
<p><strong>Program state.</strong> The state of the program.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>I</em></td>
<td align="left" valign="top">The program runs under (inherits) the same state
as its caller.</td>
</tr>
<tr>
<td align="left" valign="top"><em>S</em></td>
<td align="left" valign="top">The program runs as a system-state program.</td>
</tr>
<tr>
<td align="left" valign="top"><em>U</em></td>
<td align="left" valign="top">The program runs as a user-state program.</td>
</tr>
</table>
<p><strong>Relational database.</strong> The default relational database that
was specified on the SQL precompile. A nonblank value other than *LOCAL
specifies the name of the relational database to be resolved through the
relational database directory.</p>
<p>The following special values can be returned:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*LOCAL</em></td>
<td align="left" valign="top">The program can only access data on the local
system.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program does not contain SQL statements or it
is an ILE program.</td>
</tr>
</table>
<p><strong>Release program created for.</strong> This is the release specified
on the target release (TGTRLS) parameter of the Create Program (CRTPGM)
command. The value specified for the TGTRLS parameter can affect the earliest
release value on which the program can run.</p>
<p><strong>Release program created on.</strong> The version, release, and
modification level of the operating system on which the program was
created.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<p><strong>Run-time information compressed.</strong> Whether the run-time
information associated with the program is compressed.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>Y</em></td>
<td align="left" valign="top">The run-time information is compressed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">The run-time information is not compressed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program is an OPM program.</td>
</tr>
</table>
<p><strong>Shared activation group.</strong> Whether the program runs in a
shared activation group.</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>Y</em></td>
<td align="left" valign="top">The activation group is shared.</td>
</tr>
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">The activation group is not shared.</td>
</tr>
</table>
<p><strong>Sort sequence table library name.</strong> The name of the library
the sort sequence table is in.</p>
<p>This information is blank if the program does not contain any sort sequence
information or a special value was returned for the sort sequence table
name.</p>
<p>The following special values can be returned:</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 library list</td>
</tr>
</table>
<p><strong>Sort sequence table name.</strong> The name of the sort sequence
table used when the program was compiled. This does not apply to SQL statements
in the program.</p>
<p>The following special values can be returned:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top">*HEX</td>
<td align="left" valign="top">No sort sequence is used.</td>
</tr>
<tr>
<td align="left" valign="top">*JOBRUN</td>
<td align="left" valign="top">The sort sequence value that is associated with
the job at the time the program runs.</td>
</tr>
<tr>
<td align="left" valign="top">*LANGIDSHR</td>
<td align="left" valign="top">The shared sort sequence for the language
identifier is used.</td>
</tr>
<tr>
<td align="left" valign="top">*LANGIDUNQ</td>
<td align="left" valign="top">The unique sort sequence for the language
identifier is used.</td>
</tr>
<tr>
<td align="left" valign="top">Blank</td>
<td align="left" valign="top">The program does not contain SQL statements or it
is an ILE program.</td>
</tr>
<tr>
<td align="left" valign="top"></td>
<td align="left" valign="top"><strong>Note:</strong> This sort sequence table
does not apply to SQL statements.</td>
</tr>
</table>
<p><strong>Source file library name.</strong> The name of the library that
contains the source file used to create the program. The field is blank if a
source file was not used to create the program or if it is an ILE program.</p>
<p><strong>Source file member name.</strong> The name of the member in the
source file. The field is blank if a source file was not used to create the
program or if it is an ILE program.</p>
<p><strong>Source file name.</strong> The name of the source file used to
create the program. The field is blank if a source file was not used to create
the program or if it is an ILE program.</p>
<p><strong>Source file updated date and time.</strong> The date and time the
member in the source file was last updated. The field is in the same format as
the creation time and date. The field is blank if a source file was not used to
create the program or if it is an ILE program.</p>
<p><strong>SQL package library name.</strong> The name of the library the SQL
package is in.</p>
<p><strong>SQL package name.</strong> The name of the SQL package created on
the relational database specified on the RDB parameter of the command that
created this program.</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">This is not a distributed program.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The program does not contain SQL statements or it
is an ILE program.</td>
</tr>
</table>
<p><strong>SQL path.</strong> The list of libraries used during resolution of
functions, procedures, and data types within SQL statements. The list is in the
form of repeating library names, each surrounded by double quotes and separated
by commas.</p>
<p><strong>SQL path length.</strong> The length, in bytes, of the SQL path.</p>
<p><strong>SQL path offset.</strong> The offset, in bytes, from the beginning
of this format definition to the beginning of the SQL path.</p>
<p><strong>SQL sort language identifier.</strong> The 3-character language
identifier used when the program was compiled. This information is blank if the
program does not contain any language identification information.</p>
<p>The following possible special value can be returned:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*JOBRUN</em></td>
<td align="left" valign="top">The language identifier is the LANGID associated
with the job at the time the program is run.</td>
</tr>
</table>
<p><strong>SQL sort sequence table name.</strong> The SQL sort sequence table
returns the SQL sort sequence table name used when the program was compiled.
This information is blank if the program does not contain any SQL sort sequence
information or if this is an ILE program.</p>
<p>The following special values can be returned:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top">*HEX</td>
<td align="left" valign="top">No SQL sort sequence is used for the SQL
statements.</td>
</tr>
<tr>
<td align="left" valign="top">*JOBRUN</td>
<td align="left" valign="top">The SQL sort sequence is the SRTSEQ value
associated with the job at the time the SQL statements within the program are
run.</td>
</tr>
<tr>
<td align="left" valign="top">*LANGIDSHR</td>
<td align="left" valign="top">The shared SQL sort sequence for the language
identifier (LANGID) is used for the SQL statements.</td>
</tr>
<tr>
<td align="left" valign="top">*LANGIDUNQ</td>
<td align="left" valign="top">The unique SQL sort sequence for the language
identifier (LANGID) is used for the SQL statements.</td>
</tr>
</table>
<p><strong>SQL sort sequence table library name.</strong> The name of the
library the SQL sort sequence table is in. This information is blank if the
program does not contain any SQL sort sequence information or a special value
was returned for the SQL sort sequence table name.</p>
<p>The following special values can be returned:</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 library list</td>
</tr>
</table>
<p><strong>Static storage size.</strong> For OPM programs this is the size (in
bytes) of the static storage used by the program. For ILE programs this is the
maximum amount of static storage (in bytes) that may be needed to run the
program. A value of 4294967295
will be given if 4 gigabytes (4294967296) or greater is needed. In this case,
the <em>maximum static storage size - long</em> field should be used instead.
The <em>maximum static storage size - long</em> field is available from the
PGMI0300 format. OPM programs will always have less than 4 gigabytes of static
storage. </p>
<p><strong>Storage model.</strong> Where the automatic and static storage for
this program is allocated at run time.</p>
<p>The following values can be returned:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top" nowrap>0 *SNGLVL</td>
<td align="left" valign="top">Automatic and static storage are allocated from
single-level storage.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap>1 *TERASPACE</td>
<td align="left" valign="top">Automatic and static storage are allocated from
teraspace.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap>2 *INHERIT</td>
<td align="left" valign="top">Automatic and static storage are allocated from
either single-level storage or teraspace, depending on the activation.</td>
</tr>
</table>
<p><strong>Teraspace storage enabled modules.</strong> The teraspace storage
capability of the modules bound to this program.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top" nowrap>'00'X</td>
<td align="left" valign="top">No modules bound to this program are teraspace
storage enabled.</td>
</tr>
<tr>
<td align="left" valign="top">'80'X</td>
<td align="left" valign="top">One or more modules bound to this program are
teraspace storage enabled. The *PEP module, however, is not teraspace storage
enabled.</td>
</tr>
<tr>
<td align="left" valign="top">'C0'X</td>
<td align="left" valign="top">The *PEP module is teraspace storage enabled, and
there may be more modules bound to this program that are teraspace storage
enabled.</td>
</tr>
<tr>
<td align="left" valign="top">'E0'X</td>
<td align="left" valign="top">All modules bound to this program are teraspace
storage enabled.</td>
</tr>
</table>
<p><strong>Teraspace storage enabled program.</strong> The teraspace storage
capability of an OPM program. A program must be teraspace storage enabled to
access teraspace storage.</p>
<p>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">This program is not teraspace storage
enabled.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">This program is teraspace storage enabled.</td>
</tr>
</table>
<p><strong>Text description.</strong> The user text, if any, used to briefly
describe the program and its function.</p>
<p><strong>Time format.</strong> The format used when accessing time-result
columns through SQL. All output time fields are returned in this format.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top">*USA</td>
<td align="left" valign="top">USA format (hh:mm a.m. or p.m.).</td>
</tr>
<tr>
<td align="left" valign="top">*ISO</td>
<td align="left" valign="top">International Standards Organization format
(hh.mm.ss).</td>
</tr>
<tr>
<td align="left" valign="top">*EUR</td>
<td align="left" valign="top">European format (hh.mm.ss).</td>
</tr>
<tr>
<td align="left" valign="top">*JIS</td>
<td align="left" valign="top">Japanese Industrial Standard Christian Era
(hh.mm.ss).</td>
</tr>
<tr>
<td align="left" valign="top">*HMS</td>
<td align="left" valign="top">Hours/minutes/seconds format (hh:mm:ss).</td>
</tr>
<tr>
<td align="left" valign="top">Blank</td>
<td align="left" valign="top">The program does not contain SQL statements or it
is an ILE program.</td>
</tr>
</table>
<p><strong>Time separator.</strong> The separator used when accessing
time-result columns. This information is blank if the program does not contain
SQL statements or if it is an ILE program. However, the number of SQL
statements is checked to determine if the program contains SQL statements. This
is because a blank may be specified as a separator value.</p>
<p><strong>Type of program.</strong> Whether the program is an ILE program or
an OPM program.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">OPM program</td>
</tr>
<tr>
<td align="left" valign="top"><em>B</em></td>
<td align="left" valign="top">ILE program</td>
</tr>
</table>
<p><strong>Update program automatic storage area (PASA).</strong> The compiler
may have allowed you to control this attribute through the GENOPT parameter of
the command used to create the program. This information is blank if the
program is an ILE program.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">Do not update internal PASA stack information
(*NOUPDPASA).</td>
</tr>
<tr>
<td align="left" valign="top"><em>U</em></td>
<td align="left" valign="top">Update internal PASA stack information
(*UPDPASA).</td>
</tr>
</table>
<p>*NOUPDPASA reduces the time needed to call the program.</p>
<p>*UPDPASA increases the time needed to call the program but is used by some
system programs that are dependent on updates of internal PASA stack
information.</p>
<p><strong>Use adopted authority.</strong> The value specified for the
USEADPAUT option on the command used to change the program.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>Y</em></td>
<td align="left" valign="top">Uses program adopted authority from previous call
levels when this program is running (*YES).</td>
</tr>
<tr>
<td align="left" valign="top"><em>N</em></td>
<td align="left" valign="top">Does not use program adopted authority from
previous call levels when this program is running (*NO).</td>
</tr>
</table>
<p><strong>User profile option.</strong> The value specified for the USRPRF
option on the command used to create the program.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>U</em></td>
<td align="left" valign="top">The program runs under the current user's user
profile (*USER).</td>
</tr>
<tr>
<td align="left" valign="top"><em>O</em></td>
<td align="left" valign="top">The program runs under both the current user's
and the owner's user profiles (*OWNER).</td>
</tr>
</table>
<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">CPF2150 E</td>
<td align="left" valign="top">Object information function failed.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2151 E</td>
<td align="left" valign="top">Operation failed for &amp;2 in &amp;1 type
*&amp;3.</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">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">CPF5CF5 E</td>
<td align="left" valign="top">&amp;1 in library &amp;2 not bound program.</td>
</tr>
<tr>
<td align="left" valign="top">CPF8122 E</td>
<td align="left" valign="top">&amp;8 damage on library &amp;4.</td>
</tr>
<tr>
<td align="left" valign="top">CPF8123 E</td>
<td align="left" valign="top">Damage on object information for library
&amp;4.</td>
</tr>
<tr>
<td align="left" valign="top">CPF8129 E</td>
<td align="left" valign="top">Program &amp;4 in &amp;9 damaged.</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">CPF9806 E</td>
<td align="left" valign="top">Cannot perform function for object &amp;2 in
library &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9807 E</td>
<td align="left" valign="top">One or more libraries in library list
deleted.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9808 E</td>
<td align="left" valign="top">Cannot allocate one or more libraries on library
list.</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">CPF9811 E</td>
<td align="left" valign="top">Program &amp;1 in library &amp;2 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">CPF9821 E</td>
<td align="left" valign="top">Not authorized to program &amp;1 in library
&amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9830 E</td>
<td align="left" valign="top">Cannot assign 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>
</table>
<br>
<hr>
API introduced: V2R2
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"pgm1.htm">Program and CL Command APIs</a> | <a href="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</center>
</body>
</html>