Fast/Unload program parameters: Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (more conversion cleanup)
m (more conversion cleanup)
Line 27: Line 27:


==ABenderr=rc==
==ABenderr=rc==
<p></p>
This parameter specifies the minimum <var class="product">Fast/Unload</var> return code that triggers
This parameter specifies the minimum <var class="product">Fast/Unload</var> return code which triggers
an ABEND at the end of the run.
an ABEND at the end of the run.
Your JCL could include, for example:
To prevent the <code>FUNOUT</code> dataset from being cataloged when a severe error is encountered, your JCL might include, for example:
<p class="code"><nowiki>// EXEC PGM=FUNLOAD,PARM=(ABENDERR=8)
<p class="code"><nowiki>// EXEC PGM=FUNLOAD,PARM=(ABENDERR=8)
//FUNOUT DD DISP=(NEW,CATLG,DELETE),...
//FUNOUT DD DISP=(NEW,CATLG,DELETE),...
</nowiki></p>
</nowiki></p>
so that the FUNOUT dataset is not cataloged when a severe error is encountered.
   
   
The default value of this parameter is zero, which
The default value of this parameter is zero, which
Line 45: Line 43:


==ALlmsg==
==ALlmsg==
<p></p>
This parameter only has meaning when <var class="product">Fast/Unload</var> is invoked via the
This parameter only has meaning when <var class="product">Fast/Unload</var> is invoked via the
User Language Interface.
User Language Interface.
Line 52: Line 49:
When invoked via the <var class="product">Fast/Unload SOUL Interface</var>, <var class="product">Fast/Unload</var> attempts
When invoked via the <var class="product">Fast/Unload SOUL Interface</var>, <var class="product">Fast/Unload</var> attempts
to minimize message traffic by suppressing certain informational messages.
to minimize message traffic by suppressing certain informational messages.
If you want to see all <var class="product">Fast/Unload</var> report data, specify the ALLMSG option.
If you want to see all <var class="product">Fast/Unload</var> report data, specify the <var>ALLMSG</var> option.
<p></p>
 
For example, the <var class="product">Fast/Unload</var> input program when invoked using the User Language
For example, the <var class="product">Fast/Unload</var> input program when invoked using the SOUL
Interface is not ordinarily echoed on the report.
Interface is not ordinarily echoed on the report.
That is to say,
That is to say,
when invoked via the <var class="product">Fast/Unload SOUL Interface</var>, the NOLIST
when invoked via the <var class="product">Fast/Unload SOUL Interface</var>, the <var>NOLIST<var>
parameter is the default unless ALLMSG is specified.
parameter is the default unless <var>ALLMSG</var> is specified.
If you want to see the input program, specify either the LIST or the
If you want to see the input program, specify either the <var>LIST</var> or the <var>ALLMSG</var> parameter.
ALLMSG parameter.
 
==Asynch==
==Asynch==
<p></p>
This parameter only has meaning when <var class="product">Fast/Unload</var> is invoked via the
This parameter only has meaning when <var class="product">Fast/Unload</var> is invoked via the
<var class="product">Fast/Unload SOUL Interface</var>.
<var class="product">Fast/Unload SOUL Interface</var>.
This indicates that you want for $Funload to return as soon as an unload
This indicates that you want <var>$Funload</var> to return as soon as an unload
request has been accepted, rather than upon completion of the unload.
request has been accepted, rather than upon completion of the unload.
When using the ASYNCH parameter, you cannot unload a found set that is locked
When using the <var>ASYNCH</var> parameter, you cannot unload a found set that is locked
in exclusive mode (with a FIND AND RESERVE) and you cannot have any
in exclusive mode (with a <var>[[FD, FDWOL, or FDR - Find to recordset|Find And Reserve]]</var>), and you cannot have any data returned to a list.
data returned to a list.
 
The ASYNCH parameter is assumed when data is being
The <var>ASYNCH</var> parameter is assumed when data is being
unloaded to the $FUNIMG and $FUNSSTR functions.
unloaded to the <var>[[$FunImg]]</var> and <var>[[$FunsStr]]</var> functions.
 
==Dbcs={IBM|FUJITSU|HITACHI|NONE}==
==Dbcs={IBM|FUJITSU|HITACHI|NONE}==
<p></p>
This parameter indicates that your database file has fields that contain DBCS data.
This indicates that your database file has fields that contain DBCS
<var>DBCS</var> must be followed by the type of DBCS environment under which your database
data.
DBCS must be followed by the type of DBCS environment under which your database
file was created.
file was created.
Any of the following types are valid:
Any of the following types are valid:
IBM, FUJITSU, HITACHI, or NONE.
<var>IBM</var>, <var>FUJITSU</var>, <var>HITACHI</var>, or <var>NONE</var>.
The default value for DBCS is NONE.
The default value is <var>NONE</var>. See [[Fast/Unload customization of defaults]] if you want to set a <var>DBCS</var> default other than <var>NONE</var>.
See [[Fast/Unload customization of defaults]] if you want to set a DBCS default other than NONE.
 
==Every=n==
==Every=n==
<p></p>
This indicates that you want <var class="product">Fast/Unload</var> to unload every Nth record in
This indicates that you want <var class="product">Fast/Unload</var> to unload every Nth record in
the database.
the database.
This option is useful for sampling records in a database.
This option is useful for sampling records in a database.
For example, to process every other input record, set EVERY to 2.
For example, to process every other input record, set <var>EVERY</var> to 2.
EVERY processing counts existing records, not <var class="product">Model 204</var> record numbers.
 
You can use SKIPREC to set the starting record for EVERY.
<var>EVERY</var> processing counts existing records, not <var class="product">Model 204</var> record numbers.
 
You can use <var>SKIPREC</var> to set the starting record for <var>EVERY</var>.
For example, you can unload every tenth record starting with the
For example, you can unload every tenth record starting with the
100th record by setting SKIPREC to 99 and setting EVERY to 10.
100th record by setting <var>SKIPREC</var> to 99 and setting <var>EVERY</var> to 10.
<var class="product">Fast/Unload</var> would process the 100th record, the 110th record, etc.
<var class="product">Fast/Unload</var> would process the 100th record, the 110th record, etc.
The default for this parameter is 0 which means that all records are processed.
The default for <var>EVERY</var> is 0, which means that all records are processed.
   
   
<div id="fnvmask"></div>
<div id="fnvmask"></div>
==FNvmask=X"yz"==
==FNvmask=X"yz"==
<!--Caution: <div> above-->
<!--Caution: <div> above-->
<var>FNVMASK</var> specifies which of the eight characters of the name of the file being unloaded
<p></p>
FNVMASK specifies which of the 8 characters of the name of the file being unloaded
may differ from the file name stored on the disk pages of the <var class="product">Model 204</var> file.
may differ from the file name stored on the disk pages of the <var class="product">Model 204</var> file.
It must be specified as 5 characters of the form:
It must be specified as five characters of the form:
<table>
<p class="syntax">X"yz"</p>
<tr><th>X"yz"</th><td>where <b><i>yz</i></b> are two hexadecimal digits representing an 8-bit mask. Each 1-bit in the mask corresponds to a character position in the file name which may be different than the file name stored on the disk pages of the <var class="product">Model 204</var> file.</td></tr>
<p>
</table>
Where <var class="term">yz</var> are two hexadecimal digits representing an 8-bit mask. Each 1-bit in the mask corresponds to a character position in the file name which may be different than the file name stored on the disk pages of the <var class="product">Model 204</var> file.</p>
<p></p>
 
In the following example, the file 'BFILE' has the name 'AFILE' on
In the following example, the file <code>BFILE</code> has the name <code>AFILE</code> on
its disk pages, and so the first character (X"80") must be masked as
its disk pages, so the first character (X'80') must be masked as
different:
different:
<p class="code"><nowiki>//CREATE  EXEC PGM=BATCH204
<p class="code"><nowiki>//CREATE  EXEC PGM=BATCH204
Line 134: Line 129:
  ...
  ...
</nowiki></p>
</nowiki></p>
<p></p>
 
If <var class="product">Fast/Unload</var> is invoked via the <var class="product">Fast/Unload SOUL Interface</var>, the value of the FNVMASK parameter
If <var class="product">Fast/Unload</var> is invoked via the <var class="product">Fast/Unload SOUL Interface</var>, the value of the <var>[[FNVMASK parameter|FNVMASK]]</var> parameter
in <var class="product">Model 204</var> is automatically communicated, and this is the default value of
in <var class="product">Model 204</var> is automatically communicated, and this is the default value of
FNVMASK for the unload.
<var>FNVMASK</var> for the unload.
It may also be passed in the fifth argument of $Funload or the <i>Parameters</i>
It may also be passed in the fifth argument of <var>$Funload</var> or in the <i>Parameters</i>
parameter to the FastUnload or FastUnloadTask methods,
parameter to the <var>[[FastUnload (Recordset function)|FastUnload]]</var> or <var>[[FastUnloadTask (Recordset function)|FastUnloadTask]]</var> method.
but if so, its value must be the same as the <var class="product">Model 204</var> FNVMASK parameter.
If so passed, however, its value must be the same as the <var class="product">Model 204</var> <var>FNVMASK</var> parameter.
If the <var class="product">Fast/Unload SOUL Interface</var> is used to unload a file with FNVMASK set to a non-zero
 
