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

466 lines
17 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">
<title>Change Module (CHGMOD)</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="CHGMOD.Top_Of_Page"></a>
<h2>Change Module (CHGMOD)</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="#CHGMOD.PARAMETERS.TABLE">Parameters</a><br>
<a href="#CHGMOD.COMMAND.EXAMPLES">Examples</a><br>
<a href="#CHGMOD.ERROR.MESSAGES">Error messages</a></td>
</tr>
</table>
<div> <a name="CHGMOD"></a>
<p>The Change Module (CHGMOD) command changes the attributes of a module object without requiring the module to be recompiled.
</p>
<p><b>Restrictions:</b>
</p>
<ul>
<li>You must have use (*USE) authority to the library where the module is located.
</li>
<li>You must have *USE and object management (*OBJMGT) authorities to the module to be changed.
</li>
<li>You must have *USE, add (*ADD), and delete (*DLT) authorities to the library in order to change the optimization attribute, the performance collection attribute, the profiling data attribute, or to force module re-creation.
</li>
<li>Modules in library QSYS cannot be changed.
</li>
</ul>
</div>
<table width="100%">
<tr><td align="right"><a href="#CHGMOD.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div>
<h3><a name="CHGMOD.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="#CHGMOD.MODULE"><b>MODULE</b></a></td>
<td valign="top">Module</td>
<td valign="top"><i>Qualified object name</i></td>
<td valign="top" rowspan="3">Required, Key, Positional 1</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>*USRLIBL</u></b>, *LIBL</td>
</tr><tr>
<td valign="top"><a href="#CHGMOD.OPTIMIZE"><b>OPTIMIZE</b></a></td>
<td valign="top">Optimize module</td>
<td valign="top"><b><u>*SAME</u></b>, *FULL, *BASIC, *NONE, 40, 30, 20, 10</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CHGMOD.RMVOBS"><b>RMVOBS</b></a></td>
<td valign="top">Remove observable info</td>
<td valign="top">Single values: <b><u>*SAME</u></b>, *NONE, *ALL<br>Other values (up to 3 repetitions): *CRTDTA, *DBGDTA, *ILDTA</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#CHGMOD.ENBPFRCOL"><b>ENBPFRCOL</b></a></td>
<td valign="top">Enable performance collection</td>
<td valign="top">Single values: <b><u>*SAME</u></b>, *NONE, *PEP<br>Other values: <i>Element list</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Element 1: Collection level</td>
<td valign="top">
<b><u>*FULL</u></b>, *ENTRYEXIT</td>
</tr>
<tr>
<td valign="top">Element 2: Procedures</td>
<td valign="top">
<b><u>*ALLPRC</u></b>, *NONLEAF</td>
</tr>
<tr>
<td valign="top"><a href="#CHGMOD.PRFDTA"><b>PRFDTA</b></a></td>
<td valign="top">Profiling data</td>
<td valign="top"><b><u>*SAME</u></b>, *NOCOL, *COL</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CHGMOD.FRCCRT"><b>FRCCRT</b></a></td>
<td valign="top">Force module recreation</td>
<td valign="top"><b><u>*NO</u></b>, *YES</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CHGMOD.TEXT"><b>TEXT</b></a></td>
<td valign="top">Text 'description'</td>
<td valign="top"><i>Character value</i>, <b><u>*SAME</u></b>, *BLANK</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#CHGMOD.LICOPT"><b>LICOPT</b></a></td>
<td valign="top">Licensed Internal Code options</td>
<td valign="top">Single values: <b><u>*SAME</u></b>, *NONE<br>Other values: <i>Element list</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Element 1: Options</td>
<td valign="top">
<i>Character value</i></td>
</tr>
<tr>
<td valign="top">Element 2: Action</td>
<td valign="top">
<b><u>*REPLACE</u></b>, *ADD</td>
</tr>
</table>
<table width="100%">
<tr><td align="right"><a href="#CHGMOD.Top_Of_Page">Top</a></td></tr>
</table>
</div>
<div> <a name="CHGMOD.MODULE"></a>
<h3>Module (MODULE)</h3>
<p>Specifies the module for which attributes are to be changed.
</p>
<p>This is a required parameter.
</p>
<p><b>Qualifier 1: Module</b>
</p>
<dl>
<dt><b>*ALL</b></dt>
<dd>All modules in the specified library to which the user has some authority are selected to be changed.
</dd>
<dt><b><i>generic-name</i></b></dt>
<dd>Specify the generic name of the modules to be changed. 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 name specifies all objects with names that begin with the generic prefix, for which the user has authority. If an asterisk is not included with the generic (prefix) name, the system assumes it to be the complete object name. If the complete object name is specified, and multiple libraries are searched, multiple objects can be changed, only if *ALL or *ALLUSR library values can be specified for the name.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the module to be changed.
</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>*LIBL</b></dt>
<dd>All libraries in the library list for the current thread are searched until the first match is found.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the library where the module is located.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CHGMOD.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CHGMOD.OPTIMIZE"></a>
<h3>Optimize module (OPTIMIZE)</h3>
<p>Specifies the optimization level for the generated code in the module. Changing the optimization level of the module causes the system to re-create the module with the new optimization level.
</p>
<dl>
<dt><b><u>*SAME</u></b></dt>
<dd>The module optimization level attribute is not changed.
</dd>
<dt><b>*NONE or 10</b></dt>
<dd>No additional optimization will be performed on the generated code. Variables can be displayed and modified while debugging.
</dd>
<dt><b>*BASIC or 20</b></dt>
<dd>Some optimization is performed on the code. Variables can be displayed but not modified while debugging.
</dd>
<dt><b>*FULL or 30</b></dt>
<dd>More optimization is performed on the generated code, in addition to the amount performed at optimization level 20. Variables can be displayed but not modified while debugging.
<p>
<b>Note: </b>The value of the variable displayed during debugging may not be the current value of the variable.
</p>
</dd>
<dt><b>40</b></dt>
<dd>This level includes all the optimization performed at optimization level 30. In addition, it includes optimization that disables call and instruction tracing. Tracing of modules with optimization level 40 cannot be done.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CHGMOD.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CHGMOD.RMVOBS"></a>
<h3>Remove observable info (RMVOBS)</h3>
<p>Specifies whether the observable information associated with modules is to be removed.
</p>
<dl>
<dt><b><u>*SAME</u></b></dt>
<dd>The value does not change.
</dd>
<dt><b>*ALL</b></dt>
<dd>Remove the debug data (*DBGDTA), the information necessary to re-create the module (*CRTDTA) using CHGMOD, and the intermediate language data (*ILDTA).
<p>
<b>Note: </b>*ALL cannot be specified if the module is enabled to collect profiling data.
</p>
</dd>
<dt><b>*DBGDTA</b></dt>
<dd>The information necessary to allow module debugging is to be removed. The module cannot be debugged when it is included in a program or service program object.
</dd>
<dt><b>*CRTDTA</b></dt>
<dd>The information necessary to allow module re-creation using CHGMOD, to change the optimization level, to change the performance collection attribute, or to change the profiling data attribute, is removed. <b>NOTES:</b>
<ul>
<li>*CRTDTA cannot be specified if the module is enabled to collect profiling data.
</li>
<li>Creation data (either observable or unobservable) is required to convert modules to a different hardware technology, for example, between CISC (Complex Instruction Set Computer) and RISC (Reduced Instructions Set Computer) technology.
</li>
<li>Modules created for release V5R1M0 or later (TGTRLS parameter when the module was created) will contain unobservable creation data even when *ALL or *CRTDTA observability is removed.
</li>
</ul>
</dd>
<dt><b>*ILDTA</b></dt>
<dd>The intermediate language data is removed.
</dd>
<dt><b>*NONE</b></dt>
<dd>Observable information associated with the module is not removed.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CHGMOD.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CHGMOD.ENBPFRCOL"></a>
<h3>Enable performance collection (ENBPFRCOL)</h3>
<p>Specifies whether collection of performance data is enabled.
</p>
<p><b>Single values</b>
</p>
<dl>
<dt><b><u>*SAME</u></b></dt>
<dd>The current value of this parameter does not change.
</dd>
<dt><b>*PEP or *NONE</b></dt>
<dd>Performance data is to be collected for the Program Entry Procedure entry and exit. There are no entry or exit hooks in the module's internal procedures and no precall or postcall hooks around calls to other procedures.
</dd>
</dl>
<p><b>Element 1: Collection level</b>
</p>
<dl>
<dt><b><u>*FULL</u></b></dt>
<dd>Performance data is to be collected for procedure entry and exit. Performance data is also collected before and after calls to external procedures.
</dd>
<dt><b>*ENTRYEXIT</b></dt>
<dd>Performance data is to be collected for procedure entry and exit.
</dd>
</dl>
<p><b>Element 2: Procedures</b>
</p>
<dl>
<dt><b><u>*ALLPRC</u></b></dt>
<dd>Performance data is to be collected for all procedures. This is useful to capture information on all procedures.
</dd>
<dt><b>*NONLEAF</b></dt>
<dd>Performance data is collected for procedures that are not leaf procedures and for the PEP. This is useful to capture information on most routines but not at the expense of destroying the 'leaf-ness' of the leaf procedure.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CHGMOD.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CHGMOD.PRFDTA"></a>
<h3>Profiling data (PRFDTA)</h3>
<p>Specifies the program profiling data attribute for the module. Program profiling is an advanced optimization technique to reorder procedures and code within the procedures based on statistical data (profiling data).
</p>
<dl>
<dt><b><u>*SAME</u></b></dt>
<dd>The value does not change.
</dd>
<dt><b>*NOCOL</b></dt>
<dd>This module is not enabled to collect profiling data.
</dd>
<dt><b>*COL</b></dt>
<dd>This module is enabled to collect profiling data.
<p>
<b>Note: </b>*COL can be specified only when the optimization level of the module is *FULL (30) or greater.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CHGMOD.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CHGMOD.FRCCRT"></a>
<h3>Force module recreation (FRCCRT)</h3>
<p>Specifies whether module re-creation is forced.
</p>
<dl>
<dt><b><u>*NO</u></b></dt>
<dd>Module re-creation is not forced unless the optimization level (OPTIMIZE), enable performance collection (ENBPFRCOL), or profiling data (PRFDTA) parameters are changed. This allows the system to determine whether a change is required.
</dd>
<dt><b>*YES</b></dt>
<dd>Module re-creation is forced. If observable creation data has been removed, then re-creation (forced or not) is not allowed.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CHGMOD.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CHGMOD.TEXT"></a>
<h3>Text 'description' (TEXT)</h3>
<p>Specifies text that briefly describes the module and its function.
</p>
<dl>
<dt><b><u>*SAME</u></b></dt>
<dd>The text description for the module is not changed.
</dd>
<dt><b>*BLANK</b></dt>
<dd>Text is not specified.
</dd>
<dt><b><i>'description'</i></b></dt>
<dd>Specify no more than 50 characters of text, enclosed in apostrophes.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CHGMOD.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CHGMOD.LICOPT"></a>
<h3>Licensed Internal Code options (LICOPT)</h3>
<p>Specifies individual Licensed Internal Code compile-time options to be selected, and is intended for the advanced programmer who understands the potential benefits and drawbacks of each selected compiler option. Changing the Licensed Internal Code options of an Integrated Language Environment (ILE) module to any value other than *SAME causes the system to re-create the ILE module. Note: Additional information about the LICOPT options can be found in the ILE Concepts book, SC41-5606.
</p>
<p><b>Element 1: Options</b>
</p>
<dl>
<dt><b><u>*SAME</u></b></dt>
<dd>If the module object is re-created, the existing Licensed Internal Code compile-time options are input to object re-creation. Otherwise, the Licensed Internal Code compile-time options do not change.
</dd>
<dt><b>*NONE</b></dt>
<dd>Module re-creation is forced and no Licensed Internal Code options are used.
</dd>
<dt><b><i>character-value</i></b></dt>
<dd>Specify one or more Licensed Internal Code compile-time options. Changing the Licensed Internal Code options of an Integrated Language Environment (ILE) module causes the system to re-create the ILE module.
</dd>
</dl>
<p><b>Element 2: Action</b>
</p>
<dl>
<dt><b><u>*REPLACE</u></b></dt>
<dd>Any existing Licensed Internal Code options for the module are replaced with the specified values.
</dd>
<dt><b>*ADD</b></dt>
<dd>The specified Licensed Internal Code options are added to the end of the existing Licensed Internal Code options string for the module. Any conflicts between Licensed Internal Code option values will be resolved with the last specified value taking precedence.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CHGMOD.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="CHGMOD.COMMAND.EXAMPLES">Examples</a> </h3>
<p><b>Example 1: Optimizing for Maximum Performance</b>
</p>
<p>
<pre>
CHGMOD MODULE(XYZ/PERFMOD) OPTIMIZE(40)
</pre>
</p>
<p>This command optimizes module PERFMOD in library XYZ to ensure optimum performance.
</p>
<p><b>Example 2: Removing All Observability</b>
</p>
<p>
<pre>
CHGMOD MODULE(XYZ/NOOBSERV) RMVOBS(*ALL)
</pre>
</p>
<p>This command removes all observability from module NOOBSERV in library XYZ. It can not be re-created, and can not be debugged when it is included in a program or service program object.
</p>
<p><b>Example 3: Enabling Collection of Profiling Data</b>
</p>
<p>
<pre>
CHGMOD MODULE(XYZ/PROFMOD) OPTIMIZE(30) PRFDTA(*COL)
</pre>
</p>
<p>This command enables module PROFMOD in library XYZ to collect profiling data when it is included in a program or service program object. The optimization level must be 30 or greater to enable a module to collect profiling data.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#CHGMOD.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="CHGMOD.ERROR.MESSAGES">Error messages</a> </h3>
<p><b><u>*ESCAPE Messages</u></b>
</p>
<dl>
<dt><b>CPF5CFA</b></dt>
<dd>Modules in library QSYS cannot be changed.
</dd>
<dt><b>CPF5CFB</b></dt>
<dd>No modules changed.
</dd>
<dt><b>CPF5CFC</b></dt>
<dd>&amp;1 changed. &amp;2 did not require change. &amp;3 not changed.
</dd>
<dt><b>CPF5CFE</b></dt>
<dd>Module &amp;1 in library &amp;2 not changed.
</dd>
<dt><b>CPF5CFF</b></dt>
<dd>Module &amp;1 in library &amp;2 not changed.
</dd>
<dt><b>CPF5CF7</b></dt>
<dd>*USRLIBL or *LIBL not allowed with a generic module name or *ALL.
</dd>
<dt><b>CPF5CF8</b></dt>
<dd>Module &amp;1 in library &amp;2 not changed.
</dd>
<dt><b>CPF5CF9</b></dt>
<dd>Module &amp;1 in library &amp;2 not changed.
</dd>
<dt><b>CPF9801</b></dt>
<dd>Object &amp;2 in library &amp;3 not found.
</dd>
<dt><b>CPF9803</b></dt>
<dd>Cannot allocate object &amp;2 in library &amp;3.
</dd>
<dt><b>CPF9804</b></dt>
<dd>Object &amp;2 in library &amp;3 damaged.
</dd>
<dt><b>CPF9806</b></dt>
<dd>Cannot perform function for object &amp;2 in library &amp;3.
</dd>
<dt><b>CPF9810</b></dt>
<dd>Library &amp;1 not found.
</dd>
<dt><b>CPF9818</b></dt>
<dd>Object &amp;2 in library &amp;3 not created.
</dd>
<dt><b>CPF9819</b></dt>
<dd>Object &amp;2 in library &amp;3 not created.
</dd>
<dt><b>CPF9820</b></dt>
<dd>Not authorized to use library &amp;1.
</dd>
<dt><b>CPF9828</b></dt>
<dd>Not authorized to module &amp;1 in library &amp;2.
</dd>
<dt><b>CPF9830</b></dt>
<dd>Cannot assign library &amp;1.
</dd>
<dt><b>CPF9899</b></dt>
<dd>Error occurred during processing of command.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CHGMOD.Top_Of_Page">Top</a></td></tr>
</table>
</body>
</html>