447 lines
18 KiB
HTML
447 lines
18 KiB
HTML
|
|
<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head><META http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<title>Add Routing Entry (ADDRTGE)</title>
|
|
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
|
|
</head>
|
|
<body bgcolor="white">
|
|
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
|
<a name="ADDRTGE.Top_Of_Page"></a>
|
|
<h2>Add Routing Entry (ADDRTGE)</h2>
|
|
<table width="100%">
|
|
<tr>
|
|
<td valign="top" align="left"><b>Where allowed to run: </b>All environments (*ALL)<br>
|
|
<b>Threadsafe: </b>No
|
|
</td>
|
|
<td valign="top" align="right">
|
|
<a href="#ADDRTGE.PARAMETERS.TABLE">Parameters</a><br>
|
|
<a href="#ADDRTGE.COMMAND.EXAMPLES">Examples</a><br>
|
|
<a href="#ADDRTGE.ERROR.MESSAGES">Error messages</a></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<div> <a name="ADDRTGE"></a>
|
|
<p>The Add Routing Entry (ADDRTGE) command adds a routing entry to the specified subsystem description. Each routing entry specifies the parameters used to start a routing step for a job. For example, the routing entry specifies the name of the program to run when the routing data that matches the compare value in this routing entry is received.
|
|
</p>
|
|
<p><b>Notes:</b>
|
|
</p>
|
|
<ol>
|
|
<li>The job associated with an active subsystem can only find objects that exist in the system auxiliary storage pool (ASP) or in a basic user ASP. Therefore, objects that are referenced by this command should exist in the system ASP or in a basic user ASP.
|
|
</li>
|
|
</ol>
|
|
<p><b>Restrictions:</b>
|
|
</p>
|
|
<ol>
|
|
<li>To use this command, you must have:
|
|
<ul>
|
|
<li>object operational (*OBJOPR), object management (*OBJMGT), and read (*READ) authority to the specified subsystem description and execute (*EXECUTE) authority to the library containing that subsystem description.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
<table width="100%">
|
|
<tr><td align="right"><a href="#ADDRTGE.Top_Of_Page">Top</a></td></tr>
|
|
</table>
|
|
<hr size="2" width="100%">
|
|
|
|
<div>
|
|
<h3><a name="ADDRTGE.PARAMETERS.TABLE">Parameters</a></h3>
|
|
<table border="1" cellpadding="4" cellspacing="0">
|
|
<!-- col1="10" col2="15" col3="30" col4="10" -->
|
|
<tr>
|
|
<th bgcolor="aqua" valign="bottom" align="left">Keyword</th>
|
|
<th bgcolor="aqua" valign="bottom" align="left">Description</th>
|
|
<th bgcolor="aqua" valign="bottom" align="left">Choices</th>
|
|
<th bgcolor="aqua" valign="bottom" align="left">Notes</th>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" rowspan="3"><a href="#ADDRTGE.SBSD"><b>SBSD</b></a></td>
|
|
<td valign="top">Subsystem description</td>
|
|
<td valign="top"><i>Qualified object name</i></td>
|
|
<td valign="top" rowspan="3">Required, Positional 1</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">Qualifier 1: Subsystem description</td>
|
|
<td valign="top"><i>Name</i></td>
|
|
</tr><tr>
|
|
<td valign="top">Qualifier 2: Library</td>
|
|
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB</td>
|
|
</tr><tr>
|
|
<td valign="top"><a href="#ADDRTGE.SEQNBR"><b>SEQNBR</b></a></td>
|
|
<td valign="top">Routing entry sequence number</td>
|
|
<td valign="top">1-9999</td>
|
|
<td valign="top">Required, Positional 2</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" rowspan="3"><a href="#ADDRTGE.CMPVAL"><b>CMPVAL</b></a></td>
|
|
<td valign="top">Comparison data</td>
|
|
<td valign="top">Single values: *ANY<br>Other values: <i>Element list</i></td>
|
|
<td valign="top" rowspan="3">Required, Positional 3</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">Element 1: Compare value</td>
|
|
<td valign="top">
|
|
<i>Character value</i></td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">Element 2: Starting position</td>
|
|
<td valign="top">
|
|
1-80, <b><u>1</u></b></td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" rowspan="3"><a href="#ADDRTGE.PGM"><b>PGM</b></a></td>
|
|
<td valign="top">Program to call</td>
|
|
<td valign="top">Single values: *RTGDTA<br>Other values: <i>Qualified object name</i></td>
|
|
<td valign="top" rowspan="3">Required, Positional 4</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">Qualifier 1: Program to call</td>
|
|
<td valign="top"><i>Name</i></td>
|
|
</tr><tr>
|
|
<td valign="top">Qualifier 2: Library</td>
|
|
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB</td>
|
|
</tr><tr>
|
|
<td valign="top" rowspan="3"><a href="#ADDRTGE.CLS"><b>CLS</b></a></td>
|
|
<td valign="top">Class</td>
|
|
<td valign="top">Single values: <b><u>*SBSD</u></b><br>Other values: <i>Qualified object name</i></td>
|
|
<td valign="top" rowspan="3">Optional</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">Qualifier 1: Class</td>
|
|
<td valign="top"><i>Name</i></td>
|
|
</tr><tr>
|
|
<td valign="top">Qualifier 2: Library</td>
|
|
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB</td>
|
|
</tr><tr>
|
|
<td valign="top"><a href="#ADDRTGE.MAXACT"><b>MAXACT</b></a></td>
|
|
<td valign="top">Maximum active routing steps</td>
|
|
<td valign="top">0-1000, <b><u>*NOMAX</u></b></td>
|
|
<td valign="top">Optional</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top"><a href="#ADDRTGE.POOLID"><b>POOLID</b></a></td>
|
|
<td valign="top">Storage pool identifier</td>
|
|
<td valign="top">1-10, <b><u>1</u></b></td>
|
|
<td valign="top">Optional</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" rowspan="3"><a href="#ADDRTGE.THDRSCAFN"><b>THDRSCAFN</b></a></td>
|
|
<td valign="top">Thread resources affinity</td>
|
|
<td valign="top">Single values: <b><u>*SYSVAL</u></b><br>Other values: <i>Element list</i></td>
|
|
<td valign="top" rowspan="3">Optional</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">Element 1: Group</td>
|
|
<td valign="top">
|
|
*NOGROUP, *GROUP</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top">Element 2: Level</td>
|
|
<td valign="top">
|
|
*NORMAL, *HIGH</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top"><a href="#ADDRTGE.RSCAFNGRP"><b>RSCAFNGRP</b></a></td>
|
|
<td valign="top">Resources affinity group</td>
|
|
<td valign="top"><b><u>*NO</u></b>, *YES</td>
|
|
<td valign="top">Optional</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<table width="100%">
|
|
<tr><td align="right"><a href="#ADDRTGE.Top_Of_Page">Top</a></td></tr>
|
|
</table>
|
|
</div>
|
|
<div> <a name="ADDRTGE.SBSD"></a>
|
|
<h3>Subsystem description (SBSD)</h3>
|
|
<p>Specifies the name and library of the subsystem description to which the routing entry is added.
|
|
</p>
|
|
<p>This is a required parameter.
|
|
</p>
|
|
<p><b>Qualifier 1: Subsystem description</b>
|
|
</p>
|
|
<dl>
|
|
<dt><b><i>name</i></b></dt>
|
|
<dd>Specify the name of the subsystem description to which the routing entry is added.
|
|
</dd>
|
|
</dl>
|
|
<p><b>Qualifier 2: Library</b>
|
|
</p>
|
|
<dl>
|
|
<dt><b><u>*LIBL</u></b></dt>
|
|
<dd>All libraries in the thread's library list are searched until a match is found.
|
|
</dd>
|
|
<dt><b>*CURLIB</b></dt>
|
|
<dd>The current library for the thread is used to locate the object. If no library is specified as the current library for the thread, the QGPL library is used.
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt><b><i>name</i></b></dt>
|
|
<dd>Specify the name of the subsystem description's library to which the routing entry is being added.
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<table width="100%">
|
|
<tr><td align="right"><a href="#ADDRTGE.Top_Of_Page">Top</a></td></tr>
|
|
</table>
|
|
<div> <a name="ADDRTGE.SEQNBR"></a>
|
|
<h3>Routing entry sequence number (SEQNBR)</h3>
|
|
<p>Specifies the sequence number of the routing entry that is added or changed. Routing data is matched against the routing entry compare values in ascending sequence number order. Searching ends when a match occurs or the last routing entry is reached. Therefore, if more than one match possibility exists, only the first match is processed.
|
|
</p>
|
|
<p>This is a required parameter.
|
|
</p>
|
|
<dl>
|
|
<dt><b><i>1-9999</i></b></dt>
|
|
<dd>Specify a sequence number between 1 and 9999.
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<table width="100%">
|
|
<tr><td align="right"><a href="#ADDRTGE.Top_Of_Page">Top</a></td></tr>
|
|
</table>
|
|
<div> <a name="ADDRTGE.CMPVAL"></a>
|
|
<h3>Comparison data (CMPVAL)</h3>
|
|
<p>Specifies a value that is compared with the routing data to determine whether this routing entry is used for starting a routing step for the job. If the routing data matches the routing entry compare value, that routing entry is used. A starting position in the starting data character string can be used to specify the starting position in the routing data for comparison against the routing entry compare value.
|
|
</p>
|
|
<p>This is a required parameter.
|
|
</p>
|
|
<p><b>Single values</b>
|
|
</p>
|
|
<dl>
|
|
<dt><b>*ANY</b></dt>
|
|
<dd>Any routing data is considered a match. To specify *ANY, the routing entry must have the highest sequence number value of any routing entry in the subsystem description.
|
|
</dd>
|
|
</dl>
|
|
<p><b>Element 1: Compare value</b>
|
|
</p>
|
|
<dl>
|
|
<dt><b><i>character-value</i></b></dt>
|
|
<dd>Specify a value (any character string not exceeding 80 characters) that is compared with routing data for a match. When a match occurs, this routing entry is used to start a routing step.
|
|
</dd>
|
|
</dl>
|
|
<p><b>Element 2: Starting position</b>
|
|
</p>
|
|
<dl>
|
|
<dt><b><u>1</u></b></dt>
|
|
<dd>The comparison between the compare value and the routing data begins with the first character in the routing data character string.
|
|
</dd>
|
|
<dt><b><i>1-80</i></b></dt>
|
|
<dd>Specify a value, 1 through 80, that indicates which position in the routing data character string is the starting position for the comparison. The last character position compared must be less than or equal to the length of the routing data used in the comparison.
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<table width="100%">
|
|
<tr><td align="right"><a href="#ADDRTGE.Top_Of_Page">Top</a></td></tr>
|
|
</table>
|
|
<div> <a name="ADDRTGE.PGM"></a>
|
|
<h3>Program to call (PGM)</h3>
|
|
<p>Specifies the name and library of the program called as the first program run in the routing step. No parameters can be passed to the specified program. The program name can be either explicitly specified in the routing entry, or extracted from the routing data. If a program name is specified in a routing entry, selection of that routing entry results in the routing entry program being called (regardless of the program name passed in an EVOKE function). If the program specified in the EVOKE function is called, *RTGDTA must be specified. If the program does not exist when the routing entry is added or changed, a library qualifier must be specified because the qualified program name is kept in the subsystem description.
|
|
</p>
|
|
<p>This is a required parameter.
|
|
</p>
|
|
<p><b>Single values</b>
|
|
</p>
|
|
<dl>
|
|
<dt><b>*RTGDTA</b></dt>
|
|
<dd>The program name is taken from the routing data that was supplied and matched against this entry. A qualified program name is taken from the routing data in the following manner: the program name is taken from positions 37 through 46, and the library name is taken from positions 47 through 56. Care should be used to ensure that routing entries that specify *RTGDTA are selected only for EVOKE functions on jobs that have specified the program name in the correct position in the routing data.
|
|
</dd>
|
|
</dl>
|
|
<p><b>Qualifier 1: Program to call</b>
|
|
</p>
|
|
<dl>
|
|
<dt><b><i>name</i></b></dt>
|
|
<dd>Specify the name of the program that is run from this routing entry.
|
|
</dd>
|
|
</dl>
|
|
<p><b>Qualifier 2: Library</b>
|
|
</p>
|
|
<dl>
|
|
<dt><b><u>*LIBL</u></b></dt>
|
|
<dd>All libraries in the thread's library list are searched until a match is found.
|
|
</dd>
|
|
<dt><b>*CURLIB</b></dt>
|
|
<dd>The current library for the thread is used to locate the object. If no library is specified as the current library for the thread, the QGPL library is used.
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt><b><i>name</i></b></dt>
|
|
<dd>Specify the library where the named program is located.
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<table width="100%">
|
|
<tr><td align="right"><a href="#ADDRTGE.Top_Of_Page">Top</a></td></tr>
|
|
</table>
|
|
<div> <a name="ADDRTGE.CLS"></a>
|
|
<h3>Class (CLS)</h3>
|
|
<p>Specifies the name and library of the class used for the routing steps started through this routing entry. The class defines the attributes of the routing step's running environment. If the class does not exist when the routing entry is added, a library qualifier must be specified because the qualified class name is kept in the subsystem description.
|
|
</p>
|
|
<p><b>Single values</b>
|
|
</p>
|
|
<dl>
|
|
<dt><b><u>*SBSD</u></b></dt>
|
|
<dd>The class having the same qualified name as the subsystem description, specified on the <b>Subsystem description (SBSD)</b> parameter is used for routing steps started through this entry.
|
|
</dd>
|
|
</dl>
|
|
<p><b>Qualifier 1: Class</b>
|
|
</p>
|
|
<dl>
|
|
<dt><b><i>name</i></b></dt>
|
|
<dd>Specify the name of the class used for routing steps started through this entry.
|
|
</dd>
|
|
</dl>
|
|
<p><b>Qualifier 2: Library</b>
|
|
</p>
|
|
<dl>
|
|
<dt><b><u>*LIBL</u></b></dt>
|
|
<dd>All libraries in the thread's library list are searched until a match is found.
|
|
</dd>
|
|
<dt><b>*CURLIB</b></dt>
|
|
<dd>The current library for the thread is used to locate the object. If no library is specified as the current library for the thread, the QGPL library is used.
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt><b><i>name</i></b></dt>
|
|
<dd>Specify the library name of the class used for routing steps started through this entry.
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<table width="100%">
|
|
<tr><td align="right"><a href="#ADDRTGE.Top_Of_Page">Top</a></td></tr>
|
|
</table>
|
|
<div> <a name="ADDRTGE.MAXACT"></a>
|
|
<h3>Maximum active routing steps (MAXACT)</h3>
|
|
<p>Specifies the maximum number of routing steps (jobs) that can be active at the same time through this routing entry. In a job, only one routing step is active at a time. When a subsystem is active and the maximum number of routing steps is reached, any subsequent attempt to start a routing step through this routing entry fails. The job that attempted to start the routing step is ended, and a message is sent by the subsystem to the job's log.
|
|
</p>
|
|
<dl>
|
|
<dt><b><u>*NOMAX</u></b></dt>
|
|
<dd>There is no maximum number of routing steps that can be active at the same time and processed through this routing entry. This value is normally used when there is no reason to control the number of routing steps.
|
|
</dd>
|
|
<dt><b><i>0-1000</i></b></dt>
|
|
<dd>Specify the maximum number of routing steps that can be active at the same time through this routing entry. If a routing step being started would exceed this number, the job is ended.
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<table width="100%">
|
|
<tr><td align="right"><a href="#ADDRTGE.Top_Of_Page">Top</a></td></tr>
|
|
</table>
|
|
<div> <a name="ADDRTGE.POOLID"></a>
|
|
<h3>Storage pool identifier (POOLID)</h3>
|
|
<p>Specifies the pool identifier of the storage pool in which the program runs. The pool identifier specified here relates to the storage pools in the subsystem description.
|
|
</p>
|
|
<dl>
|
|
<dt><b><u>1</u></b></dt>
|
|
<dd>Storage pool 1 of this subsystem is the pool in which the program runs.
|
|
</dd>
|
|
<dt><b><i>1-10</i></b></dt>
|
|
<dd>Specify the identifier of the storage pool defined for this subsystem in which the program runs.
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<table width="100%">
|
|
<tr><td align="right"><a href="#ADDRTGE.Top_Of_Page">Top</a></td></tr>
|
|
</table>
|
|
<div> <a name="ADDRTGE.THDRSCAFN"></a>
|
|
<h3>Thread resources affinity (THDRSCAFN)</h3>
|
|
<p>Specifies the affinity of threads to system resources.
|
|
</p>
|
|
<p><b>Element 1: Group</b>
|
|
</p>
|
|
<p><b>Single values</b>
|
|
</p>
|
|
<dl>
|
|
<dt><b><u>*SYSVAL</u></b></dt>
|
|
<dd>When a job is started using this routing entry, the thread resources affinity value from the QTHDRSCAFN system value will be used.
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt><b>*NOGROUP</b></dt>
|
|
<dd>Jobs using this routing entry will have affinity to a group of processors and memory. Secondary threads running under the job will not necessarily have affinity to the same group of processors and memory.
|
|
</dd>
|
|
<dt><b>*GROUP</b></dt>
|
|
<dd>Jobs using this routing entry will have affinity to a group of processors and memory. Secondary threads running under the job will all have affinity to the same group of processors and memory as the initial thread.
|
|
</dd>
|
|
</dl>
|
|
<p><b>Element 2: Level</b>
|
|
</p>
|
|
<dl>
|
|
<dt><b>*NORMAL</b></dt>
|
|
<dd>A thread will use any processor or memory if the resources it has affinity to are not readily available.
|
|
</dd>
|
|
<dt><b>*HIGH</b></dt>
|
|
<dd>A thread will only use the resources it has affinity to, and will wait until they become available if necessary.
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<table width="100%">
|
|
<tr><td align="right"><a href="#ADDRTGE.Top_Of_Page">Top</a></td></tr>
|
|
</table>
|
|
<div> <a name="ADDRTGE.RSCAFNGRP"></a>
|
|
<h3>Resources affinity group (RSCAFNGRP)</h3>
|
|
<p>Specifies whether or not jobs using this routing entry will be grouped together having affinity to the same system resources (processors and memory). A value of *YES for this parameter will take precedence over the QTHDRSCAFN system value when set to *NOGROUP.
|
|
</p>
|
|
<dl>
|
|
<dt><b><u>*NO</u></b></dt>
|
|
<dd>Jobs that use this routing entry will not be grouped together.
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt><b>*YES</b></dt>
|
|
<dd>Jobs that use this routing entry will be grouped together such that they will have affinity to the same system resources. Jobs that share data in memory may perform better if they have affinity to the same resources.
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<table width="100%">
|
|
<tr><td align="right"><a href="#ADDRTGE.Top_Of_Page">Top</a></td></tr>
|
|
</table>
|
|
<hr size="2" width="100%">
|
|
<div><h3><a name="ADDRTGE.COMMAND.EXAMPLES">Examples</a> </h3>
|
|
<p><b>Example 1: Adding to the Routing Portion of a Subsystem Description</b>
|
|
</p>
|
|
<p>
|
|
<pre>
|
|
ADDRTGE SBSD(ORDLIB/PERT) SEQNBR(46) CMPVAL(WRKSTN2)
|
|
PGM(ORDLIB/GRAPHIT) CLS(MYLIB/AZERO) MAXACT(*NOMAX)
|
|
POOLID(2)
|
|
</pre>
|
|
</p>
|
|
<p>This command adds routing entry 46 to the subsystem description PERT in the ORDLIB library. To use routing entry 46, the routing data must start with the character string WRKSTN2 starting in position 1. Any number of routing steps can be active through this entry at any one time. The program GRAPHIT in the library ORDLIB is to run in storage pool 2 by using class AZERO in library MYLIB.
|
|
</p>
|
|
<p><b>Example 2: Adding to the Subsystem Description</b>
|
|
</p>
|
|
<p>
|
|
<pre>
|
|
ADDRTGE SBSD(QGPL/ABLE) SEQNBR(5) CMPVAL(XYZ)
|
|
PGM(QGPL/REORD) CLS(LIBX/MYCLASS) MAXACT(*NOMAX)
|
|
</pre>
|
|
</p>
|
|
<p>This command adds routing entry 5 to the subsystem description ABLE in the QGPL library. The program REORD in library QGPL is started and uses the class MYCLASS in LIBX when a compare value of XYZ (starting in position 1) is matched in the routing data. The program runs in storage pool 1, and there is no maximum on the number of active routing steps allowed.
|
|
</p>
|
|
</div>
|
|
<table width="100%">
|
|
<tr><td align="right"><a href="#ADDRTGE.Top_Of_Page">Top</a></td></tr>
|
|
</table>
|
|
<hr size="2" width="100%">
|
|
<div><h3><a name="ADDRTGE.ERROR.MESSAGES">Error messages</a> </h3>
|
|
<p><b><u>*ESCAPE Messages</u></b>
|
|
</p>
|
|
<dl>
|
|
<dt><b>CPF1619</b></dt>
|
|
<dd>Subsystem description &1 in library &2 damaged.
|
|
</dd>
|
|
<dt><b>CPF1691</b></dt>
|
|
<dd>Active subsystem description may or may not have changed.
|
|
</dd>
|
|
<dt><b>CPF1697</b></dt>
|
|
<dd>Subsystem description &1 not changed.
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<table width="100%">
|
|
<tr><td align="right"><a href="#ADDRTGE.Top_Of_Page">Top</a></td></tr>
|
|
</table>
|
|
</body>
|
|
</html>
|