value, you must use version 6.1 or later of the <var class="product">Sirius Mods</class> or version 7.5 or later of <var class="product">Model 204</var>.
If the <var class="product">Fast/Unload SOUL Interface</var> is used to unload a file with <var>FNVMASK</var> set to a non-zero
The <var class="product">Model 204</var> FNVMASK parameter
value, you must use version 7.5 or later of <var class="product">Model 204</var>.
is part of the <var class="product">Sirius Performance Enhancements</var>; that product, at least through its release
in version 6.1, is not generally available.
<p></p>
This parameter is new in <var class="product">Fast/Unload</var> version 4.1.
This parameter is new in <var class="product">Fast/Unload</var> version 4.1.
==Frecord=n==
==Frecord=n==
<p></p>
This parameter sets the <var class="product">Model 204</var> record number at which unloading is to begin.
This sets the <var class="product">Model 204</var> record number at which unloading is to begin.
<var>FRECORD</var> must be followed by a positive decimal integer that indicates the desired
FRECORD
must be followed by a positive decimal integer that indicates the desired
starting record number.
starting record number.
This can be useful
This can be useful
Line 158: Line 150:
one believes that the records at the start of the data file are not
one believes that the records at the start of the data file are not
representative of the rest of the data file.
representative of the rest of the data file.
The default for this value is 0 which means that <var class="product">Fast/Unload</var> starts unloading
 
at record 0 of the input file.
The default value for <var>FRECORD</var> is 0, which means that <var class="product">Fast/Unload</var> starts unloading at record 0 of the input file.
Note that if the indicated record number does
<p class="note"><b>Note:</b> If the indicated record number does
not exist, unloading simply begins at the first existing record after the
not exist, unloading begins at the first existing record after the
indicated starting record number.
indicated starting record number. </p>
<p></p>
The FRECORD parameter only applies to the first file, if a group unload
The <var>FRECORD</var> parameter applies only to the first file, if a group unload
is being performed.
is being performed.
   
   
Line 170: Line 162:
==FStats[=AVGTOT|MINMAX]==
==FStats[=AVGTOT|MINMAX]==
<!--Caution: <div> above-->
<!--Caution: <div> above-->
This parameter gathers field, Table, and procedure statistics,
<p></p>
and it checks file integrity during the run.
This will gather field, Table, and procedure statistics,
 
and it will check file integrity during the run.
If <var>FSTATS</var> is specified, the <var class="product">Fast/Unload</var> report will contain a list
If this option is selected, the <var class="product">Fast/Unload</var> report will contain a list
of all defined fields in the database file, with field definition information
of all defined fields in the database file, with field definition information
and statistics about occurrences of the fields.
and statistics about occurrences of the fields.
It will also perform various integrity checks, and provide statistics about
<var>FSTATS</var> processing also performs various integrity checks and provides statistics about
Table B and the file's procedures.
Table B and the file's procedures.
<p></p>
 
