ibm-information-center/dist/eclipse/plugins/i5OS.ic.rbam6_5.4.0.1/rqmsg.htm

116 lines
7.4 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="task" />
<meta name="DC.Title" content="Receive request messages" />
<meta name="abstract" content="Receiving request messages is a method for your CL procedure or program to process CL commands." />
<meta name="description" content="Receiving request messages is a method for your CL procedure or program to process CL commands." />
<meta name="DC.subject" content="request message, message, request" />
<meta name="keywords" content="request message, message, request" />
<meta name="DC.Relation" scheme="URI" content="rmclp.htm" />
<meta name="DC.Relation" scheme="URI" content="msgcl.htm" />
<meta name="DC.Relation" scheme="URI" content="mlogg.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rqmsg" />
<meta name="DC.Language" content="en-us" />
<!-- 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. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Receive request messages</title>
</head>
<body id="rqmsg"><a name="rqmsg"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Receive request messages</h1>
<div><p>Receiving request messages is a method for your CL procedure or
program to process CL commands.</p>
<div class="section"> <p>For example, your procedure or program can obtain input (commands)
from a display station and handle the messages that result from the analysis
and processing of the input. The commands are sent as request messages so
they can be processed. Usually, request messages are received from the external
message queue (*EXT) of the job. For batch jobs, the requests received are
those read from the input stream. For interactive jobs, the requests received
are those the display station user enters one at a time on the Command Entry
display. For example, CL commands are requests that are received by the IBM-supplied
CL processor QCMD.</p>
<p>Your procedure or program must define the syntax
of the data in the request message, interpret the request, and diagnose any
errors. While the request is being analyzed or the request function is being
run, any number of errors can be detected. As a result of these errors, messages
are sent to the call message queue for the procedure or program. The procedure
or program handles these messages and then receives the next request message.
Thus, a request processing cycle is defined; a request message is received,
the request is analyzed and run by your procedure or program with resulting
messages displayed, and the next request received. If there are no more request
messages to be received in a batch job, an escape message is sent to your
procedure or program to indicate this.</p>
<p>More than one OPM program or
ILE procedure of a job can receive request messages for processing. The requests
received by more recent program calls are considered to be nested within those
received by higher level program calls. The request processing cycles at
each nesting level are independent of each other. Within an ILE program, one
or more procedures within that program can be receiving request messages.
If more than one procedure is processing requests then the nesting occurs
within the same ILE program and the nesting levels remain independent.</p>
<p>The
following diagram shows how request messages are processed by QCMD:</p>
<div class="fignone"><br /><img src="rslf166.gif" alt="REQTEXT" /><br /></div>
<dl><dt class="dlterm"><span>1</span></dt>
<dd>The CL processor QCMD receives a request message from *EXT.</dd>
<dt class="dlterm"><span>2</span></dt>
<dd>If there is no request message on *EXT, the Command Entry display is displayed.
The display station user enters a command on the display. When the command
is entered, it is placed on *EXT as a request message.</dd>
<dt class="dlterm"><span>3</span></dt>
<dd>Since step 2 placed a request on *EXT, now the RCVMSG in step 1 can continue.
The command is then moved to the QCMD call message queue and
is passed from there to QCMD to complete step 1.</dd>
<dt class="dlterm"><span>4</span></dt>
<dd>The command is analyzed and its command processing program (CPP) is called.</dd>
<dt class="dlterm"><span>5</span></dt>
<dd>The command processing program sends diagnostic messages to the call message
queue for QCMD.</dd>
<dt class="dlterm"><span>6</span></dt>
<dd>Then the command processing program sends an escape message to the call
message queue for QCMD. The escape message notifies QCMD that diagnostic
messages are on the queue and that QCMD should end processing of the CPP.</dd>
<dt class="dlterm"><span>7</span></dt>
<dd>QCMD is monitoring for the arrival of a request-check (CPF9901) or function-check
(CPF9999) escape message. QCMD then tries to receive the next request message.
<div class="note"><span class="notetitle">Note:</span> If a request processor receives message CPF9901 or CPF9999, it should
run a Reclaim Resources (RCLRSC) command. The request processor should also
monitor for messages CPF1907 (end request) and CPF2415 (which indicates that
the user pressed F3 or F12 on the Command Entry display).</div>
</dd>
<dt class="dlterm"><span>8</span></dt>
<dd>Because a request message was being processed, all the messages on the
call message queue for QCMD are written to the Command Entry display, which
then prompts the display station user for another command.</dd>
<dt class="dlterm"><span>9</span></dt>
<dd>The previous request message (command) and its associated messages are
contained in the job log according to the message logging level specified
for the job.</dd>
</dl>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rmclp.htm" title="You can use the Receive Message (RCVMSG) command to obtain a message from a message queue for your procedure or program. This topic includes general information on receiving messages and the details on receiving request messages and request processing programs.">Receive messages into a CL procedure or program</a></div>
</div>
<div class="reltasks"><strong>Related tasks</strong><br />
<div><a href="msgcl.htm" title="Various message types are described in this topic. Use the Send Program Message (SNDPGMMSG) command or the Send User Message (SNDUSRMSG) command to send a message from a CL procedure or program.">Send messages from a CL program</a></div>
<div><a href="mlogg.htm" title="There are two types of logs for messages: job logs and history logs.">Log messages</a></div>
</div>
</div>
</body>
</html>