Fast/Unload program parameters: Difference between revisions
m (more conversion cleanup) |
m (more conversion cleanup) |
||
Line 27: | Line 27: | ||
==ABenderr=rc== | ==ABenderr=rc== | ||
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 | |||
an ABEND at the end of the run. | an ABEND at the end of the run. | ||
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> | ||
The default value of this parameter is zero, which | The default value of this parameter is zero, which | ||
Line 45: | Line 43: | ||
==ALlmsg== | ==ALlmsg== | ||
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 | If you want to see all <var class="product">Fast/Unload</var> report data, specify the <var>ALLMSG</var> option. | ||
< | |||
For example, the <var class="product">Fast/Unload</var> input program when invoked using the | 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== | ||
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 | 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 | 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 $ | unloaded to the <var>[[$FunImg]]</var> and <var>[[$FunsStr]]</var> functions. | ||
==Dbcs={IBM|FUJITSU|HITACHI|NONE}== | ==Dbcs={IBM|FUJITSU|HITACHI|NONE}== | ||
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 | 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== | ||
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 | 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 | |||
< | |||
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 | It must be specified as five characters of the form: | ||
< | <p class="syntax">X"yz"</p> | ||
<p> | |||
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> | |||
In the following example, the file | In the following example, the file <code>BFILE</code> has the name <code>AFILE</code> on | ||
its disk pages, | 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> | ||
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 | parameter to the <var>[[FastUnload (Recordset function)|FastUnload]]</var> or <var>[[FastUnloadTask (Recordset function)|FastUnloadTask]]</var> method. | ||
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 | 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 | ||
value, you must use version 7.5 or later of <var class="product">Model 204</var>. | |||
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== | ||
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 | |||
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 | <p class="note"><b>Note:</b> If the indicated record number does | ||
not exist, unloading | not exist, unloading begins at the first existing record after the | ||
indicated starting record number. | indicated starting record number. </p> | ||
The FRECORD parameter only | 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, | |||
and it checks file integrity during the run. | |||
This | |||
and it | If <var>FSTATS</var> is specified, the <var class="product">Fast/Unload</var> report will contain a list | ||
If | |||
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. | ||
<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. | ||
< | |||
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. | |||
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 | |||
the corresponding <var>FSTATS</var> directives). See [[Fast/Unload Extraction Language (FUEL)#fst|FSTATS [AVGTOT | MINMAX\]] for a description of the <var>FSTATS</var> directive and for an | |||
the quantity of statistics reported for each field | |||
PARM='FSTATS=AVGTOT' or PARM='FSTATS=MINMAX' provides the same processing as | |||
the corresponding FSTATS directives | |||
See [[Fast/Unload Extraction Language (FUEL)#fst|FSTATS [AVGTOT | MINMAX\]] for a description of the FSTATS directive | |||
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. | ||
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]]). | ||
< | |||
<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 | |||
output sequential data set(s), even if going through a sort due to | |||
This | <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. | ||
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. | ||
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 | <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 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]]. | ||
< | |||
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]]). | ||
< | |||
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}== | ||
< | <var>HARDERR</var> 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 | from one of the following: | ||
change with a record set lock when using the <var class="product">Fast/Unload SOUL Interface</var> | <ul> | ||
<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> | ||
<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> | ||
< | </ul> | ||
The valid values of HARDERR are: | |||
< | The valid values of <var>HARDERR</var> are: | ||
< | <table class="thJustBold"> | ||
< | <tr class="head"><th>Value</th><th>Meaning</th></tr> | ||
completion code of 4. | |||
< | <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> | ||
<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> | ||
< | |||
the minimum job step completion code. | <tr><th>SKIP0</th> | ||
< | <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> | ||
< | |||
the minimum job step completion code. | <tr><th>IGNORE0</th> | ||
</ | <td>Ignore (as <var>IGNORE</var>, above), but do not change | ||
< | the minimum job step completion code.</td></tr> | ||
The default value for | </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== | ||
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> | |||
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> | 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--> | ||
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). | ||
< | |||
<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. | ||
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== | ||
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. | ||
<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 | The inverse of this parameter is <var>[[#NOList|NOLIST]]</var>. | ||
< | |||
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. | ||
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. | ||
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== | ||
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. | ||
<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== | ||
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 | |||
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== | ||
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 | input device and the value specified for <var>[[#Sebuff|SEBUFF]]</var>. | ||
< | |||
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. | ||
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 | |||
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== | ||
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. | ||
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 | 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. | ||
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. | |||
This indicates that <var class="product">Fast/Unload</var> does not attempt to use standard <var class="product">Model 204</var> | |||
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. | ||
< | |||
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). | ||
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== | ||
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 | The inverse of this parameter is <var>[[#List|LIST]]</var>. | ||
< | |||
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 | |||
<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]]. | ||
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. | ||
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== | ||
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. | ||
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}== | ||
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 | 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 — Stop the <var class="product">Fast/Unload</var>. | <li><var>CANCEL</var> — Stop the <var class="product">Fast/Unload</var>. </li> | ||
<li>SKIP — Skip the current record. | <li><var>SKIP</var> — Skip the current record. </li> | ||
<li>IGNORE — Ignore the error and simply truncate the record. | <li><var>IGNORE</var> — Ignore the error and simply truncate the record. </li> | ||
</ul> | </ul> | ||
The default value for this parameter is | 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== | ||
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 | 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. | ||
< | |||
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 | |||
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, | 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== | ||
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. | ||
< | |||
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 | |||
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== | ||
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 | |||
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== | ||
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 | 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. | ||
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 | ||
<var>SKIPREC</var> does not count unused record numbers. | |||
with FRECORD, FRECORD is used to set a starting record number | |||
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 | |||
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 | |||
< | |||
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]]). | ||
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. | ||
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 < | <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. | ||
< | |||
<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}== | ||
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 | 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"== | ||
This parameter specifies a string that can be accessed in the FUEL | |||
This specifies a string | program as a special variable (<b>#UPARM</b>; | ||
see [[Fast/Unload Extraction Language (FUEL)#entit|Entities]] for a discussion of special variables in FUEL.) | |||
program as a special variable (<b>#UPARM</b> | |||
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== | ||
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 | |||
This option should be used if you are using terminals or | This option should be used if you are using terminals or | ||
printers | 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:
Value | Meaning |
---|---|
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, |
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.