ibm-information-center/dist/eclipse/plugins/i5OS.ic.cl_5.4.0.1/updsrvpgm.htm

633 lines
27 KiB
HTML
Raw Permalink Normal View History

2024-04-02 14:02:31 +00:00
<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Update Service Program (UPDSRVPGM)</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="UPDSRVPGM.Top_Of_Page"></a>
<h2>Update Service Program (UPDSRVPGM)</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="#UPDSRVPGM.PARAMETERS.TABLE">Parameters</a><br>
<a href="#UPDSRVPGM.COMMAND.EXAMPLES">Examples</a><br>
<a href="#UPDSRVPGM.ERROR.MESSAGES">Error messages</a></td>
</tr>
</table>
<div> <a name="UPDSRVPGM"></a>
<p>The Update Service Program (UPDSRVPGM) command can be used to replace modules of an Integrated Language Environment (ILE) bound service program with other modules on the system, without requiring you to change or recompile the bound service program. Modules being replaced must be module objects (*MODULE) on the system.
</p>
<p>Other jobs running the bound service program can run while the service program is being updated with this command. The currently running service program is moved to library QRPLOBJ and an updated version of the service program will be inserted into the library of the service program. Current activations of the service program will continue running using the version of the service program in the QRPLOBJ library
</p>
<p><b>Restrictions:</b>
</p>
<ul>
<li>You must have use (*USE) and add (*ADD) authorities to the library of the service program.
</li>
<li>You must have *USE, object management (*OBJMGT), and object existence (*OBJEXIST) authorities to the service program.
</li>
<li>You must be the owner of the service program, or a member of a group who is the owner of the service program, or be a user with all object (*ALLOBJ) special authority.
</li>
<li>You must have *USE authority to the following:
<ul>
<li>*MODULE objects specified on the <b>Module (MODULE)</b> parameter, and execute (*EXECUTE) authority to the library that the module resides in.
</li>
<li>*SRVPGM objects specified on the <b>Bind service program (BNDSRVPGM)</b> parameter.
</li>
<li>*BNDDIR objects specified on the <b>Binding directory (BNDDIR)</b> parameter, and *EXECUTE authority to the library, and all objects used to resolve external symbols for these *BNDDIR objects, and their libraries.
</li>
<li>Object operational (*OBJOPR) and read (*READ) authorities to the file specified for the <b>Export source file (SRCFILE)</b> parameter.
</li>
</ul>
</li>
</ul>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div>
<h3><a name="UPDSRVPGM.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="#UPDSRVPGM.SRVPGM"><b>SRVPGM</b></a></td>
<td valign="top">Service program</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: Service program</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>*USRLIBL</u></b>, *CURLIB</td>
</tr><tr>
<td valign="top" rowspan="3"><a href="#UPDSRVPGM.MODULE"><b>MODULE</b></a></td>
<td valign="top">Module</td>
<td valign="top">Single values: *NONE<br>Other values (up to 300 repetitions): <i>Qualified object name</i></td>
<td valign="top" rowspan="3">Required, Positional 2</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Module</td>
<td valign="top"><i>Generic name, name</i>, *ALL</td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB, *USRLIBL</td>
</tr><tr>
<td valign="top"><a href="#UPDSRVPGM.EXPORT"><b>EXPORT</b></a></td>
<td valign="top">Export</td>
<td valign="top"><b><u>*CURRENT</u></b>, *SRCFILE, *ALL</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#UPDSRVPGM.SRCFILE"><b>SRCFILE</b></a></td>
<td valign="top">Export source file</td>
<td valign="top"><i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Export source file</td>
<td valign="top"><i>Name</i>, <b><u>QSRVSRC</u></b></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="#UPDSRVPGM.SRCMBR"><b>SRCMBR</b></a></td>
<td valign="top">Export source member</td>
<td valign="top"><i>Name</i>, <b><u>*SRVPGM</u></b></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="2"><a href="#UPDSRVPGM.RPLLIB"><b>RPLLIB</b></a></td>
<td valign="top">Replacement library</td>
<td valign="top">Single values: <b><u>*ONLY</u></b>, *FIRST, *MODULE<br>Other values: <i>Qualifier list</i></td>
<td valign="top" rowspan="2">Optional</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Replacement library</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top" rowspan="3"><a href="#UPDSRVPGM.BNDSRVPGM"><b>BNDSRVPGM</b></a></td>
<td valign="top">Bind service program</td>
<td valign="top">Single values: <b><u>*NONE</u></b><br>Other values (up to 300 repetitions): <i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Bind service program</td>
<td valign="top"><i>Generic name, name</i>, *ALL</td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b></td>
</tr><tr>
<td valign="top" rowspan="2"><a href="#UPDSRVPGM.SRVPGMLIB"><b>SRVPGMLIB</b></a></td>
<td valign="top">Bound *SRVPGM library name</td>
<td valign="top">Single values: <b><u>*SAME</u></b>, *LIBL<br>Other values: <i>Qualifier list</i></td>
<td valign="top" rowspan="2">Optional</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Bound *SRVPGM library name</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top" rowspan="3"><a href="#UPDSRVPGM.BNDDIR"><b>BNDDIR</b></a></td>
<td valign="top">Binding directory</td>
<td valign="top">Single values: <b><u>*NONE</u></b><br>Other values (up to 300 repetitions): <i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Binding directory</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, *USRLIBL</td>
</tr><tr>
<td valign="top"><a href="#UPDSRVPGM.ACTGRP"><b>ACTGRP</b></a></td>
<td valign="top">Activation group</td>
<td valign="top"><i>Name</i>, <b><u>*SAME</u></b></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#UPDSRVPGM.OPTION"><b>OPTION</b></a></td>
<td valign="top">Creation options</td>
<td valign="top">Values (up to 6 repetitions): *GEN, *NOGEN, *DUPPROC, *NODUPPROC, *DUPVAR, *NODUPVAR, *WARN, *NOWARN, *TRIM, *NOTRIM, *RSLVREF, *UNRSLVREF</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#UPDSRVPGM.DETAIL"><b>DETAIL</b></a></td>
<td valign="top">Listing detail</td>
<td valign="top"><b><u>*NONE</u></b>, *BASIC, *EXTENDED, *FULL</td>
<td valign="top">Optional</td>
</tr>
</table>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
</div>
<div> <a name="UPDSRVPGM.SRVPGM"></a>
<h3>Service program (SRVPGM)</h3>
<p>Specifies the service program that is to be updated.
</p>
<p>This is a required parameter.
</p>
<p><b>Qualifier 1: Service program</b>
</p>
<dl>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the bound service program that is to be updated.
</dd>
</dl>
<p><b>Qualifier 2: Library</b>
</p>
<dl>
<dt><b><u>*USRLIBL</u></b></dt>
<dd>Only the libraries in the user portion of the job's library list are searched.
</dd>
<dt><b>*CURLIB</b></dt>
<dd>The current library for the job is searched. If no library is specified as the current library for the job, the QGPL library is used.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the library where the bound service program is located.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="UPDSRVPGM.MODULE"></a>
<h3>Module (MODULE)</h3>
<p>Specifies the existing *MODULE objects that are to replace the modules of the same name in the bound program. Up to 300 names can be specified. If two or more modules of the bound program have the same name, the <b>Replacement library (RPLLIB)</b> parameter indicates which is to be replaced.
</p>
<p>If the library of the module being replaced is different from the library of the replacing module, the module's library after the update will remain the library the module was in when the service program was first created. If the RPLLIB parameter is required to determine which module to replace, the value to be entered in the RPLLIB parameter for this module will not change due to the update.
</p>
<p>This is a required parameter.
</p>
<p><b>Single values</b>
</p>
<dl>
<dt><b>*NONE</b></dt>
<dd>No modules are specified.
<p>
<b>Note: </b>This value can be specified when the module is not changing, but you are updating the service program (the BNDSRVPGM parameter) or the binding directory (BNDDIR parameter) to examine for exports. The existing module is used.
</p>
</dd>
</dl>
<p><b>Qualifier 1: Module</b>
</p>
<dl>
<dt><b>*ALL</b></dt>
<dd>All modules of the same name to which the user has authority replace the modules of the bound service program.
</dd>
<dt><b><i>generic-name</i></b></dt>
<dd>Specify the generic name of the modules that replace the modules of the bound program. A generic name is a character string of one or more characters followed by an asterisk (*); for example, ABC*. All modules with names that begin with the generic name, and for which the user has authority, replace the modules of the bound service program.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the module that replaces a module of the bound service program.
</dd>
</dl>
<p><b>Qualifier 2: Library</b>
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>All libraries in the library list for the current thread are searched until the first match is found.
</dd>
</dl>
<dl>
<dt><b>*CURLIB</b></dt>
<dd>The current library for the job is searched. If no library is specified as the current library for the job, the QGPL library is used.
</dd>
<dt><b>*USRLIBL</b></dt>
<dd>Only the libraries in the user portion of the job's library list are searched.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the library to be searched.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="UPDSRVPGM.EXPORT"></a>
<h3>Export (EXPORT)</h3>
<p>Specifies the variables and procedures that are to be exported from the updated service program. This parameter also specifies whether new signatures identifying the sequence of exports in the service program are created.
</p>
<dl>
<dt><b><u>*CURRENT</u></b></dt>
<dd>The variables, procedures, and signatures currently exported from the service program continue to be exported. No new signatures are created.
<p>
<b>Note: </b>If a variable or procedure that is currently exported is not available for export after the update, an exception is signaled and the service program is not updated.
</p>
</dd>
<dt><b>*SRCFILE</b></dt>
<dd>The source file member identified by the <b>Source file (SRCFILE)</b> and <b>Source member (SRCMBR)</b> parameters contains EXPORT statements that identify the data and procedures to export from the service program. If the specified source file differs from the one used to create the service program, a new signature or set of signatures may be created.
<p>
<b>Note: </b>If a signature is lost, some current clients of the service program may not be able to use the service program without binding again.
</p>
</dd>
<dt><b>*ALL</b></dt>
<dd>All variables and procedures exported from the modules of the service program are exported from the updated service program.
<p>If the number or names of the variables and procedures exported before the service program update differs from those exported after the service program update, a new signature is created.
</p>
<p>
<b>Note: </b>If a new signature is created, all clients of the service program must be bound again before they can use the service program.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="UPDSRVPGM.SRCFILE"></a>
<h3>Export source file (SRCFILE)</h3>
<p>Specifies the source file containing the specifications for exporting variables and procedures from this bound service program.
</p>
<p><b>Qualifier 1: Export source file</b>
</p>
<dl>
<dt><b><u>QSRVSRC</u></b></dt>
<dd>The source file name is QSRVSRC.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the source file containing the specifications for exporting variables and procedures.
</dd>
</dl>
<p><b>Qualifier 2: Library</b>
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>All libraries in the library list for the current thread are searched until the first match is found.
</dd>
</dl>
<dl>
<dt><b>*CURLIB</b></dt>
<dd>The current library for the job is searched. If no library is specified as the current library for the job, the QGPL library is used.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the library to be searched.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="UPDSRVPGM.SRCMBR"></a>
<h3>Export source member (SRCMBR)</h3>
<p>Specifies the member in the file specified for the <b>Export source file (SRCFILE)</b> parameter that contains the specifications for exporting variables and procedures from this bound service program.
</p>
<dl>
<dt><b><u>*SRVPGM</u></b></dt>
<dd>The source file member has the same name as the service program being updated.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the member that contains the specifications for exporting.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="UPDSRVPGM.RPLLIB"></a>
<h3>Replacement library (RPLLIB)</h3>
<p>Specifies the method used to select the module to be replaced when two or more modules of the bound program have the name specified on the MODULE parameter.
</p>
<dl>
<dt><b><u>*ONLY</u></b></dt>
<dd>The bound service program contains only one module of the specified name and it is replaced. If two or more modules of the bound service program have the specified name, an exception is signaled and the bound service program is not updated.
</dd>
<dt><b>*FIRST</b></dt>
<dd>The first module of the specified name in the module list of the bound service program is replaced.
</dd>
<dt><b>*MODULE</b></dt>
<dd>The module that originated from the same library as the specified module is replaced. If no module of the specified name originally came from the same library as the replacing module, no module is replaced and an exception is signaled.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the originating library of the module to be selected for replacement. If no module of the specified name originated in the specified library, no module is replaced.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="UPDSRVPGM.BNDSRVPGM"></a>
<h3>Bind service program (BNDSRVPGM)</h3>
<p>Specifies the service program to examine for exports if import requests to resolve external symbols cannot be met by the modules and service programs of the updated bound service program. If the specified service program can resolve external symbols, it is added to the service programs that are bound to the bound service program. Up to 300 names can be specified.
</p>
<p><b>Single values</b>
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>No service programs, except those in the bound service program being updated, are examined during symbol resolution.
</dd>
</dl>
<p><b>Qualifier 1: Bind service program</b>
</p>
<dl>
<dt><b>*ALL</b></dt>
<dd>All service programs are examined during symbol resolution.
</dd>
<dt><b><i>generic-name</i></b></dt>
<dd>Specify the generic name of the service programs to examine during symbol resolution. A generic name is a character string of one or more characters followed by an asterisk (*); for example, ABC*. All service programs with names that begin with the generic name, and for which the user has authority, are examined during symbol resolution.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the service program to examine during symbol resolution.
</dd>
</dl>
<p><b>Qualifier 2: Library</b>
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>All libraries in the library list for the current thread are searched until the first match is found.
</dd>
</dl>
<dl>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the library to be searched. QTEMP is not a valid library name for this parameter.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="UPDSRVPGM.SRVPGMLIB"></a>
<h3>Bound *SRVPGM library name (SRVPGMLIB)</h3>
<p>Specifies the library name used to resolve to currently bound service programs. A value other than *SAME for this parameter can be specified if the program attribute ALWLIBUPD is *YES.
</p>
<dl>
<dt><b><u>*SAME</u></b></dt>
<dd>Use the library name where the service program (*SRVPGM) is currently bound from.
</dd>
<dt><b>*LIBL</b></dt>
<dd>All libraries in the job's library list are searched until the first match is found for each bound *SRVPGM. The first occurrence of a *SRVPGM is used to resolve to currently bound service programs and *LIBL is saved to be used at run time. If no match is found in the job's library list, the *SRVPGM currently bound to the program is used. You must have *USE authority to the *SRVPGM objects in the library specified and *EXECUTE authority to the library itself.
<p>
<b>Note: </b>The service programs that came from the implicit binding directories (system-supplied service programs) are not changed.
</p>
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the library to be used first to resolve to all currently bound service programs. If a bound *SRVPGM does exist in the library specified on SRVPGMLIB parameter, that *SRVPGM from that library is used instead of the currently bound *SRVPGM and the library name specified on the SRVPGMLIB parameter is saved to be used at run time. If a *SRVPGM does not exist in the library specified on the SRVPGMLIB parameter, the *SRVPGM currently bound to the program is used. You must have *USE authority to the *SRVPGM objects in the library specified and *EXECUTE authority to the library itself.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="UPDSRVPGM.BNDDIR"></a>
<h3>Binding directory (BNDDIR)</h3>
<p>Specifies the binding directory to examine for exports if import requests to resolve external symbols cannot be met by (1) the modules and service programs of the updated bound program or by (2) the service program specified on the BNDSRVPGM parameter. If a module or service program listed in the specified binding directory can resolve external symbols, it is added to the modules or service programs that are bound to the bound service program. Up to 300 names can be specified.
</p>
<p><b>Single values</b>
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>No binding directories, except those in the bound service program being updated, are examined during symbol resolution.
</dd>
</dl>
<p><b>Qualifier 1: Binding directory</b>
</p>
<dl>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the binding directory to be used during symbol resolution.
</dd>
</dl>
<p><b>Qualifier 2: Library</b>
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>All libraries in the library list for the current thread are searched until the first match is found.
</dd>
</dl>
<dl>
<dt><b>*CURLIB</b></dt>
<dd>The current library for the job is searched. If no library is specified as the current library for the job, the QGPL library is used.
</dd>
<dt><b>*USRLIBL</b></dt>
<dd>Only the libraries in the user portion of the job's library list are searched.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the library to be searched.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="UPDSRVPGM.ACTGRP"></a>
<h3>Activation group (ACTGRP)</h3>
<p>Specifies the activation group to be used for the updated service program.
</p>
<dl>
<dt><b><u>*SAME</u></b></dt>
<dd>The activation group is not changed. Specify this value if the service program was given *CALLER activation group at the time it was created.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the activation group that is associated with this called service program. If the service program was given a named activation group at the time it was created, the name of that activation group can be changed to another named activation group.
<p>
<b>Note: </b>Changing the activation group name can affect the behavior of the program (or service program). Refer to the ILE Concepts book, SC41-5606 for detailed information on the behavior of named activation groups.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="UPDSRVPGM.OPTION"></a>
<h3>Creation options (OPTION)</h3>
<p>Specifies the options to be used when the service program object is updated.
</p>
<p>You can specify up to 6 values for this parameter.
</p>
<p><b>Creating Program Objects</b>
</p>
<dl>
<dt><b><u>*GEN</u></b></dt>
<dd>An updated program object is created.
</dd>
<dt><b>*NOGEN</b></dt>
<dd>An updated program object is not created.
</dd>
</dl>
<p><b>Duplicate Procedure Names</b>
</p>
<dl>
<dt><b><u>*DUPPROC</u></b></dt>
<dd>During symbol resolution, the procedures that are exported from the modules and service programs need not be unique. The first procedure of the specified modules and service programs that matches the import request is exported.
</dd>
<dt><b>*NODUPPROC</b></dt>
<dd>During symbol resolution, each procedure that is exported from the modules and service programs must be unique.
</dd>
</dl>
<p><b>Duplicate Variable Names</b>
</p>
<dl>
<dt><b><u>*DUPVAR</u></b></dt>
<dd>During symbol resolution, the variables that are exported from the modules and service programs need not be unique. The first variable of the specified modules and programs that matches the import request is exported.
</dd>
<dt><b>*NODUPVAR</b></dt>
<dd>During symbol resolution, each variable that is exported from the modules and service programs must be unique.
</dd>
</dl>
<p><b>Issuing Diagnostic Messages</b>
</p>
<dl>
<dt><b><u>*WARN</u></b></dt>
<dd>The appropriate diagnostic messages are signaled. Also, if you specify duplicate procedures or variables (*DUPPROC or *DUPVAR) and duplicates are found, a diagnostic message is issued indicating what duplicates were found.
</dd>
<dt><b>*NOWARN</b></dt>
<dd>No information or diagnostic messages are issued.
</dd>
</dl>
<p><b>Trimming Marooned Modules</b>
</p>
<p>A <b>marooned module</b> is a module of the bound program being updated. This module was originally bound into the bound program from a binding directory to resolve one or more imports. Imports are not resolved for this program update.
</p>
<dl>
<dt><b><u>*NOTRIM</u></b></dt>
<dd>Marooned modules are not removed from the bound program.
<p>
<b>Note: </b>Bound service programs may grow significantly over time when *NOTRIM is specified.
</p>
</dd>
<dt><b>*TRIM</b></dt>
<dd>Marooned modules are removed from the bound program.
<p>
<b>Note: </b>If marooned modules are removed from the bound program during this program update, the exports that the modules contain are not available for other program updates.
</p>
</dd>
</dl>
<p><b>Resolving References (Imports)</b>
</p>
<dl>
<dt><b><u>*RSLVREF</u></b></dt>
<dd>All imports must resolve to exports for the bound service program to be updated.
</dd>
<dt><b>*UNRSLVREF</b></dt>
<dd>All imports do not need to resolve to exports for the bound service program to be updated.
<p>
<b>Note: </b>If this command contains an import that does not resolve, an exception will be generated when the command is run.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="UPDSRVPGM.DETAIL"></a>
<h3>Listing detail (DETAIL)</h3>
<p>Specifies the level of detail of the binder listing to be printed. The printer file *LIBL/QSYSPRT is used to create the listing.
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>No binder listing is printed.
</dd>
<dt><b>*BASIC</b></dt>
<dd>The brief summary table, the options passed to this command, and some processing statistics are printed.
</dd>
<dt><b>*EXTENDED</b></dt>
<dd>The extended summary table and the binding information listing are printed, in addition to the information provided in the *BASIC listing (the brief summary table, the options passed to this command, and some processing statistics).
</dd>
<dt><b>*FULL</b></dt>
<dd>The cross-reference listing is printed, in addition to the information provided in the *EXTENDED listing (the extended summary table, the binding information listing, the brief summary table, the options passed to this command, and some processing statistics).
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="UPDSRVPGM.COMMAND.EXAMPLES">Examples</a> </h3>
<p>
<pre>
UPDSRVPGM SRVPGM(WORKDOC) MODULE(BIN/TASKTWO)
RPLLIB(*MODULE)
</pre>
</p>
<p>This command replaces the module named TASKTWO in the service program object named WORKDOC with another module named TASKTWO in the library BIN, only if the module being replaced was originally from the library BIN.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="UPDSRVPGM.ERROR.MESSAGES">Error messages</a> </h3>
<p><b><u>*ESCAPE Messages</u></b>
</p>
<dl>
<dt><b>CPF223D</b></dt>
<dd>Not authorized to update &amp;1 in &amp;2 type *&amp;3.
</dd>
<dt><b>CPF223E</b></dt>
<dd>Authority check for use adopted authority attribute failed.
</dd>
<dt><b>CPF5CA7</b></dt>
<dd>SRVPGMLIB must be *SAME when ALWLIBUPD is *NO.
</dd>
<dt><b>CPF5CE1</b></dt>
<dd>Service program &amp;1 not updated.
</dd>
<dt><b>CPF5CE2</b></dt>
<dd>Unexpected error occurred during program or service program update.
</dd>
<dt><b>CPF5D1C</b></dt>
<dd>Update of service program &amp;1 in library &amp;2 not allowed.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#UPDSRVPGM.Top_Of_Page">Top</a></td></tr>
</table>
</body>
</html>