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

1595 lines
45 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Report Software Error (QpdReportSoftwareError) 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. -->
<!-- QPDRPTSE SCRIPT A converted by B2H R4.1 (346) (CMS) by KENTALA -->
<!-- at RCHVMW2 on 2 Oct 1998 at 13:46:21 -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!--File Edited April 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 language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<h2>Report Software Error (QpdReportSoftwareError) API</h2>
<div class="box" style="width: 80%;">
<br>
&nbsp;&nbsp;Required Parameter Group:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">Problem description records</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Array of Pointers</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Number of problem description records</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">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;Service Program: QPDSRVPG<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Conditional; see <a href="#usage_notes">Usage Notes</a>.<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>Use the Report Software Error (QpdReportSoftwareError) API whenever your ILE
program detects a software problem that must be fixed.</p>
<p>The API logs the problem in the system problem log, which lets you track the
problem, as well as send it to a service provider. See the System Manager for
iSeries product for more information about service providers and service
requesters.</p>
<p>The API also lets you specify the symptoms that identify the problem. The
operating system and the service provider use those symptoms to find a PTF that
may fix the problem.</p>
<p>The API also lets you specify data to dump to spooled files. If neither the
operating system nor the service provider can find a PTF, you may be able to
find the cause of the problem using the data the program dumped.</p>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>Object Authority</em></dt>
<dd>
<p>*USE for objects in libraries</p>
<p>*R for objects in directories</p>
</dd>
<dt><em>Object Library Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Object Directory Authority</em></dt>
<dd>*RX</dd>
<dt><em>Locks</em></dt>
<dd>None</dd>
</dl>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Problem description records</strong></dt>
<dd>INPUT; ARRAY of POINTERS
<p>This is a list of pointers to problem symptom and data description records.
See <a href="#HDRGENFMTS">Problem Description Records Format</a> for the format
of the records.</p>
</dd>
<dt><strong>Number of Problem description records</strong></dt>
<dd>INPUT; BINARY(4)
<p>The number of problem description records your program is passing to the
API.</p>
</dd>
<dt><strong>Error code</strong></dt>
<dd>I/O; CHAR(*)
<p>The structure in which to return error information. For the format of the
structure, see <a href="../apiref/error.htm#hdrerrcod">Error Code Parameter</a>. If this
parameter is omitted, diagnostic and escape messages are issued to the
application.</p>
</dd>
</dl>
<br>
<h3><a name="HDRGENFMTS">Problem Description Records Format</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Key</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Problem record description</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Key</strong> Identifies a particular problem symptom or data. See <a
href="#HDRPDKEYS">Keys</a> for a list of the possible keys.</p>
<p><strong>Problem record description</strong> This describes a particular
symptom of the problem, or specifies data to collect. See <a href=
"#HDRSPCFMT1">Formats of Specific Problem Description Records</a> for the
various problem record description formats.</p>
<br>
<h3><a name="HDRPDKEYS">Keys</a></h3>
<p>The following table lists the valid keys of the key field area of the
software problem record.</p>
<table border width="80%">
<!-- cols="15 85" -->
<tr>
<th align="center" valign="top">Key</th>
<th align="left" valign="top">Description</th>
</tr>
<tr>
<td align="center" valign="top">100</td>
<td align="left" valign="top"><a href="#Header_8">Call stack
counter</a></td>
</tr>
<tr>
<td align="center" valign="top">101</td>
<td align="left" valign="top"><a href="#Header_9">Suspected
program</a></td>
</tr>
<tr>
<td align="center" valign="top">102</td>
<td align="left" valign="top"><a href="#Header_10">Suspected
service program</a></td>
</tr>
<tr>
<td align="center" valign="top">103</td>
<td align="left" valign="top"><a href="#Header_11">Suspected
module</a></td>
</tr>
<tr>
<td align="center" valign="top">104</td>
<td align="left" valign="top"><a href="#Header_12">Suspected
procedure</a></td>
</tr>
<tr>
<td align="center" valign="top">105</td>
<td align="left" valign="top"><a href="#Header_13">Detecting
program</a></td>
</tr>
<tr>
<td align="center" valign="top">106</td>
<td align="left" valign="top"><a href="#Header_14">Detecting
service program</a></td>
</tr>
<tr>
<td align="center" valign="top">200</td>
<td align="left" valign="top"><a href="#Header_15">
Symptom</a></td>
</tr>
<tr>
<td align="center" valign="top">201</td>
<td align="left" valign="top"><a href="#Header_16">Instruction
number</a></td>
</tr>
<tr>
<td align="center" valign="top">300</td>
<td align="left" valign="top"><a href="#Header_17">System
object</a></td>
</tr>
<tr>
<td align="center" valign="top">301</td>
<td align="left" valign="top"><a href="#Header_18">Data</a></td>
</tr>
<tr>
<td align="center" valign="top">302</td>
<td align="left" valign="top"><a href="#Header_19">Named system
object</a></td>
</tr>
<tr>
<td align="center" valign="top">303</td>
<td align="left" valign="top"><a href="#Header_20">Spooled
file</a></td>
</tr>
<tr>
<td align="center" valign="top">304</td>
<td align="left" valign="top"><a href="#Header_21">Named
integrated file system object</a></td>
</tr>
<tr>
<td align="center" valign="top">400</td>
<td align="left" valign="top"><a href="#Header_22">Service
identifier</a></td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRSPCFMT1">Formats of Specific Problem Description
Records</a></h3>
<h4><a name="Header_8">Key 100-Call Stack Counter</a></h4>
<p>This key specifies which invocation on the program stack is suspected of
causing the error being reported. If this key is used, you must not use keys
101, 102, 103, or 104. If neither key 100, 101, nor 102 are specified, the API
assumes that the program or service program that called the API is the one that
has the problem.</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%">Key</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">Call stack counter</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_9">Key 101-Suspected Program</a></h4>
<p>This key is used to identify which program is suspected of causing the error
being reported. If this key is used, you must not use key 100 or 102, but
should use keys 103 and 104 if applicable. If neither key 100, 101, nor 102 are
specified, the API assumes that the program or service program that called the
API is the one that has the problem.</p>
<p><strong>Note:</strong> The program must exist on the system at the time the
API is called.</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%">Key</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">Length of program name</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of library name</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Program name</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Library name</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_10">Key 102-Suspected Service Program</a></h4>
<p>This key is used to identify which service program is suspected of causing
the error being reported. If this key is used, you must not use key 100 or 101,
but should use keys 103 and 104 if applicable. If neither key 100, 101, nor 102
are specified, the API assumes that the program or service program that called
the API is the one that has the problem.</p>
<p><strong>Note:</strong> The service program must exist on the system at the
time the API is called.</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%">Key</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">Length of service program name</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of library name</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Service program name</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Library name</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_11">Key 103-Suspected Module</a></h4>
<p>This key is used to identify which module is suspected of causing the error
being reported. If this key is used, you must not use key 100, but should use
keys 101 or 102.</p>
<p><strong>Note:</strong> The module must exist on the system at the time the
API is called.</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%">Key</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">Length of module name</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of library name</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Module name</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Library name</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_12">Key 104-Suspected Procedure</a></h4>
<p>This key is used to identify which procedure is suspected of causing the
error being reported. If this key is used, you must not use key 100, but should
use key 103 and either 101 or 102.</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%">Key</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">Length of procedure name</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Procedure name</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_13">Key 105-Detecting Program</a></h4>
<p>This key identifies the program that detected the problem. If this key is
used, you must not use key 106. If neither key 105 nor 106 is specified, the
API assumes that the program or service program that called the API is the one
that detected the problem.</p>
<p><strong>Note:</strong> The program must exist on the system at the time the
API is called.</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%">Key</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">Length of program name</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of library name</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Program name</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Library name</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_14">Key 106-Detecting Service Program</a></h4>
<p>This key identifies the service program that detected the problem. If this
key is used, you must not use key 105. If neither key 105 nor 106 is specified,
the API assumes that the program or service program that called the API is the
one that detected the problem.</p>
<p><strong>Note:</strong> The service program must exist on the system at the
time the API is called.</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%">Key</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">Length of service program name</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of library name</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Service program name</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Library name</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_15">Key 200-Symptom</a></h4>
<p>This key identifies the symptoms associated with the problem. Together, the
symptoms form a symptom string. i5/OS searches for a PTF that has a solution
string that matches this symptom string.</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%">Key</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">Length of symptom keyword</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of symptom data</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Type of symptom data</td>
</tr>
<tr>
<td align="center" valign="top">13</td>
<td align="center" valign="top">D</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Pointer to symptom keyword</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Pointer to symptom data</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_16">Key 201-Instruction Number</a></h4>
<p>This key identifies the instruction number where the problem occurred.</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%">Key</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Instruction number</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_17">Key 300-System Object</a></h4>
<p>This key identifies system objects associated with the problem. The system
objects will be dumped to spooled files. The spooled files will be kept on an
output queue in the APAR library associated with the problem log entry. You can
display the spooled files using the WRKPRB command. The combination of this key
and the other keys related to objects may be specified up to 32 times.</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%">Key</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(12)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">PTR(SYP)</td>
<td align="left" valign="top">Pointer to object</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_18">Key 301-Data</a></h4>
<p>This key identifies data associated with the problem. The data is dumped to
spooled files. This key may be specified up to 32 times. The spooled files are
kept on an output queue in the APAR library associated with the problem log
entry. You can display the spooled files using the WRKPRB command. The first
one thousand bytes from the list of data items are also sent to the service
provider if the problem is reported and if the &quot;send data packet&quot; flag in the
service attributes is on. That data resides in a file named QAPDFCDP in the
APAR library associated with the problem log entry on the service provider.</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%">Key</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">Data length</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Data ID</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">Pointer to data</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_19">Key 302-Named System Object</a></h4>
<p>This key names system objects associated with the problem. The system
objects will be dumped to spooled files. The spooled files will be kept on an
output queue in the APAR library associated with the problem log entry. You can
display the spooled files using the WRKPRB command. The combination of this key
and the other keys related to objects may be specified up to 32 times.</p>
<p><strong>Note:</strong> The object must exist on the system at the time the
API is called.</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%">Key</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(30)</td>
<td align="left" valign="top">Object name</td>
</tr>
<tr>
<td align="center" valign="top">34</td>
<td align="center" valign="top">22</td>
<td align="left" valign="top">CHAR(30)</td>
<td align="left" valign="top">Object library</td>
</tr>
<tr>
<td align="center" valign="top">64</td>
<td align="center" valign="top">40</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object type</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_20">Key 303-Spooled File</a></h4>
<p>This key identifies spooled files associated with the problem. The job that
created the spooled files must be the current job. This key may be specified up
to 32 times. The spooled files are kept on an output queue in the APAR library
associated with the problem log entry.</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%">Key</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Spooled file name</td>
</tr>
<tr>
<td align="center" valign="top">14</td>
<td align="center" valign="top">E</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Spooled file number</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_21">Key 304-Named Integrated File System Object</a></h4>
<p>This key names integrated file system objects associated with the problem.
The integrated file system objects will be dumped to spooled files. The spooled
files will be kept on an output queue in the APAR library associated with the
problem log entry. You can display the spooled files using the WRKPRB command.
The combination of this key and the other keys related to objects may be
specified up to 32 times.</p>
<p><strong>Notes:</strong></p>
<ol>
<li>The object must exist on the system at the time the API is called.</li>
<li>Both absolute and relative path names are allowed. The patterns ? and * are
not allowed. The home directory of the user is not resolved, thus a tilde (~)
in the first character position is not treated as the home directory. The
NLS-enabled path name structure (defined in the QLG header file) can be filled
in to specify the coded character set identifier (CCSID) the path name is
in.</li>
</ol>
<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%">Key</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(12)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">POINTER</td>
<td align="left" valign="top">NLS-enabled path name structure</td>
</tr>
</table>
<br>
<br>
<h4><a name="Header_22">Key 400-Service Identifier</a></h4>
<p>This key identifies where in a particular program or service program the
problem was reported. The default service identifier is 9000.</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%">Key</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Service identifier</td>
</tr>
</table>
<br>
<br>
<h3><a name="Header_23">Field Descriptions</a></h3>
<p><strong>Call stack counter.</strong> The number of invocations in the
program stack to count from the invocation of the program or service program
that called the API, to the invocation of the program or service program that
is suspected of having the problem. Use 1, for instance, to specify the program
or service program that called the program or service program that called the
API. If the call stack counter value exceeds the number of invocations
currently on the program stack, the API uses the invocation of the program or
service program that called the API.</p>
<p><strong>Data ID.</strong> This number is used to identify the data that is
dumped.</p>
<p><strong>Data length.</strong> The length of the data that is dumped.</p>
<p><strong>Instruction number.</strong> Specifies exactly where the problem
occurred within the specified program or service program.</p>
<p><strong>Key.</strong> Identifies the problem description record.</p>
<p><strong>Length of library name.</strong> The length of the library name. The
value ranges from 1 to 10.</p>
<p><strong>Length of module name.</strong> The length of the module name. The
value ranges from 1 to 10.</p>
<p><strong>Length of procedure name.</strong> The length of the procedure name.
The value ranges from 1 to 256.</p>
<p><strong>Length of program name.</strong> The length of the program name. The
value ranges from 1 to 10.</p>
<p><strong>Length of service program name.</strong> The length of the service
program name. The value ranges from 1 to 10.</p>
<p><strong>Length of symptom data.</strong> This indicates how many bytes the
stored data occupies. The valid range is 1 to 15. The length of the symptom
data plus the length of the symptom keyword must not exceed 15.</p>
<p><strong>Length of symptom keyword.</strong> The length of the symptom
keyword. The valid range is 1 to 15. The length of the symptom data plus the
length of the symptom keyword must not exceed 15.</p>
<p><strong>Library name.</strong> A pointer to the name of the library which
contains the program, service program, or module in which the error has
occurred.</p>
<p><strong>Module name.</strong> A pointer to the name of the module in which
the error has occurred.</p>
<p><strong>NLS-enabled path name structure.</strong> For more information on
this structure, see <a href="../apiref/pns.htm">Path Name Format</a>.</p>
<p><strong>Object library.</strong> The library in which the object
resides.</p>
<p>Valid values for the library name are:</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>
<tr>
<td align="left" valign="top"><em>library name</em></td>
<td align="left" valign="top">The specific library that contains the object.</td>
</tr>
</table>
<p><strong>Object name.</strong> The name of the object to be dumped.</p>
<p><strong>Object type.</strong> The type of object. For complete list of the
available object types, see the <a href="../rbam6/rbam6clmain.htm">Control
Language (CL)</a> information in the iSeries Information Center.</p>
<p><strong>Pointer to data.</strong> A space pointer to the data.</p>
<p><strong>Pointer to object.</strong> A system pointer to a system object.</p>
<p><strong>Pointer to symptom data.</strong> A pointer to the symptom data. The
symptom data is a symptom of the problem. It is concatenated to the symptom
keyword. The sum of the symptom keyword length and the symptom data length must
not be longer than 15 characters.</p>
<p><strong>Pointer to symptom keyword.</strong> A pointer to the system
keyword. The symptom keyword is concatenated to the symptom data. The sum of
the symptom keyword length and the symptom data length must not be longer than
15 characters. There are a limited number of keywords that can be used. The
valid keywords are:</p>
<p><strong><a name="Table_1">Table 1. Symptom string keywords</a></strong></p>
<table border width="80%" cellpadding="5">
<!-- cols="15 85" -->
<tr>
<th align="left" valign="top">Key</th>
<th align="left" valign="top">Description</th>
</tr>
<tr>
<td align="left" valign="top">(blanks)</td>
<td align="left" valign="top">Normally, a symptom in the symptom
string consists of a keyword and data. However, for flexibility, you may
specify a symptom without a keyword.</td>
</tr>
<tr>
<td align="left" valign="top">MSG</td>
<td align="left" valign="top">This is a message identifier
associated with the problem.</td>
</tr>
<tr>
<td align="left" valign="top">RC</td>
<td align="left" valign="top">The point of failure is a number that
identifies a subroutine, block of code, or specific statement associated with
the problem. Note: This number should not be an instruction number, since the
instruction number may be different for different versions of the same
program.</td>
</tr>
<tr>
<td align="left" valign="top">FLDS/</td>
<td align="left" valign="top">This is the name of a field
associated with the problem. It may be followed by the VALU/ keyword to show
what value the field contained at the time of the failure.</td>
</tr>
<tr>
<td align="left" valign="top">MOD/</td>
<td align="left" valign="top">MOD/ is the name of the ILE module
that might have caused the problem being reported.</td>
</tr>
<tr>
<td align="left" valign="top">OPCS/</td>
<td align="left" valign="top">OPCS/ is the name of the command,
macro, or instruction associated with the problem.</td>
</tr>
<tr>
<td align="left" valign="top">PCSS/</td>
<td align="left" valign="top">PCSS/ is a program label that shows
generally where the problem occurred.</td>
</tr>
<tr>
<td align="left" valign="top">PRCS/</td>
<td align="left" valign="top">PRCS/ is a reason code or return code
associated with the problem.</td>
</tr>
<tr>
<td align="left" valign="top">REGS/</td>
<td align="left" valign="top">This is the name of a register
associated with the problem. It may be followed by the VALU/ keyword to show
what value the register contained at the time of the failure.</td>
</tr>
<tr>
<td align="left" valign="top">RIDS/</td>
<td align="left" valign="top">RIDS/ is the name of the subroutine
or the identifier of the thread in which the problem occurred.</td>
</tr>
<tr>
<td align="left" valign="top">VALU/</td>
<td align="left" valign="top">VALU/ is the value of a field or
register at the time the problem occurred. VALU/ must appear after key FLDS/ or
REGS/.</td>
</tr>
</table>
<p><strong>Procedure name.</strong> A space pointer to the name of the
procedure in which the error has occurred.</p>
<p><strong>Program name.</strong> A pointer to the name of the program in which
the error is suspected. The suspected program name is included in the symptom
string (as F/name) created when this API is called. If neither the 100, 101,
nor the 102 keys are used, then the program name in the symptom string defaults
to the caller of this API.</p>
<p><strong>Reserved.</strong> Null.</p>
<p><strong>Service identifier.</strong> Identifiers where in a program or
service program the problem was reported. The valid range is 1 to 8999.</p>
<p><strong>Service program name.</strong> A pointer to the name of the service
program in which the error is suspected. The suspected service program name is
included in the symptom string (as F/name) created when this API is called. If
the 100, 101, or the 102 keys are not used, then the service program name in
the symptom string defaults to the caller of this API.</p>
<p><strong>Spooled file name.</strong> The name of a spooled file associated
with the problem.</p>
<p><strong>Spooled file number.</strong> The unique number of a spooled file
associated with the problem. The valid range is 1 through 9999.</p>
<p>The following special values are supported for this parameter:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Only one spooled file from the job has the
specified file name, so the number of the spooled file is not necessary.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>-1</em></td>
<td align="left" valign="top">This uses the highest numbered spooled file with the specified
file name.</td>
</tr>
</table>
<br>
<p><strong>Type of symptom data.</strong> This indicates how the data is
stored.</p>
<p>The possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>C</em></td>
<td align="left" valign="top">The data is in displayable form. It must not
include blanks or characters that are not displayable.</td>
</tr>
<tr>
<td align="left" valign="top"><em>X</em></td>
<td align="left" valign="top">The data is in hexadecimal form. The API converts it to
displayable characters.</td>
</tr>
<tr>
<td align="left" valign="top"></td>
<td align="left" valign="top"><strong>Note:</strong>The length of symptom data is the number
of bytes used to store the hexadecimal value.</td>
</tr>
<tr>
<td align="left" valign="top"><em>D</em></td>
<td align="left" valign="top">The data is in zoned decimal form.</td>
</tr>
<tr>
<td align="left" valign="top"><em>P</em></td>
<td align="left" valign="top">The data is in packed decimal form. The API converts it to
displayable numbers.</td>
</tr>
<tr>
<td align="left" valign="top"><em>B</em></td>
<td align="left" valign="top">The data is in binary form. The API converts it to displayable
numbers.</td>
</tr>
<tr>
<td align="left" valign="top"></td>
<td align="left" valign="top"><strong>Note:</strong>The length of symptom data can only be 2
or 4 bytes if the type of symptom data is B.</td>
</tr>
</table>
<br>
<h3><a name="usage_notes">Usage Notes</a></h3>
<p>When this API runs within a threaded job, no problem log entry is created.
When the API is called, the following occurs:</p>
<ul>
<li>Any error data that is provided is spooled to one or more spooled
files.</li>
<li>A symptom string is created.</li>
<li>A message is sent to the job log and to the QSYSOPR message queue, which
indicates that a software error has been detected.</li>
</ul>
<p>Error data can be provided on the call to the API by using the data item
offset and length parameters. (No object dumping support is available).</p>
<p>Also, dump job output is provided to help with problem determination.</p>
<p>Also, the following keys are ignored:</p>
<table border width="80%">
<!-- cols="10 90" -->
<tr>
<th align="center" valign="top">Key</th>
<th align="left" valign="top">Description</th>
</tr>
<tr>
<td align="center" valign="top">300</td>
<td align="left" valign="top">System object</td>
</tr>
<tr>
<td align="center" valign="top">302</td>
<td align="left" valign="top">Named system object</td>
</tr>
<tr>
<td align="center" valign="top">303</td>
<td align="left" valign="top">Spooled file</td>
</tr>
<tr>
<td align="center" valign="top">400</td>
<td align="left" valign="top">Service identifier</td>
</tr>
</table>
<br>
<br>
<h3>Error Messages</h3>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td width="15%" valign="top">CPF3C90 E</td>
<td width="85%" valign="top">Literal value cannot be changed.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF1 E</td>
<td align="left" valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF2 E</td>
<td align="left" valign="top">Error(s) occurred during running of &amp;1 API.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C82 D</td>
<td align="left" valign="top">Key &amp;1 not valid for API &amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C85 D</td>
<td align="left" valign="top">Value for key &amp;1 not allowed with value for key
&amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPF93C2 D</td>
<td align="left" valign="top">&amp;1 is not a valid number of data items.</td>
</tr>
<tr>
<td align="left" valign="top">CPF93C3 D</td>
<td align="left" valign="top">&amp;1 is not a valid number of object names.</td>
</tr>
<tr>
<td align="left" valign="top">CPF93C8 D</td>
<td align="left" valign="top">Not a valid number of symptoms.</td>
</tr>
<tr>
<td align="left" valign="top">CPF93C9 D</td>
<td align="left" valign="top">Not a valid number of spooled files.</td>
</tr>
<tr>
<td align="left" valign="top">CPF93C0 E</td>
<td align="left" valign="top">Software error logging not active.</td>
</tr>
<tr>
<td align="left" valign="top">CPF93C4 E</td>
<td align="left" valign="top">Error already logged.</td>
</tr>
<tr>
<td align="left" valign="top">CPF93C6 E</td>
<td align="left" valign="top">Suspected program cannot be determined.</td>
</tr>
<tr>
<td align="left" valign="top">CPF93C7E</td>
<td align="left" valign="top">Error in parameter &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9872 E</td>
<td align="left" valign="top">Program or service program &amp;1 in library &amp;2 ended.
Reason code &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPI93B2 I</td>
<td align="left" valign="top">Software problem data for &amp;4 has been detected.</td>
</tr>
</table>
<br>
<hr>
API introduced: V3R1
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#top_of_page">Top</a> | <a href=
"pm1.htm">Problem Management API list</a><br>
<a href=
"aplist.htm">APIs by category</a></td>
</tr>
</table>
</center>
</body>
</html>