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

856 lines
26 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">
<!-- 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. -->
<!-- Created for V5R4 by Sergio Toscano (stlomeli) D99930 -->
<!-- Reason vXrYmZ Dev Date Change -->
<!-- d3602 v5r4m0 Sergio Toscano 040905 + Add CPF39EA and CPF39EB -->
<!-- + Add *LIBL to MSGQ lib -->
<!-- + Add CPF9872, CPF24B4 msg-->
<title>Start Watch (QSCSWCH) API</title>
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<!--End Header Records ================================================ -->
<!-- Java sync-link =================================================== -->
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<a name="Top_Of_Page"></a>
<h2><img src="delta.gif" alt="Start of change">Start Watch (QSCSWCH)
API</h2>
<div class="box" style="width: 90%;"><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%">Session ID</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">2</td>
<td align="left" valign="top" width="50%">Started session ID</td>
<td align="left" valign="top" width="20%">Output</td>
<td align="left" valign="top" width="20%">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Watch program</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(20)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Watch for message</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Watch for LIC log entry</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">6</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: *EXCLUDE
<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes
<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Start Watch (QSCSWCH) API starts the watch for event function, which
notifies the user by calling a user specified program when the specified event
(a message or LIC log) occurs.</p>
<p>Up to 10000 watch sessions can be active at a time. The watch session
continues until ended with the End Watch (QSCEWCH) API or with the End Watch
(ENDWCH) command.</p>
<p><strong>Note:</strong> A watch session can be ended from the same job or a
different job.</p>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>Authority to use the API</em></dt>
<dd>To use this API, you must have service (*SERVICE) special authority, or be
authorized to the Service watch function of Opearting System through iSeries
Navigator's Application Administration support. The Change Function Usage
(CHGFCNUSG) command, with a function ID of QIBM_SERVICE_WATCH, can also be used
to change the list of users that are allowed to start and end watch operations.
<br>
<br>
</dd>
<dt><em>Authority to watch program</em></dt>
<dd>You must have operational (*OBJOPR) and execute (*EXECUTE) authorities to
the watch program to be called, and execute (*EXECUTE) authority to the library
where the program is located.
<br>
<br>
</dd>
<dt><em>Authority to message queue</em></dt>
<dd>You must have use (*USE) authority to the message queue specified in
watched message queue name field, and use (*USE) authority to the library where
the message queue is located.
<br>
<br>
</dd>
<dt><em>Authority to watched job</em></dt>
<dd>When a message is being watched within a job, the issuer of the API must be
running under a user profile which is the same as the job user identity of the
job being watched, or the issuer of the API must be running under a user
profile which has job control (*JOBCTL) special authority. Job control
(*JOBCTL) special authority is also required if a generic user name is
specified in the watched job user name field.
<p>If you specify *ALL for the watched job name, or a generic user name, you
must have all object (*ALLOBJ) special authority, or be authorized to the Watch
any job function of Operating System through iSeries Navigator's Application
Administration support. The Change Function Usage (CHGFCNUSG) command, with a
function ID of QIBM_WATCH_ANY_JOB, can also be used to change the list of users
that are allowed to start and end watch operations.</p>
</dd>
</dl>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Session ID</strong></dt>
<dd>INPUT; CHAR(10)
<p>The session identifier for this watch. This watch session identifier must be
unique across all active watche sessions on the system. You cannot specify a
session identifier that starts with "QSC". You can use this special value for
this parameter:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*GEN</em></td>
<td align="left" valign="top">The system will generate a unique session
identifier for this watch that will be returned as output in Started session ID
parameter.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Started session ID</strong></dt>
<dd>OUTPUT; CHAR(10)
<p>The identifier of the watch session just started.</p>
<br>
</dd>
<dt><strong>Watch program</strong></dt>
<dd>INPUT; CHAR(20)
<p>The program to be called to notify that a specified watch event occurred.
The watch program will be called after a match of a message identifier and any
associated comparison data specified for the watch for message parameter, or a
match of a Licensed Internal Code (LIC) log entry and any associated comparison
data specified for the watch for LIC log entry parameter occurs.</p>
<p>The exit program will be called once for each message id and LIC log entry
specified on this API. That is, if a message is watched on a message queue and
in a job log, and the message is sent to both locations, the exit program will
be called twice.</p>
<p>For more information about the watch exit program interface, refer to the
System API Reference information in the iSeries Information Center at
http://www.iseries.ibm.com/infocenter .</p>
<p>The information must be in the following format:</p>
<dl>
<dt><em>Watch program name</em></dt>
<dd>CHAR(10)
<br>
The name of the user-written program to call.
<br>
</dd>
<dt><em>Watch program library</em></dt>
<dd>CHAR(10)
<br>
The library where the user-written program is located. You can use one of these
special values for this field:
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*LIBL</em></td>
<td align="left" valign="top">All libraries in the job's library list are
searched until the first match is found.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*CURLIB</em></td>
<td align="left" valign="top">The current library for the job is used to locate
the program. If no library is specified as the current library for the job, the
QGPL library is used.</td>
</tr>
</table>
</dd>
</dl>
</dd>
<dt><strong>Watch for message</strong></dt>
<dd>INPUT; CHAR(*)
<p>The message identifiers which are to be watched for and where to watch for
them. The information must be in the following format:</p>
<dl>
<dt><em>Number of messages being watched</em></dt>
<dd>BINARY(4)
<br>
The total number of all of the messages to watch for within this session. Up to
100 messages might be watched at the same time by a single session.
<br>
</dd>
<dt><em>Message information</em></dt>
<dd>Each message being watched contains a message id, where to watch for the
message (message queue or job log) and it may specify a message comparison
data. Refer to <a href="#HDRFMSG">Format for message information</a> for the
format of this field.</dd>
</dl>
<br>
</dd>
<dt><strong>Watch for LIC log entry</strong></dt>
<dd>INPUT; CHAR(*)
<p>The licensed internal code (LIC) log entry identifiers which are to be
watched for. The watched for condition will be met if a LIC log entry is added
that matches the specified major and minor codes and any comparison data
specified. The information must be in the following format:</p>
<dl>
<dt><em>Number of LIC logs being watched</em></dt>
<dd>BINARY(4)
<br>
The total number of all of the LIC logs to watch for. Up to five LIC logs can
be specified.
<br>
</dd>
<dt><em>LIC log information</em></dt>
<dd>Each LIC log entry contains a major and a minor code and it may specify a
LIC log comparison data. Refer to <a href="#HDRFLIC">Format for LIC log
information</a> for the format of this field.</dd>
</dl>
<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>
<br>
<h3><a name="HDRFMSG">Format for message information</a></h3>
<p>The following table shows the format for the messages to be watched for. For
a detailed description of each field, see <a href="#Header_8">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%">Length of message information</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">4</td>
<td align="center" valign="top" width="10%">4</td>
<td align="left" valign="top" width="20%">CHAR(7)</td>
<td align="left" valign="top" width="60%">Message id</td>
</tr>
<tr>
<td align="center" valign="top">11</td>
<td align="center" valign="top">B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Watched message queue name</td>
</tr>
<tr>
<td align="center" valign="top">22</td>
<td align="center" valign="top">16</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Watched message queue library</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Watched job name</td>
</tr>
<tr>
<td align="center" valign="top">42</td>
<td align="center" valign="top">2A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Watched job user name</td>
</tr>
<tr>
<td align="center" valign="top">52</td>
<td align="center" valign="top">34</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Watched job number</td>
</tr>
<tr>
<td align="center" valign="top">58</td>
<td align="center" valign="top">3A</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Reserved</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">Offset to message comparison data</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">Length of message comparison data</td>
</tr>
<tr>
<td align="center" valign="top">72</td>
<td align="center" valign="top">48</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Compare against</td>
</tr>
<tr>
<td align="center" valign="top">82</td>
<td align="center" valign="top">52</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Message comparison data</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRFLIC">Format for LIC log information</a></h3>
<p>The following table shows the format for the LIC logs to be watched for. For
a detailed description of each field, see <a href="#Header_8">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%">Length of LIC log information</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">4</td>
<td align="center" valign="top" width="10%">4</td>
<td align="left" valign="top" width="20%">CHAR(4)</td>
<td align="left" valign="top" width="60%">LIC log major code</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">LIC log minor code</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to LIC log comparison data</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of LIC log comparison data</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">LIC log comparison data</td>
</tr>
</table>
<br>
<br>
<h3><a name="Header_8">Field Descriptions</a></h3>
<p><strong>Compare against.</strong> The part of the message the data specified
in message comparison data field is to be compared against. You must specify
blanks if zero was specified for the length of message comparison data field.
You can specify the following special values for this field:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*MSGDTA</em></td>
<td align="left" valign="top">The message comparison data will be compared
against the message replacement data.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*FROMPGM</em></td>
<td align="left" valign="top">The message comparison data will be compared
against the name of the program sending the message, or the name of the ILE
program that contains the procedure sending the message.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*TOPGM</em></td>
<td align="left" valign="top">The message comparison data will be compared
against the name of the program the message was sent to, or the name of the ILE
program that contains the procedure the message was sent to.</td>
</tr>
</table>
<p><strong>Length of LIC log comparison data.</strong> The length of the text
specified in LIC log comparison data field. Valid values are 0 through 72.</p>
<p><strong>Length of LIC log information.</strong> The length of the structure
containing the information of the LIC log to watch for.</p>
<p><strong>Length of message comparison data.</strong> The length of the text
specified in message comparison data field. Valid values are 0 through 72.</p>
<p><strong>Length of message information.</strong> The length of the structure
containing the information of the message to watch for.</p>
<p><strong>LIC log comparison data.</strong> The comparison data to be used if
a log entry matching the specified major and minor codes is added to the
licensed internal code (LIC) log. If this text is found in the LIC log entry
data fields of the watched for log entry, the watched for condition is true.
This text is case sensitive. The LIC log fields which can be compared are TDE
number, task name, server type, job name, user ID, job number, thread ID,
exception ID, LIC module compile binary timestamp, LIC module offset, LIC
module RU name, LIC module name, LIC module entry point name. The comparison
data cannot be used to match across two fields, and can match an entire field
or a substring of any field. When watching for an exception ID, all four
hexadecimal digits of the exception ID must be specified. Also, the prefix MCH
may be specified if you want to compare only against the exception ID field and
avoid possible substring matches with the other fields.</p>
<p><strong>LIC log major code.</strong> The LIC log major code to be watched
for. You can specify either a hexadecimal digit or a question mark for each
character in the four-digit code. A question mark is a wildcard character that
will match any digit in that position. Up to three wildcard characters can be
specified. You can specify the following special value for this field:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*ALL</em></td>
<td align="left" valign="top">Any LIC log entry major code will be considered
to be a match. If *ALL is specified for the major code, you cannot specify *ALL
for the LIC log entry minor code.</td>
</tr>
</table>
<p><strong>LIC log minor code.</strong> The LIC log minor code to be watched
for. You can specify either a hexadecimal digit or a question mark for each
character in the four-digit code. A question mark is a wildcard character that
will match any digit in that position. Up to three wildcard characters can be
specified. You can specify the following special value for this field:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*ALL</em></td>
<td align="left" valign="top">Any LIC log entry minor code will be considered
to be a match. If *ALL is specified for the minor code, you cannot specify *ALL
for the LIC log entry major code.</td>
</tr>
</table>
<p><strong>Message comparison data.</strong> The comparison data to be used if
a message matching the specified message ID is added to the specified message
queue or log. If the message data, the "From program" or the "To program"
includes the specified text, the watched for condition is true. This text is
case sensitive.</p>
<p><strong>Message id.</strong> The 7-character message identifier to be
watched for.</p>
<p><strong>Offset to LIC log comparison data.</strong> The offset to the field
that holds the LIC log comparison data.</p>
<p><strong>Offset to message comparison data.</strong> The offset to the field
that holds the message comparison data.</p>
<p><strong>Reserved.</strong> A reserved field. This field must be set to
hexadecimal or binary zero.</p>
<p><strong>Watched job name.</strong> The name of the job to be watched. You
must specify blanks if something different from *JOBLOG is specified for
watched message queue name field. You can specify the following special values
for this field:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>generic-name</em></td>
<td align="left" valign="top">The generic name of the job to be watched. A
generic name is a character string of one or more characters followed by an
asterisk (*); for example, ABC*. The asterisk substitutes for any valid
characters. A generic job name specifies all jobs with job names that begin
with the generic prefix.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*</em></td>
<td align="left" valign="top">Only the job log of the job that issued this API
is watched.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*ALL</em></td>
<td align="left" valign="top">All jobs with the specified job user name are
watched. *ALL for the job name is considered to be a generic job specification
because it will watch all jobs that meet the job user name qualifier that you
specified.</td>
</tr>
</table>
<p><strong>Watched job number.</strong> The job number (000001-999999) to
further qualify the job name and user name. You must specify blanks if a
generic job name or a generic user name qualifier is specified, or if something
different from *JOBLOG is specified for watched message queue name field. You
can specify the following special value for this field:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*ALL</em></td>
<td align="left" valign="top">All jobs with the specified job name and user
name are watched.</td>
</tr>
</table>
<p><strong>Watched job user name.</strong> The user name of the job to be
watched. You must specify blanks if '*' is specified for the watched job name
field or something different from *JOBLOG is specified for watched message
queue name field. You can specify the following special value for this
field:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>generic-name</em></td>
<td align="left" valign="top">The generic name of the user name of the job to
be watched. A generic name is a character string of one or more characters
followed by an asterisk (*); for example, ABC*. The asterisk substitutes for
any valid characters. A generic user name specifies all jobs with the specified
job name and with user names that begin with the generic prefix.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*ALL</em></td>
<td align="left" valign="top">All jobs with the specified job name are watched.
*ALL for the job user name is considered to be a generic job specification
because it will watch all jobs that meet the job name qualifier that you
specified.</td>
</tr>
</table>
<p><strong>Watched message queue library.</strong> The name of the library
where the message queue is located. This field is ignored if *SYSOPR, *JOBLOG
or *HSTLOG was specified in the message queue name. You can specify the
following special value for this field:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*LIBL</em></td>
<td align="left" valign="top">All libraries in the job's library list are
searched until the first match is found.</td>
</tr>
</table>
<p><strong>Watched message queue name.</strong> The name of the message queue
to watch. You can specify the following special values for this field:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*SYSOPR</em></td>
<td align="left" valign="top">Watch messages added to the system operator
message queue (QSYSOPR message queue in library QSYS).</td>
</tr>
<tr>
<td align="left" valign="top"><em>*JOBLOG</em></td>
<td align="left" valign="top">Watch messages added to the job logs of the jobs
specified for the watched job field.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*HSTLOG</em></td>
<td align="left" valign="top">Watch messages added to the history log (QHST
message queue in library QSYS).</td>
</tr>
</table>
<br>
<br>
<h3><a name="header_9">Error Messages</a></h3>
<p>The following messages may be sent from this function:</p>
<table width="100%">
<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">CPF24B4</td>
<td width="85%" valign="top">Severe error while addressing parameter list.</td>
</tr>
<tr>
<td valign="top">CPF2401</td>
<td valign="top">Not authorized to library &amp;1.</td>
</tr>
<tr>
<td valign="top">CPF2403</td>
<td valign="top">Message queue &amp;1 in &amp;2 not found.</td>
</tr>
<tr>
<td valign="top">CPF2408</td>
<td valign="top">Not authorized to message queue &amp;1.</td>
</tr>
<tr>
<td width="15%" valign="top">CPF3CF1</td>
<td width="85%" valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td valign="top">CPF3C1D</td>
<td valign="top">Length specified in parameter &amp;1 not valid.</td>
</tr>
<tr>
<td valign="top">CPF3C20</td>
<td valign="top">Error found by program &amp;1.</td>
</tr>
<tr>
<td valign="top">CPF3C3A</td>
<td valign="top">Value for parameter &amp;2 for API &amp;1 not valid.</td>
</tr>
<tr>
<td valign="top">CPF39D0</td>
<td valign="top">Watch for event function cannot start.</td>
</tr>
<tr>
<td valign="top">CPF39D1</td>
<td valign="top">Limit exceeded for jobs watching for trace events.</td>
</tr>
<tr>
<td valign="top">CPF39EA</td>
<td valign="top">Value specified for watched job user name filed is not
valid.</td>
</tr>
<tr>
<td valign="top">CPF39EB</td>
<td valign="top">Watched job name, watched job user name or watched job number
field not valid.</td>
</tr>
<tr>
<td valign="top">CPF39E3</td>
<td valign="top">Session ID &amp;1 already exists.</td>
</tr>
<tr>
<td valign="top">CPF39E5</td>
<td valign="top">No active jobs found, watch session not started.</td>
</tr>
<tr>
<td valign="top">CPF39E6</td>
<td valign="top">The user does not have the required authority.</td>
</tr>
<tr>
<td valign="top">CPF39E7</td>
<td valign="top">Invalid session identifier.</td>
</tr>
<tr>
<td valign="top">CPF39E8</td>
<td valign="top">Not enough authority to watch operations.</td>
</tr>
<tr>
<td valign="top">CPF39E9</td>
<td valign="top">*JOBCTL special authority required.</td>
</tr>
<tr>
<td valign="top">CPF3958</td>
<td valign="top">Not authorized to use program &amp;1 in library &amp;2.</td>
</tr>
<tr>
<td valign="top">CPF9811</td>
<td valign="top">Program &amp;1 in library &amp;2 not found.</td>
</tr>
<tr>
<td valign="top">CPF9872</td>
<td valign="top">Program or service program &amp;1 in library &amp;2 ended.
Reason code &amp;3.</td>
</tr>
</table>
<br>
<img src="deltaend.gif" alt="End of change">
<hr>
API introduced: V5R4
<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 APIs</a> | <a href="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</center>
</body>
</html>