One-Step File Load utility: Difference between revisions

From m204wiki
Jump to navigation Jump to search
No edit summary
m (more conversion cleanup)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
==Overview==
==Overview==
<p>When a sequential data set contains the raw data for records to be stored in a <var class="product">Model&nbsp;204</var> file, the File Load utility generally provides the most efficient means of loading that data into <var class="product">Model&nbsp;204</var>. </p>
<p>
<p>In a one-step File Load, the two phases are run as one job step in which the second phase is invoked automatically.</p>
When a sequential data set contains the raw data for records to be stored in a <var class="product">Model&nbsp;204</var> file, the File Load utility generally provides the most efficient means of loading that data into <var class="product">Model&nbsp;204</var>. </p>
<p>
In a one-step File Load, the two phases are run as one job step in which the second phase is invoked automatically.</p>
 
====Operating system dependencies====
====Operating system dependencies====
<p>The one-step File Load is not available under z/VSE. </p>
<p>
<p>Under z/VM, the one-step File Load is run by a single command (FASTLOAD) that drives a user-written EXEC through the desired number of steps.       </p>
The one-step File Load is not available under z/VSE. </p>
<p>
Under z/VM, the one-step File Load is run by a single command (FASTLOAD) that drives a user-written EXEC through the desired number of steps. </p>
 
==Using one-step File Load==
==Using one-step File Load==
<p>For small amounts of data, the one-step File Load can be much more efficient than the multistep procedure. The major reason for this efficiency is that each deferred update record has four fewer I/O operations performed on it in the one-step File Load. The one-step File Load bypasses:</p>
<p>
For small amounts of data, the one-step File Load can be much more efficient than the multistep procedure. The major reason for this efficiency is that each deferred update record has four fewer I/O operations performed on it in the one-step File Load. The one-step File Load bypasses:</p>
<ul>
<ul>
<li>Output from the file load program</li>
<li>Output from the file load program</li>
Line 13: Line 20:
<li>Input to the Z commands </li>
<li>Input to the Z commands </li>
</ul>
</ul>
<p>Another reason is that by using the one-step File Load, the sort key is shorter if the file load program performs no deletions. (This is true only if no ORDERED fields are updated in the one-step File Load.) In addition, the one-step method is operationally easier, because only one job step is involved. However, a one-step File Load can be less efficient for large amounts of data because there is less memory available for sorting.</p>
<p>
Another reason is that by using the one-step File Load, the sort key is shorter if the file load program performs no deletions. (This is true only if no ORDERED fields are updated in the one-step File Load.) In addition, the one-step method is operationally easier, because only one job step is involved. However, a one-step File Load can be less efficient for large amounts of data because there is less memory available for sorting.</p>
 
==One-Step File Load, Phase 1: Overview==
==One-Step File Load, Phase 1: Overview==
<p>The control statements for the one-step version of the File Load utility include the standard <var class="product">Model&nbsp;204</var> DD statements and also the DD statements required by the sort program. Examples of one-step File Loads for z/OS and z/VM users follow.    </p>
<p>
<p>Note</p>
The control statements for the one-step version of the File Load utility include the standard <var class="product">Model&nbsp;204</var> DD statements and also the DD statements required by the sort program. Examples of one-step File Loads for z/OS and z/VM users follow.    </p>
<p>The one-step File Load utility is not available under z/VSE.</p>
<p class="note"><b>Note:</b> The one-step File Load utility is not available under z/VSE.</p>


===DD statements===
===DD statements===
<p>The following DD statements have the meanings described earlier for the multistep procedure:</p>
<p>
The following DD statements have the meanings described earlier for the multistep procedure:</p>
<p class="code">EXEC
<p class="code">EXEC
STEPLIB
STEPLIB
Line 27: Line 37:
CCASNAP
CCASNAP
SYSUDUMP
SYSUDUMP
CCAPRINT
CCAPRINT
CCASTAT
CCASTAT
Line 38: Line 49:


