SIRAPSYF parameter: Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (Link to SIRFACT parameter)
 
 
(14 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Template:SIRAPSYF parameter subtitle}}
==Summary==
==Summary==
<dl>
<dl>
Line 10: Line 11:
<dd>[[SirFact]]
<dd>[[SirFact]]
<dt>Introduced
<dt>Introduced
<dd>Before [[Sirius Mods]] 6.7
<dd>Before <var class="product">Sirius Mods</var> 6.7
</dl>
</dl>
==Description==
==Description==
This parameter controls a number of APSY subsystem maintenance features.
This parameter controls a number of [[Application_Subsystem_development|APSY]] subsystem maintenance features. The bits defined for the features are described below.
The bits defined for the features are described below.
 
:note
No <var>SIRAPSYF</var> features are enabled unless you also set the X'80' bit on the <var>[[SIRFACT parameter|SIRFACT]]</var> parameter.
No SIRAPSYF features are enabled unless you also set the X'80' bit
<table class="thJustBold">
on the [[SIRFACT parameter]].
<tr>
<dl>
<th>X'01'</th>
<dt>X'01'
<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.
<dd>Allows procedure compilations to be saved (pre-compiled)
 
for unlocked procedure group members.
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 an outer or an inner procedure in an unlocked
 
file in a procedure group is changed,
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.
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
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.
prefix that was not present in the procedure group when the subsystem
was started.


In version 7.1 or higher of the [[Sirius Mods]],
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>
if a pre-compiled procedure has multiple Begin/End
</tr>
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
<tr>
procedures in a running subsystem has an efficiency cost
<th>X'02'</th>
because procedure compilations are not saved.
<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.


This setting has no effect on procedures in subsystems that use a procedure file
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>
instead of a procedure group, and it has no effect on subsystems that use
</tr>
a procedure group but not unlocked files.
<dt>X'02'
<dd>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.


This setting has no effect on procedures in subsystems that use a procedure file
<tr>
instead of a procedure group, and it has no effect on subsystems that use
<th>X'04'</th>
a procedure group but not unlocked files.
<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.
<dt>X'04'
<dd>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.
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>
It does not reduce the time required for
discarding the CCATEMP pages that are associated with a compilation
that is being replaced.
<dt>X'08'
<dd>Allows the [[FACTDEB parameter]] to be set inside the subsystem.
If this bit is not set, that parameter is not allowed to be reset.
</dl>


</tr>


==== Usage notes: ====
<tr>
<th>X'08'</th>
<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>
</table>


===Usage notes===
<ul>
<ul>
<li>These SIRAPSYF features along with the [[SIRFACT_parameter|SIRFACT parameter]] X'40' and X'80' bits
<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.
<br>
<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>
<br>
<p>
The SIRFACT QUIESCE and RESUME subcommands supplement these features
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>
For more information, see the [[SirFact Reference Manual]].
 
<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 97: 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 setting:
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 104: 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>The SIRAPSYF features you specify apply on a system-wide basis.
To specify an override for an individual subsystem,
you can specify in CCASYS a special deferred update DD name for a procedure
group that defines its particular SIRAPSYF option. For example, as shown for group SALESGRP (see figure), you must:
<br>


[[File:sirapsyf2.png|frame|right|SIRAPSYF override]]
<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>
<ul>
<li>In SUBSYSMGMT,
<li>As shown above, specify the special deferred update DD name under <b>Deferred Name</b>
specify the special deferred update DD name under &ldquo;Deferred Name&rdquo;
in the <b>Subsystem File Use</b> screen in SUBSYSMGMT. </li>
on the Subsystem File Use screen.
 
<br>Or, if you use an ad hoc procedure, specify this special name
<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.
for the APSFDN field in the SCLS records for the subsystem.
<li>Begin the deferred update DD name with the characters
<code>TAPE*</code>, and append the two hexadecimal digits that indicate
the subsystem-specific bit settings you want for the
[[SirFact]] APSY enhancements.
<code>TAPE*07</code> would set the SIRAPSYF X'07' features for the group.
</ul>
</ul>


Setting a deferred index update file name is completely harmless
<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.
in systems that do not have the [[SirFact]] APSY facility or do not have the
 
facility enabled (by specifying the SIRFACT X'80' bit).
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.
    Hence, it is recommended that where temporary procedure groups are to be used, the X'02' bit is to be set.
  • 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 as TAPE* (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 group SIRIUS (as shown below):

    SIRAPSYF override

    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 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 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.