The FSTATS directive
Instead of the <var>FSTATS</var> parameter, you can also use the <var>[[Fast/Unload Extraction Language (FUEL)#fst|FSTATS]]</var> directive, which overrides any specification of the <var>FSTATS</var> parameter.
can be used instead of the FSTATS parameter.
This directive can also control the quantity of statistics reported for each field by using the <var>AVGTOT</var> or the <var>MINMAX</var> option (although <code>PARM='FSTATS=AVGTOT'</code> or <code>PARM='FSTATS=MINMAX'</code> provides the same processing as
Also,
the corresponding <var>FSTATS</var> directives). See [[Fast/Unload Extraction Language (FUEL)#fst|FSTATS [AVGTOT | MINMAX&#x5C;]] for a description of the <var>FSTATS</var> directive and for an
the quantity of statistics reported for each field can be controlled by
the FSTATS directive, using the AVGTOT or MINMAX option.
PARM='FSTATS=AVGTOT' or PARM='FSTATS=MINMAX' provides the same processing as
the corresponding FSTATS directives; the
FSTATS directive over-rides any specification of the FSTATS parameter.
See [[Fast/Unload Extraction Language (FUEL)#fst|FSTATS [AVGTOT | MINMAX&#x5C;]] for a description of the FSTATS directive, and for an
explanation of the statistics displayed on the <var class="product">Fast/Unload</var> report listing.
explanation of the statistics displayed on the <var class="product">Fast/Unload</var> report listing.
<p></p>
The default processing for FSTATS with neither AVGTOT nor MINMAX is
The default processing for <var>FSTATS</var> with neither <var>AVGTOT</var> nor <var>MINMAX</var> is
MINMAX, although this default can be changed with a customization zap
<var>MINMAX</var>, although this default can be changed with a customization zap
(see [[Fast/Unload customization of defaults#cusfst|Setting default FSTATS processing]]).
(see [[Fast/Unload customization of defaults#cusfst|Setting default FSTATS processing]]).
<p></p>
 
FSTATS is not valid if the Field Statistics
<var>FSTATS<var> is not valid if the Field Statistics Option is not linked with your Fast Unload load module.
Option is not linked with your Fast Unload load module.
   
   
<div id="foutprm"></div>
<div id="foutprm"></div>
==FUnout==
==FUnout==
<!--Caution: <div> above-->
<!--Caution: <div> above-->
This parameter directs <var class="product">Fast/Unload</var> to perform the I/O to the
<p></p>
output sequential data set(s), even if going through a sort due to
This indicates that you would like <var class="product">Fast/Unload</var> to perform the I/O to the
<var>SORT</var> statement(s) and/or <var>UAI</var> statement(s) with the <var>SORT</var> option.
output sequential data set(s) even if going through a sort due to
 
SORT statement(s) and/or UAI statement(s) with the SORT option.
In most cases, when sorting data on one or more output streams,
In most cases, when sorting data on one or more output streams,
the sort package is responsible for performing output to that
the sort package is responsible for performing output to that
output stream's sequential data set.
output stream's sequential data set.
This parameter forces sorted output to be passed
The <var>FUNOUT</var> parameter forces sorted output to be passed
back to <var class="product">Fast/Unload</var> via an E35 exit which then performs the I/O.
back to <var class="product">Fast/Unload</var> via an E35 exit which then performs the I/O.
<p></p>
You might want
You might want to use the <var>FUNOUT</var> option because:
to use the FUNOUT option because:
<ul>
<ul>
<li>You want to have sorted data go to an OS format minidisk under CMS.
<li>You want to have sorted data go to an OS-format minidisk under CMS. </li>
<li>You want to use <var class="product">Fast/Unload</var>'s defaults for output dataset format, rather
<li>You want to use <var class="product">Fast/Unload</var>'s defaults for output data set format, rather
than your sort package's defaults.
than your sort package's defaults. </li>
<li>Your sort package sometimes truncates output records.
<li>Your sort package sometimes truncates output records. </li>
</ul>
</ul>
<p></p>
Note that use of the FUNOUT option will probably increase CPU overhead and maybe
<p class="note"><b>Note:</b> Using the <var>FUNOUT</var> option will probably increase CPU overhead and perhaps the I/O overhead. </p>
I/O overhead.
 
You can customize <var class="product">Fast/Unload</var> so that FUNOUT is the default; see
You can customize <var class="product">Fast/Unload</var> so that <var>FUNOUT</var> is the default; see
[[Fast/Unload customization of defaults#sortout|Changing the default sort parameter]].
[[Fast/Unload customization of defaults#sortout|Changing the default sort parameter]].
<p></p>
The FUNOUT option is mutually exclusive with the SORTOUT and
The <var>FUNOUT</var> option is mutually exclusive with the <var>SORTOUT</var> and
SORTOUTD options (see [[#soutprm|SORTOut | SORTOUTD]]).
<var>SORTOUTD</var> options (see [[#soutprm|SORTOut | SORTOUTD]]).
<p></p>
 
A line showing FUNOUT = ON in the <var class="product">Fast/Unload</var> report data set indicates
A <code>FUNOUT=ON</code> line in the <var class="product">Fast/Unload</var> report data set indicates
that FUNOUT is in effect. SORTOUT and SORTOUTD will indicate OFF.
that <var>FUNOUT</var> is in effect. <var>SORTOUT</var> and <var>SORTOUTD</var> will indicate <var>OFF</var>.
 
==Harderr= {ABEND|CANCEL|SKIP|SKIP0|IGNORE|IGNORE0}==
==Harderr= {ABEND|CANCEL|SKIP|SKIP0|IGNORE|IGNORE0}==
<p></p>
<var>HARDERR</var> sets the action to be performed when a hard error is encountered.
This sets the action to be performed when a hard error is encountered.
A hard error is a missing record or extension record
A hard error is a missing record or extension record
or an unknown field in the <var class="product">Model 204</var> data file.
or an unknown field in the <var class="product">Model 204</var> data file.
These can result
These can result
from running against a data file or record set that is not protected from
from one of the following:
change with a record set lock when using the <var class="product">Fast/Unload SOUL Interface</var>
<ul>
or a database file enqueue when running <var class="product">Fast/Unload</var> as a standalone load
<li>Running against a data file or record set that is not protected from
module.
change with a record set lock when using the <var class="product">Fast/Unload SOUL Interface</var>.</li>
This type of error can also occur if running <var class="product">Fast/Unload</var>
 
<li>A database file enqueue when running <var class="product">Fast/Unload</var> as a standalone load
module. </li>
 
<li>Running <var class="product">Fast/Unload</var>
against a broken file (other broken file errors, for example, inconsistencies
against a broken file (other broken file errors, for example, inconsistencies
in Table D, always cause <var class="product">Fast/Unload</var> to end with a diagnostic dump).
in Table D, always cause <var class="product">Fast/Unload</var> to end with a diagnostic dump). </li>
<p></p>
</ul>
The valid values of HARDERR are:
 
<ul>
The valid values of <var>HARDERR</var> are:
<li>ABEND - Which means stop the <var class="product">Fast/Unload</var> with a job step ABEND.
<table class="thJustBold">
<li>CANCEL - Which means stop the <var class="product">Fast/Unload</var> with a minimum job step
<tr class="head"><th>Value</th><th>Meaning</th></tr>
completion code of 4.
 
<li>SKIP - Which means do not unload any more from the
<tr><th>ABEND</th>
current record for a UAI or PAI,
<td>Stop the <var class="product">Fast/Unload</var> with a job step ABEND.</td></tr>
or skip the rest of the record for other forms
 
of unload;
<tr><th>CANCEL</th>
the minimum job step completion code is 4.
<td>Stop the <var class="product">Fast/Unload</var> with a minimum job step
completion code of 4.</td></tr>
 
<tr><th>SKIP</th>
<td>Do not unload any more from the
current record for a <var>UAI</var> or <var>PAI</var>,
or skip the rest of the record for other forms of unload.
The minimum job step completion code is 4.
In order to perform the
In order to perform the
UAI and PAI operations as quickly as possible, some of
<var>UAI</var> and <var>PAI</var> operations as quickly as possible, some of
the record may have been unloaded when a hard error is detected.
the record may have been unloaded when a hard error is detected.</td></tr>
<li>SKIP0 - Which means skip (as above), but do not change
 
the minimum job step completion code.
<tr><th>SKIP0</th>
<li>IGNORE - Which means ignore the error.
<td>Skip (as for <var>SKIP</var>, above), but do not change
This option is identical to SKIP
the minimum job step completion code.</td></tr>
 
<tr><th>IGNORE</th>
<td>Ignore the error.
This option is identical to <var>SKIP</var>
except in the case of a missing extension record.
except in the case of a missing extension record.
In this case HARDERR=IGNORE
In this case, <code>HARDERR=IGNORE</code>
means that <var class="product">Fast/Unload</var> should simply act as if the record did not contain
means that <var class="product">Fast/Unload</var> should simply act as if the record did not contain
an extension record pointer.
an extension record pointer.
The minimum job step completion code is 4.
The minimum job step completion code is 4.</td></tr>
<li>IGNORE0 - Which means ignore (as above), but do not change
 
the minimum job step completion code.
<tr><th>IGNORE0</th>
</ul>
<td>Ignore (as <var>IGNORE</var>, above), but do not change
<p></p>
the minimum job step completion code.</td></tr>
The default value for this parameter is CANCEL.
</table>
 
The default value for the <var>HARDERR</var> parameter is <var>CANCEL</var>.
In all cases, hard errors are always reported.
In all cases, hard errors are always reported.
==Ioapp=pp==
==Ioapp=pp==
<p></p>
For Fujitsu/AE systems, this parameter sets the two-character name of the <var class="product">Model 204</var>
For Fujitsu/AE systems, this sets the two character name of the <var class="product">Model 204</var>
DCB appendage.
DCB appendage.
<var class="product">Fast/Unload</var> uses the <var class="product">Model 204</var> DCB appendage when running under Fujitsu/AE
<var class="product">Fast/Unload</var> uses the <var class="product">Model 204</var> DCB appendage when running under Fujitsu/AE
systems to specify storage areas to be page fixed for EXCP I/O.
systems to specify storage areas to be page fixed for EXCP I/O.
The value
The value of this parameter should be the same as the <var class="product">Model 204</var> <var>[[EXCPVR parameter|EXCPVR]]</var> parameter.
of this parameter should be the same as the <var class="product">Model 204</var> "EXCPVR" parameter.
 
IOAPP should be specified for batch mode operation only.
<var>IOAPP</var> should be specified for batch mode operation only.
 
When invoked via the <var class="product">Fast/Unload SOUL Interface</var>,
When invoked via the <var class="product">Fast/Unload SOUL Interface</var>,
this parameter is ignored and the <var class="product">Model 204</var> "EXCPVR" parameter
this parameter is ignored and the <var class="product">Model 204</var> <var>EXCPVR</var> parameter
is used. IOAPP is ignored for Hitachi and IBM systems.
is used. <var>IOAPP<.var> is ignored for Hitachi and IBM systems.
   
   
<div id="libuff"></div>
<div id="libuff"></div>
==LIBuff=n==
==LIBuff=n==
<!--Caution: <div> above-->
<!--Caution: <div> above-->
<p></p>
This specifies the size of the work area used to hold a normalized
This specifies the size of the work area used to hold a normalized
FUEL statement ("normalized" means reducing to a single blank
FUEL statement ("normalized" means reducing to a single blank
all multiple blanks separating statement tokens, and putting together
all multiple blanks separating statement tokens, and putting together
physical line continuations).
physical line continuations).
<p></p>
 
LIBUFF
<var>LIBUFF</var> must be followed by a positive decimal integer that indicates the desired
must be followed by a positive decimal integer that indicates the desired
size.
size.
It is specified in bytes; the default is 7000, which should be more
It is specified in bytes; the default is 7000, which should be more
Line 304: Line 300:
If you receive a FUNL error message indicating the line is too long,
If you receive a FUNL error message indicating the line is too long,
you can increase this parameter.
you can increase this parameter.
<p></p>
 
This parameter is new in <var class="product">Fast/Unload</var> version 4.1.
This parameter is new in <var class="product">Fast/Unload</var> version 4.1.
==List==
==List==
<p></p>
This parameter indicates that the <var class="product">Fast/Unload</var> input program lines should be printed
This indicates that the <var class="product">Fast/Unload</var> input program lines should be printed
on the <var class="product">Fast/Unload</var> report data set.
on the <var class="product">Fast/Unload</var> report data set.
This parameter is the default for <var class="product">Fast/Unload</var>, unless it has been
<var>LIST</var> is the default for <var class="product">Fast/Unload</var>, unless it has been
customized (see [[Fast/Unload customization of defaults#cuslis|Setting NOLIST as default]]).
customized (see [[Fast/Unload customization of defaults#cuslis|Setting NOLIST as default]]).
The inverse of this parameter is NOList.
The inverse of this parameter is <var>[[#NOList|NOLIST]]</var>.
<p></p>
When <var class="product">Fast/Unload</var> is invoked via the
When <var class="product">Fast/Unload</var> is invoked via the
<var class="product">Fast/Unload SOUL Interface</var>, if the ALLMSG parameter is not specified,
<var class="product">Fast/Unload SOUL Interface</var>, if the <var>ALLMSG</var> parameter is not specified,
the NOLIST parameter is default.
the <var>NOLIST</var> parameter is the default.
<p></p>
 
The program listing contains the hexadecimal program offset corresponding to the
The program listing contains the hexadecimal program offset corresponding to the
input line, the
input line, the
nesting level (when it changes) with an indication of an increase (+) or decrease (-)
nesting level (when it changes) with an indication of an increase (<tt>+</tt>) or decrease (<tt>-</tt>)
in the level or that a block is introduced which has the same nesting
in the level or that a block is introduced which has the same nesting
level (=), the statement number, and the program source statement.
level (<tt>=</tt>), the statement number, and the program source statement.
<p></p>
 
This parameter is new in <var class="product">Fast/Unload</var> version 4.0.
This parameter is new in <var class="product">Fast/Unload</var> version 4.0.
==Maxrec=n==
==Maxrec=n==
<p></p>
This sets the maximum number of input records that will be processed.
This sets the maximum number of input records that will be processed.
MAXREC
<var>MAXREC</var> must be followed by a positive decimal integer that indicates the desired
must be followed by a positive decimal integer that indicates the desired
maximum.
maximum.
This can be useful
 
<var>MAXREC</var> can be useful
when debugging a FUEL program or when doing tuning runs for <var class="product">Fast/Unload</var>.
when debugging a FUEL program or when doing tuning runs for <var class="product">Fast/Unload</var>.
When the maximum number of records has been processed the <var class="product">Fast/Unload</var> terminates
When the maximum number of records has been processed the <var class="product">Fast/Unload</var> terminates
as it ordinarily would when all records have be processed.
as it ordinarily would when all records have be processed.
The default for this parameter is 0 which means that all records to the end of
The default for this parameter is 0, which means that all records to the end of
the data file are unloaded.
the data file are unloaded.
==Nbbuff=n==
==Nbbuff=n==
<p></p>
This parameter specifies the number of base record buffers.
This specifies the number of base record buffers.
<var>NBBUFF</var> must be followed by
NBBUFF must be followed by
a decimal integer, which specifies the number of base record
a decimal integer.
This integer specifies the number of base record
buffers.
buffers.
The size of these buffers is determined by the track size of the input
The size of these buffers is determined by the track size of the input
device and the value specified for SBBUFF.
device and the value specified for <var>[[#Sbbuf|SBBUFF]]</var>.
Specifying a value of 1 for NBBUFF prevents any read ahead of base record
 
Specifying a value of 1 for <var>NBBUFF</var> prevents any read ahead of base record
buffers.
buffers.
Specifying a value greater than 2 would not be likely to provide much
Specifying a value greater than 2 would not be likely to provide much
Line 354: Line 350:
physically distant from the base records, a single base record buffer might
physically distant from the base records, a single base record buffer might
provide better performance than multiple base record buffers.
provide better performance than multiple base record buffers.
The default value for NBBUFF is 2 meaning that <var class="product">Fast/Unload</var> will always have a
 
The default value for NBBUFF is 2, meaning that <var class="product">Fast/Unload</var> will always have a
current base record buffer and will read ahead into the other buffer.
current base record buffer and will read ahead into the other buffer.
==NEbuff=n==
==NEbuff=n==
<p></p>
This parameter specifies the number of extension record buffers.
This specifies the number of extension record buffers.
<var>NEBUFF</var> must be followed by a decimal integer that
NEBUFF must be followed by a decimal integer that
specifies the number of extension record buffers.
specifies the number of extension record buffers.
The size of these buffers is determined by the track size of the
The size of these buffers is determined by the track size of the
input device and the value specified for SEBUFF.
input device and the value specified for <var>[[#Sebuff|SEBUFF]]</var>.
<p></p>
 
Specifying a value greater than 1 for NEBUFF allows the extension records
Specifying a value greater than 1 for <var>NEBUFF</var> allows the extension records
buffers to act as a first-in/first-out buffer pool.
buffers to act as a first-in/first-out buffer pool.
If you expect many
If you expect many
physically scattered extension records, or if the <var class="product">Fast/Unload</var> "Wait for
physically scattered extension records, or if the <var class="product">Fast/Unload</var> "Wait for
extension buffer" statistic has a high value, you may want to use a high value
extension buffer" statistic has a high value, you may want to use a high value
for NEBUFF.
for <var>NEBUFF</var>. This would be especially desirable if
This would be especially desirable if
you have a large amount of real memory on your CPU.
you have a large amount of real memory on your CPU.
<p></p>
 
The default value for NEBUFF is 2 when invoked via the <var class="product">Fast/Unload SOUL Interface</var>
The default value for <var>NEBUFF</var> is 2 when invoked via the <var class="product">Fast/Unload SOUL Interface</var>,
and it is 40 when invoked as a standalone load module.
and it is 40 when invoked as a standalone load module.
This prevents <var class="product">Fast/Unload</var> from wasting unnecessary storage when running in an
This prevents <var class="product">Fast/Unload</var> from wasting unnecessary storage when running in an
ONLINE address
ONLINE address
space while providing a good sized extension buffer pool when running in its own
space, while providing a good sized extension buffer pool when running in its own
address space.
address space.
Note that extreme cases of extension record scattering will create
 
uncorrectable performance problems for <var class="product">Fast/Unload</var> as well as for <var class="product">Model 204</var>.
<p class="note"><b>Note:</b> Extreme cases of extension record scattering will create
uncorrectable performance problems for <var class="product">Fast/Unload</var> as well as for <var class="product">Model 204</var>. </p>
 
==NObuff=n==
==NObuff=n==
<p></p>
This parameter specifies the number of output record buffers.
This specifies the number of output record buffers.
<var>NOBUFF</var> must be followed by a decimal integer that
NOBUFF must be followed by a decimal integer that
specifies the number of output record buffers.
specifies the number of output record buffers.
The size of these buffers is determined by the DD or FILEDEF statements
The size of these buffers is determined by the DD or FILEDEF statements
Line 397: Line 394:
than or equal to 4096, or the record length if output records can be more than
than or equal to 4096, or the record length if output records can be more than
4096 bytes long.
4096 bytes long.
<p></p>
 
If the <var class="product">Fast/Unload</var> "Wait for output buffer" statistic has a high value,
If the <var class="product">Fast/Unload</var> "Wait for output buffer" statistic has a high value,
you might want to use a high value for NOBUFF.
you might want to use a high value for <var>NOBUFF</var>.
This would be especially
This would be especially
desirable if you have a large amount of real memory on your CPU.
desirable if you have a large amount of real memory on your CPU.
The default value for NOBUFF is 2 meaning that <var class="product">Fast/Unload</var> will be able to
 
The default value for <var>NOBUFF</var> is 2, meaning that <var class="product">Fast/Unload</var> will be able to
write one buffer while it is filling the other, thus providing overlap of output
write one buffer while it is filling the other, thus providing overlap of output
I/O with CPU processing.
I/O with CPU processing.
If running under z/OS and using a relatively small
If running under z/OS and using a relatively small
output block size, specifying a larger value for NOBUFF would enable <var class="product">Fast/Unload</var>
output block size, specifying a larger value for <var>NOBUFF</var> enables <var class="product">Fast/Unload</var>
to take advantage of z/OS chained scheduling of I/O which would probably provide
to take advantage of z/OS chained scheduling of I/O, which would probably provide
a significant speed increase.
a significant speed increase.
<p></p>
 
The maximum value for NOBUFF is 99.
The maximum value for <var>NOBUFF</var> is 99.
   
   
<div id="noenq"></div>
<div id="noenq"></div>
==NOEnq==
==NOEnq==
<!--Caution: <div> above-->
<!--Caution: <div> above-->
This parameter indicates that <var class="product">Fast/Unload</var> does not attempt to use standard <var class="product">Model 204</var> enqueuing on the input data file.
<p></p>
This indicates that <var class="product">Fast/Unload</var> does not attempt to use standard <var class="product">Model 204</var>
enqueueing on the input data file.
By default, <var class="product">Fast/Unload</var> attempts to obtain
By default, <var class="product">Fast/Unload</var> attempts to obtain
a share lock on the input data file, and it will terminate if it is unable to
a share lock on the input data file, and it will terminate if it is unable to
obtain the share lock.
obtain the share lock.
<p></p>
 
The NOENQ parameter may be useful if you want to run
The <var>NOENQ</var> parameter may be useful if you want to run
against a <var class="product">Model 204</var> data file that has been opened by an ONLINE in exclusive
against a <var class="product">Model 204</var> data file that has been opened by an ONLINE in exclusive
mode but which you know is not being updated,
mode but which you know is not being updated,
Line 430: Line 425:
or if absolute data consistency is not critical (for
or if absolute data consistency is not critical (for
creating certain reports, say, as opposed to reorganizing a file).
creating certain reports, say, as opposed to reorganizing a file).
<p></p>
 
This parameter has no meaning when <var class="product">Fast/Unload</var> is invoked via the <var class="product">Fast/Unload SOUL Interface</var>.
This parameter has no meaning when <var class="product">Fast/Unload</var> is invoked via the <var class="product">Fast/Unload SOUL Interface</var>.
==NOList==
==NOList==
<p></p>
This parameter indicates that the <var class="product">Fast/Unload</var> input program lines should not be printed
This indicates that the <var class="product">Fast/Unload</var> input program lines should not be printed
on the <var class="product">Fast/Unload</var> report data set.
on the <var class="product">Fast/Unload</var> report data set.
The inverse of this parameter is List.
The inverse of this parameter is <var>[[#List|LIST]]</var>.
<p></p>
 
When <var class="product">Fast/Unload</var> is invoked via the
When <var class="product">Fast/Unload</var> is invoked via the
<var class="product">Fast/Unload SOUL Interface</var>, if the ALLMSG parameter is not specified,
<var class="product">Fast/Unload SOUL Interface</var>, if the <var>ALLMSG</var> parameter is not specified,
the NOLIST parameter is default.
the <var>NOLIST</var> parameter is the default.
NOLIST can also be customized as the default for your installation;
 
<var>NOLIST</var> can be customized as the default for your installation;
see [[Fast/Unload customization of defaults#cuslis|Setting NOLIST as default]].
see [[Fast/Unload customization of defaults#cuslis|Setting NOLIST as default]].
<p></p>
 
A <code>LIST = OFF</code> line in the <var class="product">Fast/Unload</var> report data set indicates
A <code>LIST=OFF</code> line in the <var class="product">Fast/Unload</var> report data set indicates
that NOLIST is in effect.
that <var>NOLIST</var> is in effect.
<p></p>
 
This parameter is new in <var class="product">Fast/Unload</var> version 4.0.
This parameter is new in <var class="product">Fast/Unload</var> version 4.0.
==NOTify==
==NOTify==
<p></p>
This parameter indicates that you want to be notified with a warning when the unload
This indicates that you want to be notified with a warning when the unload
is complete.
is complete.
This parameter only has meaning when <var class="product">Fast/Unload</var> is invoked
The <var>NOTIFY</var> parameter has meaning only if <var class="product">Fast/Unload</var> is invoked
via the <var class="product">Fast/Unload SOUL Interface</var>.
via the <var class="product">Fast/Unload SOUL Interface</var>.
==Orecerr={CANCEL|SKIP|IGNORE}==
==Orecerr={CANCEL|SKIP|IGNORE}==
<p></p>
This parameter sets the action to be performed when an output record error is
This sets the action to be performed when an output record error is
encountered.
encountered.
This currently only refers to an output record exceeding the
This currently refers only to an output record exceeding the
output record size.
output record size.
The valid values ORECERR are:
 
The valid values of <var>ORECERR</var> are:
<ul>
<ul>
<li>CANCEL &mdash; Stop the <var class="product">Fast/Unload</var>.
<li><var>CANCEL</var> &mdash; Stop the <var class="product">Fast/Unload</var>. </li>
<li>SKIP &mdash; Skip the current record.
<li><var>SKIP</var> &mdash; Skip the current record. </li>
<li>IGNORE &mdash; Ignore the error and simply truncate the record.
<li><var>IGNORE</var> &mdash; Ignore the error and simply truncate the record. </li>
</ul>
</ul>
<p></p>
 
The default value for this parameter is 'CANCEL'.
The default value for this parameter is <var>CANCEL</var>.
For any value of ORECERR, output record errors are reported.
For any value of <var>ORECERR</var>, output record errors are reported.
 
==Sbbuff=n==
==Sbbuff=n==
<p></p>
This parameter specifies the size of base record buffers in tracks.
This specifies the size of base record buffers in tracks.
<var>SBBUFF</var> must be followed by a decimal integer.
SBBUFF must be
followed by a decimal integer.
This integer specifies the size of base record
This integer specifies the size of base record
buffers in tracks.
buffers in tracks.
Base record buffers are used to read in the non-extension record parts of
Base record buffers are used to read in the non-extension record parts of
<var class="product">Model 204</var> data files.
<var class="product">Model 204</var> data files.
Extension records which happen to be contained in a
Extension records that happen to be contained in a
current base record buffer will also be read from the base record buffer.
current base record buffer will also be read from the base record buffer.
<p></p>
 
This value must be evenly divided into the number of tracks per cylinder
The <var>SBBUFF</var> value must be an even divisor of the number of tracks per cylinder
on the input device.
on the input device.
For example, if the input device is a 3380, this value
For example, if the input device is a 3380, this value
could be either 1, 3, 5 or 15.
could be either 1, 3, 5 or 15.
If the input data set allocation is not in cylinder units and the input
If the input data set allocation is not in cylinder units and the input
device does not support DEFINE EXTENT, the only
device does not support <code>DEFINE EXTENT</code>, the only
valid value for this parameter is 1.
valid value for this parameter is 1.
(Prior to version 4.0 of <var class="product">Fast/Unload</var>, SBBUFF greater than 1 requires data set
(Prior to version 4.0 of <var class="product">Fast/Unload</var>, <var>SBBUFF</var> greater than 1 requires data set
allocation in cylinder units, regardless of the support for DEFINE
allocation in cylinder units, regardless of the support for <code>DEFINE EXTENT</code>.)
EXTENT.)
Most modern DASDs support <code>DEFINE EXTENT</code>.
Most modern DASDs support DEFINE EXTENT.
 
<p></p>
The default value for <var>SBBUFF</var> is 1, meaning base record buffers are read
The default value for SBBUFF is 1, meaning base record buffers are read
in units of one track.
in units of one track.
If <var class="product">Fast/Unload</var> statistics indicate a high "Base buffer wait
If <var class="product">Fast/Unload</var> statistics indicate a high "Base buffer wait
time" value, one might be able to achieve better performance using a higher
time" value, you might be able to achieve better performance using a higher
value for SBBUFF.
value for <var>SBBUFF</var>.
 
==SEbuff=n==
==SEbuff=n==
<p></p>
This parameter specifies the size of the extension record buffers.
This specifies the size of the extension record buffers.
<var>SEBUFF</var> must be followed by a decimal integer.
SEBUFF must
This integer specifies the size of extension record
be followed by a decimal integer.
This integer specifies the size of extension
record
buffers in tracks.
buffers in tracks.
When an extension record cannot be found in a base record
When an extension record cannot be found in a base record
buffer, it must be synchronously read into an extension record buffer.
buffer, it must be synchronously read into an extension record buffer.
<p></p>
 
This value must be evenly divisible into the number of tracks per cylinder
The <var>SEBUFF</var> value must be an even divisor of the number of tracks per cylinder
on the input device.
on the input device.
For example, if the input device is a 3380, this value
For example, if the input device is a 3380, this value
could be either 1, 3, 5 or 15.
could be either 1, 3, 5 or 15.
If the input data set allocation is not in cylinder units and the input
If the input data set allocation is not in cylinder units and the input
device does not support DEFINE EXTENT, the only
device does not support <code>DEFINE EXTENT</code>, the only
valid value for this parameter is 1.
valid value for this parameter is 1.
(Prior to version 4.0 of <var class="product">Fast/Unload</var>, SEBUFF greater than 1 requires data set
(Prior to version 4.0 of <var class="product">Fast/Unload</var>, <var>SEBUFF</var> greater than 1 requires data set
allocation in cylinder units, regardless of the support for DEFINE
allocation in cylinder units, regardless of the support for <code>DEFINE EXTENT</code>.)
EXTENT.)
Most modern DASDs support <code>DEFINE EXTENT</code>.
Most modern DASDs support DEFINE EXTENT.
 
<p></p>
The default for <var>SEBUFF</var> is 1, meaning extension records are read
The default for SEBUFF is 1, meaning extension records are read
in units of one track.
in units of one track.
In general there is probably no advantage to setting this value to
In general there is probably no advantage to setting this value to
anything other than
anything other than
1 and in fact a large SEBUFF would probably produce degraded performance.
1, and in fact a large <var>SEBUFF</var> would probably produce degraded performance.
 
==SEQ==
==SEQ==
<p></p>
This parameter indicates that the input program (<code>FUNIN</code> in batch mode) has
This parameter indicates that the input program (FUNIN in batch mode) has
sequence numbers in columns 73 through 80.
sequence
If <var>SEQ</var> is specified, all data after
numbers in columns 73 through 80.
If this parameter is specified, all data after
column 72 in the input program is ignored.
column 72 in the input program is ignored.
By default, <var class="product">Fast/Unload</var> reads all
By default, <var class="product">Fast/Unload</var> reads all
columns in the input program.
columns in the input program.
==SKiprec=n==
==SKiprec=n==
<p></p>
This parameter sets the number of input records that will be skipped before the first
This sets the number of input records that will be skipped before the first
record is processed.
record is processed.
The FUEL program or UAI statement is not processed for
The FUEL program or <var>UAI</var> statement is not processed for
skipped records.
skipped records.
This statement is useful when splitting an unload into multiple
This statement is useful when splitting an unload into multiple
pieces.
pieces.
For example, if a database file has approximately 2 million records and you want
For example, if a database file has approximately 2 million records and you want
to split the unload into 2 pieces you could do one unload with MAXREC set to
to split the unload into two pieces, you could do one unload with <var>[[#Maxrec=n|MAXREC]]</var> set to
1000000 then a second unload with SKIPREC set to 1000000.
1000000, then a second unload with <var>SKIPREC</var> set to 1000000.
This parameter is
 
different from FRECORD because FRECORD uses <var class="product">Model 204</var> record numbers while
The <var>SKIPREC</var> parameter is
SKIPREC does not count unused record numbers.
different from <var>[[#Frecord=n|FRECORD]]</var>, because <var>FRECORD</var> uses <var class="product">Model 204</var> record numbers while
When using SKIPREC in conjunction
<var>SKIPREC</var> does not count unused record numbers.
with FRECORD, FRECORD is used to set a starting record number and then SKIPREC
 
records are skipped from that
If using <var>SKIPREC</var> in conjunction
with <var>FRECORD</var>, <var>FRECORD</var> is used to set a starting record number, then <var>SKIPREC</var> records are skipped from that
record number.
record number.
Records skipped for SKIPREC are not counted as processed records
Records skipped for <var>SKIPREC</var> are not counted as processed records
against MAXREC.
against <var>MAXREC</var>.
The default for this parameter is 0 which means that no records are skipped.
 
The default for <var>SKIPREC</var> is 0, which means that no records are skipped.
   
   
<div id="soutprm"></div>
<div id="soutprm"></div>
==SORTOut | SORTOUTD==
==SORTOut | SORTOUTD==
<!--Caution: <div> above-->
<!--Caution: <div> above-->
In contrast to the <var>[[#FUnout|FUNOUT]]</var> parameter, both these parameters tell the
<p></p>
In contrast to the FUNOUT parameter, both these parameters tell the
external sort package to write the sorted records directly to the output
external sort package to write the sorted records directly to the output
sequential data set(s) after the sort.
sequential data set(s) after the sort.
As of version 4.1, SORTOUTD is the default for <var class="product">Fast/Unload</var>, unless it has been
As of version 4.1, <var>SORTOUTD</var> is the default for <var class="product">Fast/Unload</var>, unless it has been
customized (see [[Fast/Unload customization of defaults#sortout|Changing the default sort parameter]]).
customized (see [[Fast/Unload customization of defaults#sortout|Changing the default sort parameter]]).
<p></p>
 
For FUEL programs with one output stream, not explicitly declared
For FUEL programs with one output stream, not explicitly declared
(which includes all programs written prior to version 4.1),
(which includes all programs written prior to version 4.1),
you can specify
you can specify
SORTOUT to maintain the pre-version 4.1 behavior: UAI SORT output is sent to the
<var>SORTOUT</var> to maintain the pre-version 4.1 behavior: <var>UAI SORT</var> output is sent to the
DD named FUNOUT, while non-UAI output is sent to the sort's SORTOUT DD.
DD named <code>FUNOUT</code>, while non-UAI output is sent to the sort's <code>SORTOUT</code> DD.
Alternatively, SORTOUTD provides a more consistent handling of such legacy
Alternatively, <var>SORTOUTD</var> provides a more consistent handling of such legacy
programs: all sorted output, whether UAI or non-UAI, goes to FUNOUT,
programs: all sorted output, whether <var>UAI</var> or non-<var>UAI</var>, goes to <code>FUNOUT</code>,
written by the sort program.
written by the sort program.
<p></p>
 
For programs with multiple outputs, if SORTOUT or SORTOUTD is specified or implied,
For programs with multiple outputs, if <var>SORTOUT</var> or <var>SORTOUTD</var> is specified or implied,
<var class="product">Fast/Unload</var> tells the sort program the user-supplied <i>destination</i>
<var class="product">Fast/Unload</var> tells the sort program the user-supplied <var class="term">destination</var>
for each sorted output stream, and the sort program does its own output.
for each sorted output stream, and the sort program does its own output.
<p></p>
 
SORTOUT, SORTOUTD, and FUNOUT are mutually exclusive. In the <var class="product">Fast/Unload</var> report
<var>SORTOUT</var>, <var>SORTOUTD</var>, and <var>FUNOUT</var> are mutually exclusive. In the <var class="product">Fast/Unload</var> report
dataset, only one of these will be ON.
dataset, only one of these will be <code>ON</code>.
See [[#foutprm|FUnout]].
See [[#foutprm|FUnout]].
==SOrtp={31|24}==
==SOrtp={31|24}==
<p></p>
This parameter indicates the type of parameter list to be used to pass data
This parameter indicates the type of parameter list to be used to pass data
to an external sort package.
to an external sort package.
SORTP must be followed by either 24 or 31.
<var>SORTP</var> must be followed by either 24 or 31.
If 24 is specified, the "old-fashioned" 24-bit parameter list is used.
If 24 is specified, the "old-fashioned" 24-bit parameter list is used.
If 31 is
If 31 is specified, the 31-bit extended parameter list is used.
specified, the 31-bit extended parameter list is used.
 
The default for this parameter as shipped is 31, but
The default for <var>SORTP</var> as shipped is 31, but
you can modify this setting if your site requires.
you can modify this setting if your site requires.
For more details about this parameter see
For more details about this parameter see
[[Fast/Unload customization of defaults#sort|Sort parameter list]].
[[Fast/Unload customization of defaults#sort|Sort parameter list]].
==UPArm="string"==
==UPArm="string"==
<p></p>
This parameter specifies a string that can be accessed in the FUEL
This specifies a string
program as a special variable (<b>#UPARM</b>;
which can be accessed in the FUEL
see [[Fast/Unload Extraction Language (FUEL)#entit|Entities]] for a discussion of special variables in FUEL.)
program as a special variable (<b>#UPARM</b>).
 
(See [[Fast/Unload Extraction Language (FUEL)#entit|Entities]] for a discussion of special variables in FUEL.)
If the <var>UPARM</var> string contains
If the string contains
any blanks, it can be preceded by and followed by one
any blanks, it can be preceded by and followed by one
double quotation mark, for example:
double quotation mark, for example:
Line 608: Line 604:
</nowiki></p>
</nowiki></p>
The double quotation marks
The double quotation marks
will not be part of the value of #UPARM.
will not be part of the value of <var>#UPARM</var>.
 
Under z/OS, the maximum length of the string, not including the
Under z/OS, the maximum length of the string, not including the
quotation marks, is 100.
quotation marks, is 100.
Under CMS, the string may not contain
Under CMS, the string may not contain
blanks, and the length of the string is restricted to 8.
blanks, and the length of the string is restricted to 8.
==Upper==
==Upper==
<p></p>
This parameter indicates that you want the report data set to be written using uppercase characters only.
This indicates that you want the report data set to be written using upper
case characters only.
This option should be used if you are using terminals or
This option should be used if you are using terminals or
printers which do not correctly handle mixed case output.
printers that do not correctly handle mixed-case output.
 
By default,
By default,
<var class="product">Fast/Unload</var> produces mixed case output.
<var class="product">Fast/Unload</var> produces mixed-case output.
 
==See also==
==See also==
[[Fast/Unload overview#WIKFUN$$topics|Fast/Unload topics]]
[[Fast/Unload overview#WIKFUN$$topics|Fast/Unload topics]]

Revision as of 22:41, 20 January 2015

Some basic parameters are provided to control the operation of Fast/Unload. These parameters must be provided either as a PARM on the EXEC card in z/OS, for example:

//FUNLOAD EXEC PGM=FUNLOAD,REGION=4096K, // PARM='NEBUFF=8 SEBUFF=1 SBBUFF=3 SEQ'

Or the parameters may be options on the M204CMS command in CMS, for example:

'M204CMS FUNLOAD ( NEBUFF 8 SEBUFF 1 SBBUFF 3 SEQ %'

Under z/OS, parameters are specified either by a parameter name alone or a parameter name followed by an equal sign (=) followed by the parameter value. Under CMS, parameters are specified either by a parameter name followed by a space and a percent sign (%) or a parameter name followed by a space and a parameter value. In general, one does not have to specify the entire parameter name for Fast/Unload to recognize it. A given parameter can only be set once.

This wiki page describes the parameter settings that are available for Fast/Unload. Note that the minimum required part of the parameter name is specified in uppercase while the rest of the parameter is specified in lowercase.

ABenderr=rc

This parameter specifies the minimum Fast/Unload return code that triggers an ABEND at the end of the run. To prevent the FUNOUT dataset from being cataloged when a severe error is encountered, your JCL might include, for example:

// EXEC PGM=FUNLOAD,PARM=(ABENDERR=8) //FUNOUT DD DISP=(NEW,CATLG,DELETE),...

The default value of this parameter is zero, which means that Fast/Unload will not trigger an ABEND due to the return code.

You can customize the default (see Setting default ABENDERR), but note that the default using the SOUL Interface is always 0.

This parameter is new in Fast/Unload version 4.0.

ALlmsg

This parameter only has meaning when Fast/Unload is invoked via the User Language Interface. This parameter indicates that you want to see all messages that would ordinarily go to the report data set when Fast/Unload is invoked as a standalone program. When invoked via the Fast/Unload SOUL Interface, Fast/Unload attempts to minimize message traffic by suppressing certain informational messages. If you want to see all Fast/Unload report data, specify the ALLMSG option.

For example, the Fast/Unload input program when invoked using the SOUL Interface is not ordinarily echoed on the report. That is to say, when invoked via the Fast/Unload SOUL Interface, the NOLIST parameter is the default unless ALLMSG is specified. If you want to see the input program, specify either the LIST or the ALLMSG parameter.

Asynch

This parameter only has meaning when Fast/Unload is invoked via the Fast/Unload SOUL Interface. This indicates that you want $Funload to return as soon as an unload request has been accepted, rather than upon completion of the unload. When using the ASYNCH parameter, you cannot unload a found set that is locked in exclusive mode (with a Find And Reserve), and you cannot have any data returned to a list.

The ASYNCH parameter is assumed when data is being unloaded to the $FunImg and $FunsStr functions.

Dbcs={IBM|FUJITSU|HITACHI|NONE}

This parameter indicates that your database file has fields that contain DBCS data. DBCS must be followed by the type of DBCS environment under which your database file was created.

Any of the following types are valid: IBM, FUJITSU, HITACHI, or NONE. The default value is NONE. See Fast/Unload customization of defaults if you want to set a DBCS default other than NONE.

Every=n

This indicates that you want Fast/Unload to unload every Nth record in the database. This option is useful for sampling records in a database. For example, to process every other input record, set EVERY to 2.

EVERY processing counts existing records, not Model 204 record numbers.

You can use SKIPREC to set the starting record for EVERY. For example, you can unload every tenth record starting with the 100th record by setting SKIPREC to 99 and setting EVERY to 10. Fast/Unload would process the 100th record, the 110th record, etc. The default for EVERY is 0, which means that all records are processed.

FNvmask=X"yz"

FNVMASK specifies which of the eight characters of the name of the file being unloaded may differ from the file name stored on the disk pages of the Model 204 file. It must be specified as five characters of the form:

X"yz"

Where yz are two hexadecimal digits representing an 8-bit mask. Each 1-bit in the mask corresponds to a character position in the file name which may be different than the file name stored on the disk pages of the Model 204 file.

In the following example, the file BFILE has the name AFILE on its disk pages, so the first character (X'80') must be masked as different:

//CREATE EXEC PGM=BATCH204 //AFILE1 DD DISP=SHR,DSN=DATA.AFILE1 //AFILE2 DD DISP=SHR,DSN=DATA.AFILE2 //CCAIN DD * ... CREATE AFILE FROM AFILE1, AFILE2 ... //COPY1 EXEC PGM=IEBCOPY //SYSUT1 DD DISP=SHR,DSN=DATA.AFILE1 //SYSUT2 DD DISP=SHR,DSN=DATA.BFILE1 //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //COPY2 EXEC PGM=IEBCOPY //SYSUT1 DD DISP=SHR,DSN=DATA.AFILE2 //SYSUT2 DD DISP=SHR,DSN=DATA.BFILE2 //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //UNLOAD EXEC PGM=FUNLOAD,PARM='FNVMASK=X"80"' //BFILE1 DD DISP=SHR,DSN=DATA.BFILE1 //BFILE2 DD DISP=SHR,DSN=DATA.BFILE2 //FUNIN DD * OPEN BFILE ...

If Fast/Unload is invoked via the Fast/Unload SOUL Interface, the value of the FNVMASK parameter in Model 204 is automatically communicated, and this is the default value of FNVMASK for the unload. It may also be passed in the fifth argument of $Funload or in the Parameters parameter to the FastUnload or FastUnloadTask method. If so passed, however, its value must be the same as the Model 204 FNVMASK parameter.

If the Fast/Unload SOUL Interface is used to unload a file with FNVMASK set to a non-zero value, you must use version 7.5 or later of Model 204.

This parameter is new in Fast/Unload version 4.1.

Frecord=n

This parameter sets the Model 204 record number at which unloading is to begin. FRECORD must be followed by a positive decimal integer that indicates the desired starting record number. This can be useful when debugging a FUEL program or when doing tuning runs for Fast/Unload and one believes that the records at the start of the data file are not representative of the rest of the data file.

The default value for FRECORD is 0, which means that Fast/Unload starts unloading at record 0 of the input file.

Note: If the indicated record number does not exist, unloading begins at the first existing record after the indicated starting record number.

The FRECORD parameter applies only to the first file, if a group unload is being performed.

FStats[=AVGTOT|MINMAX]

This parameter gathers field, Table, and procedure statistics, and it checks file integrity during the run.

If FSTATS is specified, the Fast/Unload report will contain a list of all defined fields in the database file, with field definition information and statistics about occurrences of the fields. FSTATS processing also performs various integrity checks and provides statistics about Table B and the file's procedures.

Instead of the FSTATS parameter, you can also use the FSTATS directive, which overrides any specification of the FSTATS parameter. This directive can also control the quantity of statistics reported for each field by using the AVGTOT or the MINMAX option (although PARM='FSTATS=AVGTOT' or PARM='FSTATS=MINMAX' provides the same processing as the corresponding FSTATS directives). See FSTATS [AVGTOT | MINMAX\ for a description of the FSTATS directive and for an explanation of the statistics displayed on the Fast/Unload report listing.

The default processing for FSTATS with neither AVGTOT nor MINMAX is MINMAX, although this default can be changed with a customization zap (see Setting default FSTATS processing).

FSTATS is not valid if the Field Statistics Option is not linked with your Fast Unload load module.

FUnout

This parameter directs Fast/Unload to perform the I/O to the output sequential data set(s), even if going through a sort due to SORT statement(s) and/or UAI statement(s) with the SORT option.

In most cases, when sorting data on one or more output streams, the sort package is responsible for performing output to that output stream's sequential data set. The FUNOUT parameter forces sorted output to be passed back to Fast/Unload via an E35 exit which then performs the I/O.

You might want to use the FUNOUT option because:

  • You want to have sorted data go to an OS-format minidisk under CMS.
  • You want to use Fast/Unload's defaults for output data set format, rather than your sort package's defaults.
  • Your sort package sometimes truncates output records.

Note: Using the FUNOUT option will probably increase CPU overhead and perhaps the I/O overhead.

You can customize Fast/Unload so that FUNOUT is the default; see Changing the default sort parameter.

The FUNOUT option is mutually exclusive with the SORTOUT and SORTOUTD options (see SORTOut | SORTOUTD).

A FUNOUT=ON line in the Fast/Unload report data set indicates that FUNOUT is in effect. SORTOUT and SORTOUTD will indicate OFF.

Harderr= {ABEND|CANCEL|SKIP|SKIP0|IGNORE|IGNORE0}

HARDERR sets the action to be performed when a hard error is encountered. A hard error is a missing record or extension record or an unknown field in the Model 204 data file. These can result from one of the following:

  • Running against a data file or record set that is not protected from change with a record set lock when using the Fast/Unload SOUL Interface.
  • A database file enqueue when running Fast/Unload as a standalone load module.
  • Running Fast/Unload against a broken file (other broken file errors, for example, inconsistencies in Table D, always cause Fast/Unload to end with a diagnostic dump).

The valid values of HARDERR are:

ValueMeaning
ABEND Stop the Fast/Unload with a job step ABEND.
CANCEL Stop the Fast/Unload with a minimum job step completion code of 4.
SKIP Do not unload any more from the

current record for a UAI or PAI, or skip the rest of the record for other forms of unload. The minimum job step completion code is 4. In order to perform the UAI and PAI operations as quickly as possible, some of

the record may have been unloaded when a hard error is detected.
SKIP0 Skip (as for SKIP, above), but do not change the minimum job step completion code.
IGNORE Ignore the error.

This option is identical to SKIP except in the case of a missing extension record. In this case, HARDERR=IGNORE means that Fast/Unload should simply act as if the record did not contain an extension record pointer.

The minimum job step completion code is 4.
IGNORE0 Ignore (as IGNORE, above), but do not change the minimum job step completion code.

The default value for the HARDERR parameter is CANCEL. In all cases, hard errors are always reported.

Ioapp=pp

For Fujitsu/AE systems, this parameter sets the two-character name of the Model 204 DCB appendage. Fast/Unload uses the Model 204 DCB appendage when running under Fujitsu/AE systems to specify storage areas to be page fixed for EXCP I/O. The value of this parameter should be the same as the Model 204 EXCPVR parameter.

IOAPP should be specified for batch mode operation only.

When invoked via the Fast/Unload SOUL Interface, this parameter is ignored and the Model 204 EXCPVR parameter is used. IOAPP<.var> is ignored for Hitachi and IBM systems.

LIBuff=n

This specifies the size of the work area used to hold a normalized FUEL statement ("normalized" means reducing to a single blank all multiple blanks separating statement tokens, and putting together physical line continuations).

LIBUFF must be followed by a positive decimal integer that indicates the desired size. It is specified in bytes; the default is 7000, which should be more than enough for almost all FUEL programs. If you receive a FUNL error message indicating the line is too long, you can increase this parameter.

This parameter is new in Fast/Unload version 4.1.

List

This parameter indicates that the Fast/Unload input program lines should be printed on the Fast/Unload report data set. LIST is the default for Fast/Unload, unless it has been customized (see Setting NOLIST as default). The inverse of this parameter is NOLIST.

When Fast/Unload is invoked via the Fast/Unload SOUL Interface, if the ALLMSG parameter is not specified, the NOLIST parameter is the default.

The program listing contains the hexadecimal program offset corresponding to the input line, the nesting level (when it changes) with an indication of an increase (+) or decrease (-) in the level or that a block is introduced which has the same nesting level (=), the statement number, and the program source statement.

This parameter is new in Fast/Unload version 4.0.

Maxrec=n

This sets the maximum number of input records that will be processed. MAXREC must be followed by a positive decimal integer that indicates the desired maximum.

MAXREC can be useful when debugging a FUEL program or when doing tuning runs for Fast/Unload. When the maximum number of records has been processed the Fast/Unload terminates as it ordinarily would when all records have be processed. The default for this parameter is 0, which means that all records to the end of the data file are unloaded.

Nbbuff=n

This parameter specifies the number of base record buffers. NBBUFF must be followed by a decimal integer, which specifies the number of base record buffers. The size of these buffers is determined by the track size of the input device and the value specified for SBBUFF.

Specifying a value of 1 for NBBUFF prevents any read ahead of base record buffers. Specifying a value greater than 2 would not be likely to provide much of a performance gain and could introduce significant delays in retrieving extension records. In fact, if extension records are expected to be numerous and physically distant from the base records, a single base record buffer might provide better performance than multiple base record buffers.

The default value for NBBUFF is 2, meaning that Fast/Unload will always have a current base record buffer and will read ahead into the other buffer.

NEbuff=n

This parameter specifies the number of extension record buffers. NEBUFF must be followed by a decimal integer that specifies the number of extension record buffers. The size of these buffers is determined by the track size of the input device and the value specified for SEBUFF.

Specifying a value greater than 1 for NEBUFF allows the extension records buffers to act as a first-in/first-out buffer pool. If you expect many physically scattered extension records, or if the Fast/Unload "Wait for extension buffer" statistic has a high value, you may want to use a high value for NEBUFF. This would be especially desirable if you have a large amount of real memory on your CPU.

The default value for NEBUFF is 2 when invoked via the Fast/Unload SOUL Interface, and it is 40 when invoked as a standalone load module. This prevents Fast/Unload from wasting unnecessary storage when running in an ONLINE address space, while providing a good sized extension buffer pool when running in its own address space.

Note: Extreme cases of extension record scattering will create uncorrectable performance problems for Fast/Unload as well as for Model 204.

NObuff=n

This parameter specifies the number of output record buffers. NOBUFF must be followed by a decimal integer that specifies the number of output record buffers. The size of these buffers is determined by the DD or FILEDEF statements for the output data set(s). If no block size is specified in the data definitions for the output data set(s), Fast/Unload uses the largest possible block size given other data set characteristics. If output is going directly to a sort package, the size of the output buffers is always either the largest possible block size less than or equal to 4096, or the record length if output records can be more than 4096 bytes long.

If the Fast/Unload "Wait for output buffer" statistic has a high value, you might want to use a high value for NOBUFF. This would be especially desirable if you have a large amount of real memory on your CPU.

The default value for NOBUFF is 2, meaning that Fast/Unload will be able to write one buffer while it is filling the other, thus providing overlap of output I/O with CPU processing. If running under z/OS and using a relatively small output block size, specifying a larger value for NOBUFF enables Fast/Unload to take advantage of z/OS chained scheduling of I/O, which would probably provide a significant speed increase.

The maximum value for NOBUFF is 99.

NOEnq

This parameter indicates that Fast/Unload does not attempt to use standard Model 204 enqueuing on the input data file. By default, Fast/Unload attempts to obtain a share lock on the input data file, and it will terminate if it is unable to obtain the share lock.

The NOENQ parameter may be useful if you want to run against a Model 204 data file that has been opened by an ONLINE in exclusive mode but which you know is not being updated, if you want to run against a Model 204 data file that is update protected by a security package, or if absolute data consistency is not critical (for creating certain reports, say, as opposed to reorganizing a file).

This parameter has no meaning when Fast/Unload is invoked via the Fast/Unload SOUL Interface.

NOList

This parameter indicates that the Fast/Unload input program lines should not be printed on the Fast/Unload report data set. The inverse of this parameter is LIST.

When Fast/Unload is invoked via the Fast/Unload SOUL Interface, if the ALLMSG parameter is not specified, the NOLIST parameter is the default.

NOLIST can be customized as the default for your installation; see Setting NOLIST as default.

A LIST=OFF line in the Fast/Unload report data set indicates that NOLIST is in effect.

This parameter is new in Fast/Unload version 4.0.

NOTify

This parameter indicates that you want to be notified with a warning when the unload is complete. The NOTIFY parameter has meaning only if Fast/Unload is invoked via the Fast/Unload SOUL Interface.

Orecerr={CANCEL|SKIP|IGNORE}

This parameter sets the action to be performed when an output record error is encountered. This currently refers only to an output record exceeding the output record size.

The valid values of ORECERR are:

  • CANCEL — Stop the Fast/Unload.
  • SKIP — Skip the current record.
  • IGNORE — Ignore the error and simply truncate the record.

The default value for this parameter is CANCEL. For any value of ORECERR, output record errors are reported.

Sbbuff=n

This parameter specifies the size of base record buffers in tracks. SBBUFF must be followed by a decimal integer. This integer specifies the size of base record buffers in tracks.

Base record buffers are used to read in the non-extension record parts of Model 204 data files. Extension records that happen to be contained in a current base record buffer will also be read from the base record buffer.

The SBBUFF value must be an even divisor of the number of tracks per cylinder on the input device. For example, if the input device is a 3380, this value could be either 1, 3, 5 or 15.

If the input data set allocation is not in cylinder units and the input device does not support DEFINE EXTENT, the only valid value for this parameter is 1. (Prior to version 4.0 of Fast/Unload, SBBUFF greater than 1 requires data set allocation in cylinder units, regardless of the support for DEFINE EXTENT.) Most modern DASDs support DEFINE EXTENT.

The default value for SBBUFF is 1, meaning base record buffers are read in units of one track. If Fast/Unload statistics indicate a high "Base buffer wait time" value, you might be able to achieve better performance using a higher value for SBBUFF.

SEbuff=n

This parameter specifies the size of the extension record buffers. SEBUFF must be followed by a decimal integer. This integer specifies the size of extension record buffers in tracks. When an extension record cannot be found in a base record buffer, it must be synchronously read into an extension record buffer.

The SEBUFF value must be an even divisor of the number of tracks per cylinder on the input device. For example, if the input device is a 3380, this value could be either 1, 3, 5 or 15.

If the input data set allocation is not in cylinder units and the input device does not support DEFINE EXTENT, the only valid value for this parameter is 1. (Prior to version 4.0 of Fast/Unload, SEBUFF greater than 1 requires data set allocation in cylinder units, regardless of the support for DEFINE EXTENT.) Most modern DASDs support DEFINE EXTENT.

The default for SEBUFF is 1, meaning extension records are read in units of one track. In general there is probably no advantage to setting this value to anything other than 1, and in fact a large SEBUFF would probably produce degraded performance.

SEQ

This parameter indicates that the input program (FUNIN in batch mode) has sequence numbers in columns 73 through 80. If SEQ is specified, all data after column 72 in the input program is ignored. By default, Fast/Unload reads all columns in the input program.

SKiprec=n

This parameter sets the number of input records that will be skipped before the first record is processed. The FUEL program or UAI statement is not processed for skipped records.

This statement is useful when splitting an unload into multiple pieces. For example, if a database file has approximately 2 million records and you want to split the unload into two pieces, you could do one unload with MAXREC set to 1000000, then a second unload with SKIPREC set to 1000000.

The SKIPREC parameter is different from FRECORD, because FRECORD uses Model 204 record numbers while SKIPREC does not count unused record numbers.

If using SKIPREC in conjunction with FRECORD, FRECORD is used to set a starting record number, then SKIPREC records are skipped from that record number. Records skipped for SKIPREC are not counted as processed records against MAXREC.

The default for SKIPREC is 0, which means that no records are skipped.

SORTOut | SORTOUTD

In contrast to the FUNOUT parameter, both these parameters tell the external sort package to write the sorted records directly to the output sequential data set(s) after the sort. As of version 4.1, SORTOUTD is the default for Fast/Unload, unless it has been customized (see Changing the default sort parameter).

For FUEL programs with one output stream, not explicitly declared (which includes all programs written prior to version 4.1), you can specify SORTOUT to maintain the pre-version 4.1 behavior: UAI SORT output is sent to the DD named FUNOUT, while non-UAI output is sent to the sort's SORTOUT DD. Alternatively, SORTOUTD provides a more consistent handling of such legacy programs: all sorted output, whether UAI or non-UAI, goes to FUNOUT, written by the sort program.

For programs with multiple outputs, if SORTOUT or SORTOUTD is specified or implied, Fast/Unload tells the sort program the user-supplied destination for each sorted output stream, and the sort program does its own output.

SORTOUT, SORTOUTD, and FUNOUT are mutually exclusive. In the Fast/Unload report dataset, only one of these will be ON. See FUnout.

SOrtp={31|24}

This parameter indicates the type of parameter list to be used to pass data to an external sort package. SORTP must be followed by either 24 or 31. If 24 is specified, the "old-fashioned" 24-bit parameter list is used. If 31 is specified, the 31-bit extended parameter list is used.

The default for SORTP as shipped is 31, but you can modify this setting if your site requires.

For more details about this parameter see Sort parameter list.

UPArm="string"

This parameter specifies a string that can be accessed in the FUEL program as a special variable (#UPARM; see Entities for a discussion of special variables in FUEL.)

If the UPARM string contains any blanks, it can be preceded by and followed by one double quotation mark, for example:

// EXEC PGM=FUNLOAD,PARM='UPARM="Good job"'

The double quotation marks will not be part of the value of #UPARM.

Under z/OS, the maximum length of the string, not including the quotation marks, is 100. Under CMS, the string may not contain blanks, and the length of the string is restricted to 8.

Upper

This parameter indicates that you want the report data set to be written using uppercase characters only. This option should be used if you are using terminals or printers that do not correctly handle mixed-case output.

By default, Fast/Unload produces mixed-case output.

See also

Fast/Unload topics