====Setting the REGION parameter of the EXEC statement====
====Setting the REGION parameter of the EXEC statement====
<p>When running the one-step version of the File Load utility, the REGION parameter of the EXEC statement must be increased by at least 100K for each sort/Z sequence that is needed (see the description of CCA1WK<var class="term">xx</var> DD statements on [[#CCA1WKxx DD statement|CCA1WKxx DD statement]]). To provide improved performance, increase the region more than the minimum and also increase the memory used by each sort (especially the first).    </p>
<p>
When running the one-step version of the File Load utility, the <code>REGION</code> parameter of the EXEC statement must be increased by at least 100K for each sort/Z sequence that is needed (see the description of CCA1WK<var class="term">xx</var> DD statements in [[#CCA1WKxx DD statement|CCA1WKxx DD statement]]). To provide improved performance, increase the region more than the minimum and also increase the memory used by each sort (especially the first).    </p>


====Setting SPCORE or MAXBUF====
====Setting SPCORE or MAXBUF====
<p>Set either the MAXBUF or the SPCORE parameter on User 0's parameter line to reserve the additional memory specified for the sorts. Otherwise, <var class="product">Model&nbsp;204</var> uses the additional memory for disk buffers. If sufficient memory is not provided for the sorts to run, the step terminates with an error.</p>
<p>
<p>For more information about the sort space, refer to the discussion of the s1 and s2 parameters in [[File Load utility: FLOD and FILELOAD commands#FILELOAD command|FILELOAD command]].</p>
Set either the <var>[[MAXBUF parameter|MAXBUF]]</var> or the <var>[[SPCORE parameter|SPCORE]]</var> parameter on User 0's parameter line to reserve the additional memory specified for the sorts. Otherwise, <var class="product">Model&nbsp;204</var> uses the additional memory for disk buffers. If sufficient memory is not provided for the sorts to run, the step terminates with an error.</p>
<p>
For more information about the sort space, refer to the discussion of the <var class="term">s1</var> and <var class="term">s2</var> parameters in [[File Load utility: FLOD and FILELOAD commands#FILELOAD command|FILELOAD command]].</p>


===Sort program library===
===Sort program library===
<p>Depending upon the installation, you might need to include a SORTLIB DD statement to identify the library in which the sort program is stored. You might also need to specify sort work (SORTWK<var class="term">xx</var>) data sets.  </p>
<p>
Depending upon the installation, you might need to include a <code>SORTLIB DD</code> statement to identify the library in which the sort program is stored. You might also need to specify sort work (SORTWK<var class="term">xx</var>) data sets.  </p>


====Valid sort programs with the File Load utility====
====Valid sort programs with the File Load utility====
<p>Any sort program that is compatible with the IBM SORT SM-023 can be invoked by the File Load utility. (For more information about interfaces for sort utilities, see [[Hash key files]].) The sort program invoked is the program that has the entry point, SORT, contained in one of the following libraries:</p>
<p>
Any sort program that is compatible with the IBM SORT SM-023 can be invoked by the File Load utility. (For more information about interfaces for sort utilities, see [[Hash key files]].) The sort program invoked is the program that has the entry point, <code>SORT</code>, contained in one of the following libraries:</p>
<table>
<table>
<tr>
<tr>
Line 63: Line 79:
</tr>
</tr>
</table>
</table>
<p>&nbsp;</p>


==One-Step File Load, Phase 1: Defining CCA1WK and CCA2WK data sets (z/OS only)==
==One-Step File Load, Phase 1: Defining CCA1WK and CCA2WK data sets (z/OS only)==
<p>When running the one-step version of the File Load utility under z/OS, deferred update index records are passed directly to the sort program as they are produced by the file load program. When the file load program is complete, the sort utility orders the deferred index records. </p>
<p>
When running the one-step version of the File Load utility under z/OS, deferred update index records are passed directly to the sort program as they are produced by the file load program. When the file load program is complete, the sort utility orders the deferred index records. </p>


===Sorting process===
===Sorting process===
<p>The sort works as follows: </p>
<p>
The sort works as follows: </p>
<ol>
<ol>
<li>Index entries are sorted using CCA1WK<var class="term">xx</var>, and the first Z command is automatically invoked.</li>
<li>Index entries are sorted using CCA1WK<var class="term">xx</var>, and the first <var>Z</var> command is automatically invoked.</li>
<li>First Z command applies the deferred update index record entries to the file.</li>
 
<li>If the first Z command encounters an index entry for an FRV field, the sort utility starts a sort of the FRV index records using CCA2WK<var class="term">xx</var>.</li>
<li>First <var>Z</var> command applies the deferred update index record entries to the file.</li>
<li>Second Z command, which adds the deferred FRV entries to the index, is invoked automatically after the first Z completes.</li>
 
<li>If the first <var>Z</var> command encounters an index entry for an <var>FRV</var> field, the sort utility starts a sort of the <var>FRV</var> index records using CCA2WK<var class="term">xx</var>.</li>
 
<li>Second <var>Z</var> command, which adds the deferred <var>FRV</var> entries to the index, is invoked automatically after the first <var>Z</var> completes.</li>
</ol>
</ol>
===CCAnWKxxx data set names===
===CCAnWKxxx data set names===
<p>Because two sorts can be invoked, you might need two sets of CCAnWK<var class="term">xx</var> and SYSOUT DD statements: CCA1WK<var class="term">xx</var> and CCA2WK<var class="term">xx</var>. Specify the names of the CCAnWK<var class="term">xx</var> sequentially, beginning with 01. For example: </p>
<p>
Because two sorts can be invoked, you might need two sets of CCAnWK<var class="term">xx</var> and SYSOUT DD statements: <code>CCA1WK<i>xx</i></code> and <code>CCA2WK<i>xx</i></code>. Specify the names of the CCA<i>n</i>WK<i>xx</i> sequentially, beginning with 01. For example: </p>
<p class="code">//CCA1WK01
<p class="code">//CCA1WK01
//CCA1WK02
//CCA1WK02
Line 85: Line 107:
//CCA2WK03
//CCA2WK03
</p>
</p>
<p>If there are no FRV records, the second sort is not used, and neither CCA2WK<var class="term">xx</var> nor SYSOUT2 statements are required.</p>
<p>If there are no <var>FRV</var> records, the second sort is not used, and neither <code>CCA2WK<i>xx</i></code> nor <code>SYSOUT2</code> statements are required.</p>
 
===CCA1WKxx DD statement===
===CCA1WKxx DD statement===
<p>You need to define at least three CCA1WK<var class="term">xx</var> DD statements (CCA1WK01-CCA1WK03). The actual number of CCA1WK<var class="term">xx</var> statements you need depends on your sort package. The parameters on these statements are required by the particular sort utility being used to define work data sets.</p>
<p>
<p>The CCA1WK<var class="term">xx</var> DD statements provide temporary storage for the first sort while it is reordering the deferred index records. These DD statements are required. If they are not included, the execution phase of the file load program is aborted, and an error message issued. </p>
You need to define at least three <code>CCA1WK<i>xx</i></code> DD statements (<code>CCA1WK01-CCA1WK03</code>). The actual number of CCA1WK<i>xx</i> statements you need depends on your sort package. The parameters on these statements are required by the particular sort utility being used to define work data sets.</p>
<p>
The <code>CCA1WK<i>xx</i></code> DD statements provide temporary storage for the first sort while it is reordering the deferred index records. These DD statements are required. If they are not included, the execution phase of the file load program is aborted, and an error message issued. </p>


===CCA2WKxx DD statement===
===CCA2WKxx DD statement===
<p>CCCA2WK<var class="term">xx </var>DD statements are required only if you are generating FRV records with the File Load statements. If you are not generating FRV records, then the second sort is not invoked and you can omit both the SYSOUT2 and CCA2WK<var class="term">xx</var> DD statements.</p>
<p>
<p>If there are more deferred FRV index records than the second sort can handle in a memory sort, or if the sort program you are using does not support a memory sort, three CCA2WK<var class="term">xx</var> DD statements are required.</p>
<code>CCCA2WK<i>xx</i></code> DD statements are required only if you are generating <var>FRV</var> records with the File Load statements. If you are not generating <var>FRV</var> records, the second sort is not invoked, and you can omit both the <code>SYSOUT2</code> and <code>CCA2WK<i>xx</i></code> DD statements.</p>
<p>If a second sort is needed, but a CCA2WK01 DD statement has not been provided, <var class="product">Model&nbsp;204</var> issues the warning message:</p>
<p>
If there are more deferred <var>FRV</var> index records than the second sort can handle in a memory sort, or if the sort program you are using does not support a memory sort, three <code>CCA2WK<i>xx</i></code> DD statements are required.</p>
<p>
If a second sort is needed, but a <code>CCA2WK01</code> DD statement has not been provided, <var class="product">Model&nbsp;204</var> issues the warning message:</p>
<p class="code"><b></b>*** M204.0759: SORT WORK DD CARD, CCA2WK01, MISSING
<p class="code"><b></b>*** M204.0759: SORT WORK DD CARD, CCA2WK01, MISSING
</p>
</p>
<p>Under z/VM, there are no CCA1WK or CCA2WK statements. Sort space is allocated dynamically by the sort subtasks. </p>
<p>
Under z/VM, there are no <code>CCA1WK</code> or CCA2WK statements. Sort space is allocated dynamically by the sort subtasks. </p>


===SYSOUT1 and SYSOUT2 DD statement===
===SYSOUT1 and SYSOUT2 DD statement===
<p>The SYSOUT DD statements specify the data sets to which messages from the sort program are directed. Because two sorts can be invoked, include two SYSOUT DD statements, one for the messages from each sort. SYSOUT1 corresponds to the CCA1WK<var class="term">xx</var> DD statements, and SYSOUT2 corresponds to the CCA2WK<var class="term">xx</var> DD statements.</p>
<p>The SYSOUT DD statements specify the data sets to which messages from the sort program are directed. Because two sorts can be invoked, include two SYSOUT DD statements, one for the messages from each sort. SYSOUT1 corresponds to the CCA1WK<var class="term">xx</var> DD statements, and SYSOUT2 corresponds to the CCA2WK<var class="term">xx</var> DD statements.</p>
==One-Step File Load, Phase 1: Setting SPCORE and MAXBUF parameters==
==One-Step File Load, Phase 1: Setting SPCORE and MAXBUF parameters==
<p>Either the SPCORE, the MAXBUF parameter, or both must be set on User 0's parameter line, as discussed for the EXEC statement earlier. See the discussion of the SPCORE parameter in [[ Multistep File Load utility#Multistep File Load, Phase 1: Setting the SPCORE parameter|Multistep File Load, Phase 1: Setting the SPCORE parameter]].</p>
<p>
Either the <var>SPCORE</var>, the <var>MAXBUF</var> parameter, or both must be set on User 0's parameter line, as discussed for the EXEC statement earlier. See the discussion of the <var>SPCORE</var> parameter in [[ Multistep File Load utility#Multistep File Load, Phase 1: Setting the SPCORE parameter|Multistep File Load, Phase 1: Setting the SPCORE parameter]].</p>
<p>To provide sufficient memory for the sorts, do one of the following:    </p>
<p>To provide sufficient memory for the sorts, do one of the following:    </p>
<ul>
<ul>
<li>Set SPCORE to the amount of space to be reserved for the sorts.</li>
<li>Set <var>SPCORE</var> to the amount of space to be reserved for the sorts.</li>
<li>Limit the number of disk buffers that <var class="product">Model&nbsp;204</var> obtains with MAXBUF. </li>
<li>Limit the number of disk buffers that <var class="product">Model&nbsp;204</var> obtains with <var>MAXBUF</var>. </li>
</ul>
</ul>


===Setting SPCORE===
===Setting SPCORE===
<p>If SPCORE is set, it must be set on User 0's parameter line to a value large enough to accommodate all of the following:</p>
<p>
If <var>SPCORE</var> is set, it must be set on User 0's parameter line to a value large enough to accommodate all of the following:</p>
<ul>
<ul>
<li>TAPEI buffer</li>
<li>TAPEI buffer</li>
<li>Two copies of the sort</li>
<li>Two copies of the sort</li>
<li>Area that is used for file load program, sort, and Z communication</li>
<li>Area that is used for file load program, sort, and <var>Z</var> communication</li>
<li>Two work areas, one for each invocation of the sort utility </li>
<li>Two work areas, one for each invocation of the sort utility </li>
</ul>
</ul>
<p>If no deferred FRV records are generated by the file load program, only one copy of the sort is invoked. In this case, SPCORE can be reduced by the size occupied by one copy of the sort plus the size of the default work space for the sort. This work space is the value specified for the s2 argument in the FILELOAD command. For more information on the s2 parameter, refer to [[File Load utility: FLOD and FILELOAD commands#FILELOAD command|FILELOAD command]]. </p>
<p>
<p>In general, the best performance is obtained when the amount of memory that the first sort is allowed to use is expanded. However, if any FRV fields are loaded, memory must be left for the second sort. This sort is run concurrently with the first sort, so there must be sufficient memory for both sorts to be active simultaneously.</p>
If no deferred <var>FRV</var> records are generated by the file load program, only one copy of the sort is invoked. In this case, <var>SPCORE</var> can be reduced by the size occupied by one copy of the sort plus the size of the default work space for the sort. This work space is the value specified for the <var class="term">s2</var> argument in the <var>FILELOAD</var> command. For more information on the <var class="term">s2</var> parameter, refer to [[File Load utility: FLOD and FILELOAD commands#FILELOAD command|FILELOAD command]]. </p>
<p>
In general, the best performance is obtained when the amount of memory that the first sort is allowed to use is expanded. However, if any <var>FRV</var> fields are loaded, memory must be left for the second sort. This sort is run concurrently with the first sort, so there must be sufficient memory for both sorts to be active simultaneously.</p>


===Setting MAXBUF===
===Setting MAXBUF===
<p>As an alternative to setting SPCORE, the MAXBUF parameter can be set to reserve memory for the sorts by limiting the number of buffers that are allocated. Never set MAXBUF to less than 4. A File Load run loading a typical file with no ORDERED fields should not require more than ASIZE + 2 buffers. Files with unordered, sorted, or hash key organizations, or with ORDERED fields might require additional buffers. In general, files with ORDERED fields run more efficiently with a large number of buffers: up to ASIZE+DSIZE+2.    </p>
<p>
As an alternative to setting <var>SPCORE</var>, the <var>MAXBUF</var> parameter can be set to reserve memory for the sorts by limiting the number of buffers that are allocated. Never set <var>MAXBUF</var> to less than 4. A File Load run loading a typical file with no <var>ORDERED</var> fields should not require more than <code>ASIZE + 2</code> buffers. Files with unordered, sorted, or hash key organizations, or with <var>ORDERED</var> fields might require additional buffers.  
 
In general, files with <var>ORDERED</var> fields run more efficiently with a large number of buffers: up to <code>ASIZE+DSIZE+2</code>.    </p>
 
==One-Step File Load, Phase 1 examples==
==One-Step File Load, Phase 1 examples==
<p>The following JCL illustrates a sample invocation of the one-step File Load.</p>
<p>
The following JCL illustrates a sample invocation of the one-step File Load.</p>


====z/OS JCL====
<b>z/OS JCL</b>
<p class="code">//M204FLOD EXEC PGM=BATCH204,REGION=5120K,
<p class="code">//M204FLOD EXEC PGM=BATCH204,REGION=5120K,
//        PARM='SYSOPT=128',TIME=10
//        PARM='SYSOPT=128',TIME=10
Line 162: Line 201:
//
//
</p>
</p>
====z/VM EXECs====
====z/VM EXECs====
<p>To load a file using the one-step File Load process, use the FASTLOAD EXEC, described fully in the Rocket <var class="product">Model&nbsp;204</var> Installation Guide for IBM z/VM. For example:</p>
<p>
To load a file using the one-step File Load process, use the <code>FASTLOAD</code> EXEC, described fully in the <var class="book">Rocket Model 204 Installation Guide for IBM z/VM</var>. For example:</p>
<p class="code"><var>FASTLOAD CENSUS (1STEP</var>
<p class="code"><var>FASTLOAD CENSUS (1STEP</var>
</p>
</p>
<p>This command invokes the CENSUS EXEC, which looks similar to the following example.</p>
<p>
This command invokes the <code>CENSUS</code> EXEC, which is similar to the following example:</p>
<p class="code">&amp;CONTROL OFF
<p class="code">&amp;CONTROL OFF
&amp;ERROR &amp;EXIT &amp;RETCODE
&amp;ERROR &amp;EXIT &amp;RETCODE
Line 185: Line 227:
&amp;EXIT
&amp;EXIT
</p>
</p>
<p>The CCAIN file is the same as in the preceding z/OS example. </p>
<p>
<p>&nbsp;</p>
The <code>CCAIN</code> file is the same as in the preceding z/OS example. </p>


[[Category:File management]]
[[Category:File loading and reorganization]]

Latest revision as of 22:48, 12 January 2015

Overview

When a sequential data set contains the raw data for records to be stored in a Model 204 file, the File Load utility generally provides the most efficient means of loading that data into Model 204.

In a one-step File Load, the two phases are run as one job step in which the second phase is invoked automatically.

Operating system dependencies

The one-step File Load is not available under z/VSE.

Under z/VM, the one-step File Load is run by a single command (FASTLOAD) that drives a user-written EXEC through the desired number of steps.

Using one-step File Load

For small amounts of data, the one-step File Load can be much more efficient than the multistep procedure. The major reason for this efficiency is that each deferred update record has four fewer I/O operations performed on it in the one-step File Load. The one-step File Load bypasses:

  • Output from the file load program
  • Input to the sort utility
  • Output from the sort utility
  • Input to the Z commands

Another reason is that by using the one-step File Load, the sort key is shorter if the file load program performs no deletions. (This is true only if no ORDERED fields are updated in the one-step File Load.) In addition, the one-step method is operationally easier, because only one job step is involved. However, a one-step File Load can be less efficient for large amounts of data because there is less memory available for sorting.

One-Step File Load, Phase 1: Overview

The control statements for the one-step version of the File Load utility include the standard Model 204 DD statements and also the DD statements required by the sort program. Examples of one-step File Loads for z/OS and z/VM users follow.

Note: The one-step File Load utility is not available under z/VSE.

DD statements

The following DD statements have the meanings described earlier for the multistep procedure:

EXEC STEPLIB CCAAUDIT CCATEMP CCASNAP SYSUDUMP CCAPRINT CCASTAT TAPEI CCAIN File DD statements

The following sections summarize the differences between one-step and multistep control statements.

Providing space for sorting

Setting the REGION parameter of the EXEC statement

When running the one-step version of the File Load utility, the REGION parameter of the EXEC statement must be increased by at least 100K for each sort/Z sequence that is needed (see the description of CCA1WKxx DD statements in CCA1WKxx DD statement). To provide improved performance, increase the region more than the minimum and also increase the memory used by each sort (especially the first).

Setting SPCORE or MAXBUF

Set either the MAXBUF or the SPCORE parameter on User 0's parameter line to reserve the additional memory specified for the sorts. Otherwise, Model 204 uses the additional memory for disk buffers. If sufficient memory is not provided for the sorts to run, the step terminates with an error.

For more information about the sort space, refer to the discussion of the s1 and s2 parameters in FILELOAD command.

Sort program library

Depending upon the installation, you might need to include a SORTLIB DD statement to identify the library in which the sort program is stored. You might also need to specify sort work (SORTWKxx) data sets.

Valid sort programs with the File Load utility

Any sort program that is compatible with the IBM SORT SM-023 can be invoked by the File Load utility. (For more information about interfaces for sort utilities, see Hash key files.) The sort program invoked is the program that has the entry point, SORT, contained in one of the following libraries:

JOBLIB Job library
STEPLIB Step library
LINKLIB System link library

One-Step File Load, Phase 1: Defining CCA1WK and CCA2WK data sets (z/OS only)

When running the one-step version of the File Load utility under z/OS, deferred update index records are passed directly to the sort program as they are produced by the file load program. When the file load program is complete, the sort utility orders the deferred index records.

Sorting process

The sort works as follows:

  1. Index entries are sorted using CCA1WKxx, and the first Z command is automatically invoked.
  2. First Z command applies the deferred update index record entries to the file.
  3. If the first Z command encounters an index entry for an FRV field, the sort utility starts a sort of the FRV index records using CCA2WKxx.
  4. Second Z command, which adds the deferred FRV entries to the index, is invoked automatically after the first Z completes.

CCAnWKxxx data set names

Because two sorts can be invoked, you might need two sets of CCAnWKxx and SYSOUT DD statements: CCA1WKxx and CCA2WKxx. Specify the names of the CCAnWKxx sequentially, beginning with 01. For example:

//CCA1WK01 //CCA1WK02 //CCA1WK03 //CCA2WK01 //CCA2WK02 //CCA2WK03

If there are no FRV records, the second sort is not used, and neither CCA2WKxx nor SYSOUT2 statements are required.

CCA1WKxx DD statement

You need to define at least three CCA1WKxx DD statements (CCA1WK01-CCA1WK03). The actual number of CCA1WKxx statements you need depends on your sort package. The parameters on these statements are required by the particular sort utility being used to define work data sets.

The CCA1WKxx DD statements provide temporary storage for the first sort while it is reordering the deferred index records. These DD statements are required. If they are not included, the execution phase of the file load program is aborted, and an error message issued.

CCA2WKxx DD statement

CCCA2WKxx DD statements are required only if you are generating FRV records with the File Load statements. If you are not generating FRV records, the second sort is not invoked, and you can omit both the SYSOUT2 and CCA2WKxx DD statements.

If there are more deferred FRV index records than the second sort can handle in a memory sort, or if the sort program you are using does not support a memory sort, three CCA2WKxx DD statements are required.

If a second sort is needed, but a CCA2WK01 DD statement has not been provided, Model 204 issues the warning message:

*** M204.0759: SORT WORK DD CARD, CCA2WK01, MISSING

Under z/VM, there are no CCA1WK or CCA2WK statements. Sort space is allocated dynamically by the sort subtasks.

SYSOUT1 and SYSOUT2 DD statement

The SYSOUT DD statements specify the data sets to which messages from the sort program are directed. Because two sorts can be invoked, include two SYSOUT DD statements, one for the messages from each sort. SYSOUT1 corresponds to the CCA1WKxx DD statements, and SYSOUT2 corresponds to the CCA2WKxx DD statements.

One-Step File Load, Phase 1: Setting SPCORE and MAXBUF parameters

Either the SPCORE, the MAXBUF parameter, or both must be set on User 0's parameter line, as discussed for the EXEC statement earlier. See the discussion of the SPCORE parameter in Multistep File Load, Phase 1: Setting the SPCORE parameter.

To provide sufficient memory for the sorts, do one of the following:

  • Set SPCORE to the amount of space to be reserved for the sorts.
  • Limit the number of disk buffers that Model 204 obtains with MAXBUF.

Setting SPCORE

If SPCORE is set, it must be set on User 0's parameter line to a value large enough to accommodate all of the following:

  • TAPEI buffer
  • Two copies of the sort
  • Area that is used for file load program, sort, and Z communication
  • Two work areas, one for each invocation of the sort utility

If no deferred FRV records are generated by the file load program, only one copy of the sort is invoked. In this case, SPCORE can be reduced by the size occupied by one copy of the sort plus the size of the default work space for the sort. This work space is the value specified for the s2 argument in the FILELOAD command. For more information on the s2 parameter, refer to FILELOAD command.

In general, the best performance is obtained when the amount of memory that the first sort is allowed to use is expanded. However, if any FRV fields are loaded, memory must be left for the second sort. This sort is run concurrently with the first sort, so there must be sufficient memory for both sorts to be active simultaneously.

Setting MAXBUF

As an alternative to setting SPCORE, the MAXBUF parameter can be set to reserve memory for the sorts by limiting the number of buffers that are allocated. Never set MAXBUF to less than 4. A File Load run loading a typical file with no ORDERED fields should not require more than ASIZE + 2 buffers. Files with unordered, sorted, or hash key organizations, or with ORDERED fields might require additional buffers. In general, files with ORDERED fields run more efficiently with a large number of buffers: up to ASIZE+DSIZE+2.

One-Step File Load, Phase 1 examples

The following JCL illustrates a sample invocation of the one-step File Load.

z/OS JCL

//M204FLOD EXEC PGM=BATCH204,REGION=5120K, // PARM='SYSOPT=128',TIME=10 //STEPLIB DD DSN=DVM204.V220.LOADLIB,DISP=SHR //CCATEMP DD UNIT=SYSDA,SPACE=(CYL,1) //CENSUS DD DSN=M204.CENSUS,DISP=OLD //CCASTAT DD DSN=M204.CCASTAT,DISP=SHR //CCAAUDIT DD SYSOUT=C //CCAPRINT DD SYSOUT=C //SYSOUT1 DD SYSOUT=C //SYSOUT2 DD SYSOUT=C //CCASNAP DD SYSOUT=C //SYSUDUMP DD SYSOUT=C //TAPEI DD DSN=M204.CENSUS.INPUT,DISP=SHR //CCA1WK01 DD UNIT=SYSDA,SPACE=(CYL,5,,CONTIG) //CCA1WK02 DD UNIT=(SYSDA,SEP=CCA1WK01), // SPACE=(CYL,5,,CONTIG) //CCA1WK03 DD UNIT=(SYSDA,SEP=(CCA1WK01,CCA1WK02)), // SPACE=(CYL,5,,CONTIG) //CCA2WK01 DD UNIT=SYSDA, // SPACE=(CYL,5,,CONTIG) //CCA2WK02 DD UNIT=(SYSDA,SEP=CCA2WK01), // SPACE=(CYL,5,,CONTIG) //CCA2WK03 DD UNIT=(SYSDA,SEP=(CCA2WK01,CCA2WK02)), // SPACE=(CYL,5,,CONTIG) //CCAIN DD * MAXBUF=100,SPCORE=1126400 LOGON SUPERKLUGE PIGFLOUR OPEN CENSUS *PASSWORD* FILELOAD -1,-1,0,1048576,,,,28 . . . /* //

z/VM EXECs

To load a file using the one-step File Load process, use the FASTLOAD EXEC, described fully in the Rocket Model 204 Installation Guide for IBM z/VM. For example:

FASTLOAD CENSUS (1STEP

This command invokes the CENSUS EXEC, which is similar to the following example:

&CONTROL OFF &ERROR &EXIT &RETCODE access disks . . . -FLOAD1 FILEDEF TAPEI DISK CENSUS FLODINPT D ( BLOCK 990 LRECL 986 RECFM VB FILEDEF CCAIN DISK CENSUS CCAIN1 * FILEDEF CCAPRINT DISK FLOD&1 CCAPRINT A FILEDEF CCAAUDIT DISK FLOD&1 CCAAUDIT A FILEDEF CCATEMP E DSN M204 CCATEMP FILEDEF CCASTAT E DSN M204 CCASTAT FILEDEF CENSUS E DSN M204 CENSUS FILEDEF CCASNAP PRINTER &STACK SYSOPT 128 &EXIT

The CCAIN file is the same as in the preceding z/OS example.