SIRAPSYF parameter: Difference between revisions
(Automatically generated page update) |
|||
(8 intermediate revisions by 2 users not shown) | |||
Line 14: | Line 14: | ||
</dl> | </dl> | ||
==Description== | ==Description== | ||
This parameter controls a number of APSY subsystem maintenance features. The bits defined for the features are described below. | This parameter controls a number of [[Application_Subsystem_development|APSY]] subsystem maintenance features. The bits defined for the features are described below. | ||
No SIRAPSYF features are enabled unless you also set the X'80' bit on the [[SIRFACT parameter]]. | No <var>SIRAPSYF</var> features are enabled unless you also set the X'80' bit on the <var>[[SIRFACT parameter|SIRFACT]]</var> parameter. | ||
<table> | <table class="thJustBold"> | ||
<tr> | <tr> | ||
<th>X'01'</th> | <th>X'01'</th> | ||
<td>Allows procedure compilations to be saved (pre-compiled) for unlocked procedure group members. If an outer or an inner procedure in an unlocked file in a procedure group is changed, or if an outer procedure is added to an unlocked file in a procedure group, the procedure is recompiled and that compilation is saved. | <td>Allows [[Procedures|procedure]] compilations to be saved (pre-compiled) for unlocked procedure group members. If an outer or an inner procedure in an unlocked file in a procedure group is changed, or if an outer procedure is added to an unlocked file in a procedure group, the procedure is recompiled and that compilation is saved. | ||
Also allows the pre-compiling of a procedure with a pre-compile prefix that was not present in the procedure group when the subsystem was started. | Also allows the pre-compiling of a procedure with a pre-compile prefix that was not present in the procedure group when the subsystem was started. | ||
If a pre-compiled procedure has multiple Begin/End brackets, the first bracket will be saved as the pre-compilation and subsequent brackets will be re-compiled every time the procedure is run. | |||
If this bit is not set, using unlocked files to facilitate the updating of procedures in a running subsystem has an efficiency cost because procedure compilations are not saved. | If this bit is not set, using unlocked files to facilitate the updating of procedures in a running subsystem has an efficiency cost because procedure compilations are not saved. | ||
Setting this bit has no effect on procedures in subsystems that use a procedure file instead of a procedure group, and it has no effect on subsystems that use a procedure group but not unlocked files.</td> | |||
</tr> | </tr> | ||
Line 36: | Line 35: | ||
<td>Detects changes to included procedures that reside in a pre-compiled procedure in a subsystem procedure group. If such an included procedure is changed, the pre-compiled procedure is recompiled. | <td>Detects changes to included procedures that reside in a pre-compiled procedure in a subsystem procedure group. If such an included procedure is changed, the pre-compiled procedure is recompiled. | ||
Setting this bit has no effect on procedures in subsystems that use a procedure file instead of a procedure group, and it has no effect on subsystems that use a procedure group with no unlocked files.</td> | |||
</tr> | </tr> | ||
<tr> | <tr> | ||
<th>X'04'</th> | <th>X'04'</th> | ||
<td>Tracks in a bitmap the CCATEMP pages allocated to pre-compiled procedures in a subsystem. When the subsystem is stopped, this bitmap is used to free the pages rather than chaining through them, which requires considerable CCATEMP I/O. Although the bitmap method has more (but probably not measurable) overhead while saving compilations, it can make the STOP SUBSYSTEM process significantly faster. | <td>Tracks in a bitmap the [[CCATEMP|CCATEMP]] pages allocated to pre-compiled procedures in a subsystem. When the subsystem is stopped, this bitmap is used to free the pages rather than chaining through them, which requires considerable CCATEMP I/O. Although the bitmap method has more (but probably not measurable) overhead while saving compilations, it can make the <var>[[STOP_command:_Stopping_an_application_subsystem|STOP SUBSYSTEM]]</var> process significantly faster. | ||
The bitmap is subsystem-wide and not procedure-specific. It does not reduce the time required for discarding the CCATEMP pages that are associated with a compilation that is being replaced.</td> | The bitmap is subsystem-wide and not procedure-specific. It does not reduce the time required for discarding the CCATEMP pages that are associated with a compilation that is being replaced.</td> | ||
Line 50: | Line 48: | ||
<tr> | <tr> | ||
<th>X'08'</th> | <th>X'08'</th> | ||
<td>Allows the [[FACTDEB parameter]] to be set inside the subsystem. If this bit is not set, that parameter is not allowed to be reset.</td> | <td>Allows the <var>[[FACTDEB parameter|FACTDEB]]</var> parameter to be set inside the subsystem. If this bit is not set, that parameter is not allowed to be reset.</td> | ||
</tr> | </tr> | ||
</table> | </table> | ||
===Usage notes=== | |||
<ul> | <ul> | ||
<li>These SIRAPSYF features along with the | <li>These <var>SIRAPSYF</var> features along with the <var>SIRFACT</var> parameter X'40' and X'80' bits are designed to simplify the updating of procedures and the | ||
are designed to simplify the updating of procedures and the | |||
pre-compiling of these updated procedures while their subsystem is in use. | pre-compiling of these updated procedures while their subsystem is in use. | ||
< | <p class="note">'''Note:''' | ||
'''Note:''' | |||
These settings do '''not''' eliminate the lock on outer procedures | These settings do '''not''' eliminate the lock on outer procedures | ||
in locked procedure files. | in locked procedure files. | ||
They are designed to suit a procedure group and the placement of | They are designed to suit a procedure group and the placement of | ||
updated procedures in unlocked file(s). | updated procedures in unlocked file(s).</p> | ||
< | <p> | ||
The SIRFACT QUIESCE and RESUME | The <var>[[SIRFACT command#SIRFACT QUIESCE|SIRFACT QUIESCE]]</var> and <var>[[SIRFACT command#SIRFACT RESUME|SIRFACT RESUME]]</var> commands supplement these features | ||
by preventing subsystem users from interfering with procedure update operations. | by preventing subsystem users from interfering with procedure update operations. </p></li> | ||
<li>For both the X'01' and X'02' bits, an inner or | <li>For both the X'01' and X'02' bits, an inner or | ||
outer procedure is considered changed if the actual procedure is modified | outer procedure is considered changed if the actual procedure is modified | ||
or if a new version of the procedure is added to an earlier file in the | or if a new version of the procedure is added to an earlier file in the | ||
procedure group. | procedure group. </li> | ||
<li>When using temporary procedure groups, a request compilation is not | <li>When using temporary procedure groups, a request compilation is not | ||
saved if any of the outer or inner procedures came from a file not | saved if any of the outer or inner procedures came from a file not | ||
Line 82: | Line 76: | ||
permanent group, it will always be recompiled. | permanent group, it will always be recompiled. | ||
If an inner procedure (but not the outer) is found in a file not in the subsystem's | If an inner procedure (but not the outer) is found in a file not in the subsystem's | ||
permanent group, whether the procedure is recompiled depends on the | permanent group, whether the procedure is recompiled depends on whether the | ||
X'02' bit | X'02' bit is set: | ||
<ul> | <ul> | ||
<li>If the bit is off, the procedure might or might not be recompiled. | <li>If the bit is off, the procedure might or might not be recompiled. | ||
Line 89: | Line 83: | ||
</ul> | </ul> | ||
Hence, it is recommended that where temporary procedure groups are to be used, | Hence, it is recommended that where temporary procedure groups are to be used, the X'02' bit is to be set. </li> | ||
the X'02' bit is to be set. | |||
<li> | |||
For example, to use a SIRAPSYF override for subsystem DEVPRO with procedure group SIRIUS | <li>The <var>SIRAPSYF</var> features you specify apply on a system-wide basis. To specify an override for an individual subsystem, | ||
< | you can specify a special deferred update DD name for the subsystem's procedure group. This [[Deferred_update_feature|deferred update]] DD name specifies the subsystem-specific <var>SIRAPSYF</var> flags. Because <var>[[SUBSYSMGMT#Overview_of_the_Subsystem_Management_facility|SUBSYSMGMT]]</var> insists that deferred update DD names begin with <code>TAPE</code>, the <var>SIRAPSYF</var> overide is specified as <code>TAPE*</code> (the asterisk is invalid in real DD names) followed by the hex value of the override. | ||
<p> | |||
For example, to use a <var>SIRAPSYF</var> override for subsystem <code>DEVPRO</code> with procedure group <code>SIRIUS</code> (as shown below): </p> | |||
<p class="caption" style="width:450px">SIRAPSYF override </p> | |||
<p class="figure">[[File:sirapsyf3.png|450px]] </p> | |||
You must do one of the following: | |||
<ul> | |||
<li>As shown above, specify the special deferred update DD name under <b>Deferred Name</b> | |||
in the <b>Subsystem File Use</b> screen in SUBSYSMGMT. </li> | |||
<li>If you use an ad hoc procedure, specify this special name for the <code>APSFDN</code> field in the SCLS records for the subsystem. | |||
<li> | |||
</ul> | </ul> | ||
<code>TAPE*04</code> indicates that the eqivalent of SIRAPSYF X'04' should be used for subsystem DEVPRO. One might want to do this if one wants to be able to force recompilation of DEVPRO procs every time simply by placing a copy of the outer | |||
<code>TAPE*04</code> indicates that the eqivalent of <var>SIRAPSYF</var> X'04' should be used for subsystem <code>DEVPRO</code>. One might want to do this if one wants to be able to force recompilation of <code>DEVPRO</code> procs every time simply by placing a copy of the outer procedure in an unlocked file. One might wish to do this if procedures frequently require recompilation for changes to dummy string globals (<code>?&</code> values), something that <var class="product">SirFact</var> does not track. | |||
Setting a deferred index update file name for a procedure group is certain to be completely harmless as procedure groups are never opened for deferred update when running a subsystem. | Setting a deferred index update file name for a procedure group is certain to be completely harmless as procedure groups are never opened for deferred update when running a subsystem. | ||
</ul> | </ul> | ||
[[Category:System parameters]] | [[Category:System parameters]] | ||
[[Category:Parameters]] | [[Category:Parameters]] |
Latest revision as of 14:22, 31 May 2017
Sirius APSY flags
Summary
- Default value
- X'00'
- Parameter type
- System
- Where set
- System manager resettable
- Related products
- SirFact
- Introduced
- Before Sirius Mods 6.7
Description
This parameter controls a number of APSY subsystem maintenance features. The bits defined for the features are described below.
No SIRAPSYF features are enabled unless you also set the X'80' bit on the SIRFACT parameter.
X'01' | Allows procedure compilations to be saved (pre-compiled) for unlocked procedure group members. If an outer or an inner procedure in an unlocked file in a procedure group is changed, or if an outer procedure is added to an unlocked file in a procedure group, the procedure is recompiled and that compilation is saved.
Also allows the pre-compiling of a procedure with a pre-compile prefix that was not present in the procedure group when the subsystem was started. If a pre-compiled procedure has multiple Begin/End brackets, the first bracket will be saved as the pre-compilation and subsequent brackets will be re-compiled every time the procedure is run. If this bit is not set, using unlocked files to facilitate the updating of procedures in a running subsystem has an efficiency cost because procedure compilations are not saved. Setting this bit has no effect on procedures in subsystems that use a procedure file instead of a procedure group, and it has no effect on subsystems that use a procedure group but not unlocked files. |
---|---|
X'02' | Detects changes to included procedures that reside in a pre-compiled procedure in a subsystem procedure group. If such an included procedure is changed, the pre-compiled procedure is recompiled. Setting this bit has no effect on procedures in subsystems that use a procedure file instead of a procedure group, and it has no effect on subsystems that use a procedure group with no unlocked files. |
X'04' | Tracks in a bitmap the CCATEMP pages allocated to pre-compiled procedures in a subsystem. When the subsystem is stopped, this bitmap is used to free the pages rather than chaining through them, which requires considerable CCATEMP I/O. Although the bitmap method has more (but probably not measurable) overhead while saving compilations, it can make the STOP SUBSYSTEM process significantly faster. The bitmap is subsystem-wide and not procedure-specific. It does not reduce the time required for discarding the CCATEMP pages that are associated with a compilation that is being replaced. |
X'08' | Allows the FACTDEB parameter to be set inside the subsystem. If this bit is not set, that parameter is not allowed to be reset. |
Usage notes
- These SIRAPSYF features along with the SIRFACT parameter X'40' and X'80' bits are designed to simplify the updating of procedures and the
pre-compiling of these updated procedures while their subsystem is in use.
Note: These settings do not eliminate the lock on outer procedures in locked procedure files. They are designed to suit a procedure group and the placement of updated procedures in unlocked file(s).
The SIRFACT QUIESCE and SIRFACT RESUME commands supplement these features by preventing subsystem users from interfering with procedure update operations.
- For both the X'01' and X'02' bits, an inner or outer procedure is considered changed if the actual procedure is modified or if a new version of the procedure is added to an earlier file in the procedure group.
- When using temporary procedure groups, a request compilation is not
saved if any of the outer or inner procedures came from a file not
in the subsystem's permanent group.
Furthermore, if the outer procedure is found in a file not in the subsystem's
permanent group, it will always be recompiled.
If an inner procedure (but not the outer) is found in a file not in the subsystem's
permanent group, whether the procedure is recompiled depends on whether the
X'02' bit is set:
- If the bit is off, the procedure might or might not be recompiled.
- If the bit is on, the procedure is always recompiled.
- The SIRAPSYF features you specify apply on a system-wide basis. To specify an override for an individual subsystem,
you can specify a special deferred update DD name for the subsystem's procedure group. This deferred update DD name specifies the subsystem-specific SIRAPSYF flags. Because SUBSYSMGMT insists that deferred update DD names begin with
TAPE
, the SIRAPSYF overide is specified asTAPE*
(the asterisk is invalid in real DD names) followed by the hex value of the override.For example, to use a SIRAPSYF override for subsystem
DEVPRO
with procedure groupSIRIUS
(as shown below):You must do one of the following:
- As shown above, specify the special deferred update DD name under Deferred Name in the Subsystem File Use screen in SUBSYSMGMT.
- If you use an ad hoc procedure, specify this special name for the
APSFDN
field in the SCLS records for the subsystem.
TAPE*04
indicates that the eqivalent of SIRAPSYF X'04' should be used for subsystemDEVPRO
. One might want to do this if one wants to be able to force recompilation ofDEVPRO
procs every time simply by placing a copy of the outer procedure in an unlocked file. One might wish to do this if procedures frequently require recompilation for changes to dummy string globals (?&
values), something that SirFact does not track.Setting a deferred index update file name for a procedure group is certain to be completely harmless as procedure groups are never opened for deferred update when running a subsystem.