DEFINE STREAM command: Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (Automatically generated page update)
 
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<p class="pageSubtitle">Describing sequential I/O streams</p>
==Summary==
==Summary==
<dl>
<dl>
Line 6: Line 8:
<dd>Describes sequential I/O streams for processing within <var class="product">Model&nbsp;204</var>
<dd>Describes sequential I/O streams for processing within <var class="product">Model&nbsp;204</var>
</dl>
</dl>
==Syntax==
==Syntax==
<p class="syntax">DEFINE STREAM name [LIKE previousname] WITH
<p class="syntax">DEFINE STREAM <span class="term">name</span> [LIKE <span class="term">previousname</span>] WITH SCOPE=SYSTEM
  SCOPE=SYSTEM
   <span class="squareb">{</span> CONCATENATE=(<span class="term">stream1</span> [,<span class="term">streamn</span>]...)  
   {CONCATENATE=(stream1 [,streamn]...)  
   | PARALLEL=(<span class="term">stream1</span> [,<span class="term">streamn</span>]) MINAVAIL=<span class="term">n</span>
   | [PARALLEL=(stream1 [,streamn] MINAVAIL=n]
   | GDG=<span class="term">ddname</span> CONTROL=<span class="term">ddname2</span>
   | GDG=ddname CONTROL=ddname2}
   | RING=(<span class="term">stream1</span> [,<span class="term">streamn</span>]...) OFFLOAD=<span class="term">stream</span> CONTROL=<span class="term">ddname</span> [AUTOOFFLOAD=<span class="term">n</span>] [CLOSE={AUTO | NOAUTO}] <span class="squareb">}</span>
   | ((RING=(stream1 [,streamn]...)  
    [AUTOOFFLOAD=n] OFFLOAD=stream
    [CLOSE={AUTO | NOAUTO}]) CONTROL=ddname)
</p>
</p>
<p>
<b>Where:</b>
The command options are described in the following table. See also [[Configuring checkpoint and journal data streams]]. </p>
You can use the following options to define a stream. See the Rocket <var class="product">Model&nbsp;204</var> System Manager's Guide for a discussion of configuring checkpoint and journal data streams and data sets.  
 
<ul>  
<table>
<li>
<tr><th>name</th>
<p><var>CONCATENATE</var> specifies a stream defined with a concatenated configuration. </p>
<td>Identifies the stream. It may be a keyword or, for a sub- or member stream, a non-keyword. See the example in [[#Example|Example]], below.
</li>
<p>
Valid keywords, which refer to Model&nbsp;204 recognized data set DDnames, are: <var>CCAJLOG</var>, <var>CCAJRNL</var>, <var>CHKPOINT</var>, <var>CHKPNTS</var>, <var>RESTART</var>, <var>RESTARTS</var>, <var>CCARF</var>, <var>CCAGEN</var>. </p></td></tr>
<li>
 
<p>Options stream1 through streamn specify the names of the streams that are members of the concatenated configuration in the order of their use. The streams referred to can be:</p>
<tr><th><var>CONCATENATE</var></th>
<td>Specifies a stream defined with a concatenated configuration.
<p><var>CONCATENATE</var>, <var>PARALLEL</var>, <var>GDG</var>, and <var>RING</var> are mutually exclusive options.</p></td></tr>
 
<tr><th nowrap>stream1 ... streamn</th>
<td>Options <var class="term">stream1</var> through <var class="term">streamn</var> specify the names of the streams that are members of the concatenated configuration in the order of their use. The streams referred to can be:
<ul>  
<ul>  
<li>
<li>
Line 34: Line 39:
<p>Data set</p>
<p>Data set</p>
</li>
</li>
</ul>
</ul>
</li>
</td></tr>
   
   
<li>
<tr><th><var>PARALLEL</var></th>
<p> <var>PARALLEL</var> specifies a stream defined with a parallel configuration. A PARALLEL stream requires a MINAVAIL value.</p>
<td>Specifies a stream defined with a parallel configuration. A <var>PARALLEL</var> stream requires a <var>MINAVAIL</var> value.
</li>
<p><var>CONCATENATE</var>, <var>PARALLEL</var>, <var>GDG</var>, and <var>RING</var> are mutually exclusive options.</p></td></tr>
   
   
<li>
<tr><th><var>MINAVAIL</var></th>
<p>MINAVAIL specifies the number of members that must remain available for a parallel stream to continue as a valid output stream.  </p>
<td>Specifies the number of members that must remain available for a parallel stream to continue as a valid output stream.   
<p>MINAVAIL is valid for PARALLEL streams only. The default is the number of members specified in the PARALLEL parameter. The smallest allowable value for this option is 1.</p>
<p>
<p> If there is an I/O error on all streams, an I/O error is displayed. If one member stream is still usable, then a value less than MINAVAIL results in the display of a file-full condition with output streams. Under the same conditions, falling below MINAVAIL results in the display of an end-of-data condition with input streams.   </p>
<var>MINAVAIL</var> is valid for <var>PARALLEL</var> streams only. The default is the number of members specified in the <var>PARALLEL</var> parameter. The smallest allowable value for this option is 1.</p>
</li>
<p>  
If there is an I/O error on all streams, an I/O error is displayed. If one member stream is still usable, then a value less than <var>MINAVAIL</var> results in the display of a file-full condition with output streams. Under the same conditions, falling below <var>MINAVAIL</var> results in the display of an end-of-data condition with input streams. </p></td></tr>
   
   
<li>
<tr><th><var>RING</var></th>
<p><var>RING</var> specifies that the stream being defined is a ring configuration. The options stream1 through streamn specify the names of the streams that are members of the ring configuration in the order of their use. The streams referred to can be:</p>
<td>Specifies that the stream being defined is a ring configuration. The options <var class="term">stream1</var> through <var class="term">streamn</var> specify the names of the streams that are members of the ring configuration in the order of their use. The streams referred to can be:
<ul>  
<ul>  
<li>
<li>
Line 57: Line 63:
<p>Data set </p>
<p>Data set </p>
</li>
</li>
</ul>
</ul>
</li>
<p><var>CONCATENATE</var>, <var>PARALLEL</var>, <var>GDG</var>, and <var>RING</var> are mutually exclusive options.</p></td></tr>
   
   
<li>
<tr><th><var>AUTOOFFLOAD</var></th>
<p><var>AUTOOFFLOAD</var> specifies the number of members that can be filled before an offload process is started for an output RING stream. The value specified must range from one to the number of ring members minus one. If a value greater than the range maximum is specified, the DEFINE STREAM command is rejected.</p>
<td>Specifies the number of members that can be filled before an offload process is started for an output <var>RING</var> stream. The value specified must range from one to the number of ring members minus one. If a value greater than the range maximum is specified, the <var>DEFINE STREAM</var> command is rejected.
<p>This option is invalid with PARALLEL and CONCATENATED streams and has no effect when specified for input RING streams. The default value is the number of ring members minus one. The system manager can start the offload process manually at any time by using the OFFLOAD command. </p>
<p>
</li>
This option is invalid with <var>PARALLEL</var> and <var>CONCATENATED</var> streams and has no effect when specified for input <var>RING</var> streams. The default value is the number of ring members minus one. The system manager can start the offload process manually at any time by using the <var>OFFLOAD</var> command. </p></td></tr>
   
   
<li>
<tr><th><var>OFFLOAD</var></th>
<p><var>OFFLOAD</var> specifies the name of the stream used for automatic or manual dumping of RING stream members. For an output RING, the OFFLOAD stream is opened at one of the following points: </p>
<td>Specifies the name of the stream used for automatic or manual dumping of <var>RING</var> stream members. For an output <var>RING</var>, the <var>OFFLOAD</var> stream is opened at one of the following points:  
<ul>  
<ul>  
<li>
<li>
<p>When the AUTOOFFLOAD threshold is reached.</p>
<p>When the <var>AUTOOFFLOAD</var> threshold is reached.</p>
</li>
</li>
   
   
<li>
<li>
<p>When an OFFLOAD command is issued for the RING stream.</p>
<p>When an <var>OFFLOAD</var> command is issued for the <var>RING</var> stream.</p>
</li>
</li>
   
   
<li>
<li>
<p>When the RING stream is closed and one or more members of the RING require offloading, unless specifically suppressed by the CLOSE=NOAUTO parameter. </p>
<p>When the <var>RING</var> stream is closed and one or more members of the <var>RING</var> require offloading, unless specifically suppressed by the <code>CLOSE=NOAUTO</code> parameter setting. </p>
</li>
</ul>
<p>The offload stream is closed if it was concatenated. Otherwise, it is left open as long as the ring stream is left open.</p>
<p>In the case of input, OFFLOAD specifies the stream containing data that was offloaded while writing to the ring stream.</p>
<p>OFFLOAD is required for ring streams and is not valid with either CONCATENATE or PARALLEL.   </p>
</li>
</li>
</ul>
<p>
The offload stream is closed if it was concatenated. Otherwise, it is left open as long as the ring stream is left open.</p>
<p>
In the case of input, <var>OFFLOAD</var> specifies the stream containing data that was offloaded while writing to the ring stream.</p>
<p>
<var>OFFLOAD</var> is required for ring streams, and it is not valid with <var>CONCATENATE</var> or <var>PARALLEL</var>. </p>
</td></tr>
   
   
<li>
<tr><th><var>CLOSE</var></th>
<p><var>CLOSE</var> specifies the offloading action taken when the RING stream is closes. </p>
<td>Specifies the offloading action taken when the <var>RING</var> stream closes.  
 
<table>  
<table>  
<tr>
<tr><th><var>AUTO</var></th>
<th><var>AUTO</var></th>
<td>This option, the default, indicates that any data that has accumulated in ring members since the completion of the last offload process must be offloaded during close processing. If this option is selected, the offload stream is opened and the data is offloaded from the ring members to the offload stream. In addition, if the offload stream is open when EOD processing begins, it remains open even if the offload process enters an idle state before the actual closing of the stream. This allows the final offload process to continue to the same output data set.</td></tr>
<td>, the default, indicates that any data that has accumulated in ring members since the completion of the last offload process must be offloaded during close processing. If this option is selected, the offload stream is opened and the data is offloaded from the ring members to the offload stream. In addition, if the offload stream is open when EOD processing begins, it remains open even if the offload process enters an idle state before the actual closing of the stream. This allows the final offload process to continue to the same output data set.</td>
</tr>
   
   
<tr>
<tr><th><var>NOAUTO</var></th>
<th><var>NOAUTO</var></th>
<td>Specifies that the ring is not offloaded completely when the stream is closed. In this case, the offload stream does not contain a complete copy of the data on the ring. At the time the ring is closed, any offload process in progress is immediately ended without completing the offload of the member currently being offloaded. EOD processing of a ring with <code>CLOSE=NOAUTO</code> does not attempt to keep the offload stream open, if it is then open. The offload continues until the ring stream is closed.
<td> specifies that the ring is not offloaded completely when the stream is closed. In this case, the offload stream does not contain a complete copy of the data on the ring. At the time the ring is closed, any offload process in progress is immediately ended without completing the offload of the member currently being offloaded. EOD processing of a ring with CLOSE=NOAUTO does not attempt to keep the offload stream open, if it is then open. The offload continues until the ring stream is closed.
<p>
<p>The table below sums up the effect of the AUTO or NOAUTO options on EOD and close processing.Effects of AUTO and NOAUTO options</p>
The table below sums up the effect of the <var>AUTO</var> or <var>NOAUTO</var> options on EOD and close processing: </p>
 
<table>
<table>
<caption>Effects of AUTO and NOAUTO options</caption>
<caption>Effects of AUTO and NOAUTO options</caption>
   
<tr class="head"> <th><p>Option</p></th>  
<tr> <th>
<th><p>EOD processing</p></th>  
<p>Option</p>
<th><p>CLOSE processing</p></th> </tr>
</th> <th>
<p>EOD processing</p>
</th> <th>
<p>CLOSE processing</p>
</th> </tr>
    
    
<tr> <th><var>
<tr> <th><var><p>AUTO</p></var></th>  
<p>AUTO</p>
<td><p>If offload process enters idle state, <var>OFFLOAD</var> stream remains open.</p></td>  
</var></th> <td>
<td><p>Any members not offloaded before are offloaded.</p></td> </tr>
<p>If offload process enters idle state, OFFLOAD stream remains open.</p>
</td> <td>
<p>Any members not offloaded before are offloaded.</p>
</td> </tr>
   
   
<tr> <th><var>
<tr> <th><var><p>NOAUTO</p></var></th>  
<p>NOAUTO</p>
<td>
</var></th> <td>
<p>If offload process enters idle state, <var>OFFLOAD</var> stream is closed.</p>
<p>If offload process enters idle state, OFFLOAD stream is closed.</p>
<p>If an offload process is in progress, it is terminated immediately. There is no further attempt to offload.</p></td> </tr>
</td> <td>
<p>If an offload process is in progress, it is terminated immediately. There is no further attempt to offload.</p>
</td> </tr>
 
</table>
</table>
</td>
</td></tr>
</tr>
</table>
</table>
</li>
   
   
<li>
<tr><th><var>CONTROL</var></th>
<p><var>CONTROL</var> specifies the name of a data set that contains control information for the RING stream or GDG data set. The CONTROL data set is required only for CCAJRNL RING streams and GDG data sets. SPACE=CYL,(1,1) is sufficient. You do not need to specify any DCB attributes, <var class="product">Model&nbsp;204</var> sets those to: </p>
<td>Specifies the name of a data set that contains control information for the <var>RING</var> stream or <var>GDG</var> data set. The <var>CONTROL</var> data set is required only for CCAJRNL <var>RING</var> streams and <var>GDG</var> data sets. <code>SPACE=CYL,(1,1)</code> is sufficient. You do not need to specify any DCB attributes, <var class="product">Model&nbsp;204</var> sets those to:  
<p class="code">RECFM=U,LRECL=24,BLKSIZE=24  
<p class="code">RECFM=U,LRECL=24,BLKSIZE=24  
</p>
</p>
<p>The CONTROL data set keeps track of each offload that has occurred and what the current ring member or GDG stream is. It is an output data set during the original run. If recovery is subsequently required, it is an input data set that tells recovery:</p>
<p>The <var>CONTROL</var> data set keeps track of each offload that has occurred and what the current ring member or GDG stream is. It is an output data set during the original run. If recovery is subsequently required, it is an input data set that tells recovery:</p>
<ul>  
<ul>  
<li>
<li>
Line 144: Line 137:
<p>For GDGs, which generation data sets and in what order to read them. </p>
<p>For GDGs, which generation data sets and in what order to read them. </p>
</li>
</li>
</ul>
</ul>
</li>
</td></tr>
   
   
<li>
<tr><th><var>GDG</var></th>
<p><var>GDG</var> specifies a data set defined with a GDG configuration. A GDG data set requires a CONTROL data set. A GDG member must be a data set. STREAM is not supported for a GDG member. GDG must be the lowest level of a stream and may have no subsequent levels.</p>
<td>Specifies a data set defined with a GDG configuration. A <var>GDG</var> data set requires a <var>CONTROL</var> data set. A <var>GDG</var> member must be a data set. <var>STREAM</var> is not supported for a <var>GDG</var> member. A <var>GDG</var> must be the lowest level of a stream and may have no subsequent levels.
<p>The GDG data set is available for only z/OS. GDG streams may only be used for journals and checkpoints. Use of GDG streams for directed output files does not work.</p>
<p>
</li>
The <var>GDG</var> data set is available for only z/OS. GDG streams may only be used for journals and checkpoints. Use of GDG streams for directed output files does not work.</p>
</ul>
<p><var>CONCATENATE</var>, <var>PARALLEL</var>, <var>GDG</var>, and <var>RING</var> are mutually exclusive options.</p></td></tr>
</table>
 
==Example==
==Example==
The following example uses a series of DEFINE STREAM commands to specify a recovery stream and the underlying members of that recovery stream:  
The following example uses a series of <var>DEFINE STREAM</var> commands to specify a recovery stream and the underlying members of that recovery stream:  
<p class="code">DEFINE STREAM CCAJRNL WITH SCOPE=SYSTEM -
<p class="code">DEFINE STREAM CCAJRNL WITH SCOPE=SYSTEM -
   RING=(A,B,C) OFFLOAD=D CONTROL=E     -
   RING=(A,B,C) OFFLOAD=D CONTROL=E     -
   AUTOOFFLOAD=2
   AUTOOFFLOAD=2
DEFINE STREAM A WITH SCOPE=SYSTEM -
DEFINE STREAM A WITH SCOPE=SYSTEM -
Line 168: Line 163:
   PARALLEL=(CTL1,CTL2) MINAVAIL=1   
   PARALLEL=(CTL1,CTL2) MINAVAIL=1   
</p>
</p>
==Usage notes==
==Usage notes==
<p>The DEFINE STREAM command is only for the recovery streams CCAJLOG, CCAJRNL, CCARF, CHKPNTS, CHKPOINT, RESTART, and RESTARTS. The ring stream OFFLOAD option can also be a stream of any type or a data set. These DEFINE STREAM commands can be entered before the User 0 parameter line in the CCAIN data set. This allows them to be defined by the system manager before they are opened by the initialization routines.</p>
<p>
<p>For more information on sequential file processing, refer to [[OFFLOAD command|OFFLOAD: Initiating an offload]].</p>
The <var>DEFINE STREAM</var> command is only for the recovery streams CCAJLOG, CCAJRNL, CCARF, CHKPNTS, CHKPOINT, RESTART, and RESTARTS. The ring stream <var>OFFLOAD</var> option can also be a stream of any type or a data set. These <var>DEFINE STREAM</var> commands can be entered before the User 0 parameter line in the CCAIN data set. This allows them to be defined by the system manager before they are opened by the initialization routines.</p>
<p>
For more information on sequential file processing, see [[OFFLOAD command]].</p>
 
<p>For general syntax and usage notes that apply to all forms of the <var>DEFINE</var> command, see [[DEFINE command]].</p>
 
====Handling mutually exclusive or missing options====
====Handling mutually exclusive or missing options====
<p>Each type of stream you can define-CONCATENATE, PARALLEL, RING, GDG-is mutually exclusive of the other types of streams. If you define a stream with more than one type, <var class="product">Model&nbsp;204</var> issues various messages, depending on the combination of types you defined.</p>
<p>
<p>In the following example, CCAJRNL is defined with both the CONCATENATE and PARALLEL options:</p>
Each type of stream you can define &mdash; <var>CONCATENATE</var>, <var>PARALLEL</var>, <var>RING</var>, <var>GDG</var> &mdash; is mutually exclusive of the other types of streams. If you define a stream with more than one type, <var class="product">Model&nbsp;204</var> issues various messages, depending on the combination of types you defined.</p>
<p>
In the following example, <code>CCAJRNL</code> is defined with both the <var>CONCATENATE</var> and <var>PARALLEL</var> options:</p>
<p class="code">DEFINE STREAM CCAJRNL WITH SCOPE=SYSTEM -
<p class="code">DEFINE STREAM CCAJRNL WITH SCOPE=SYSTEM -
               CONCATENATE=(J01,J02) -
               CONCATENATE=(J01,J02) -
               PARALLEL=(JO3,JO4) -
               PARALLEL=(JO3,JO4)   -
               MINAVAIL=2 -
               MINAVAIL=2           -
<b></b>***  1  ****** M204.1088: CONCATENATE AND PARALLEL ARE MUTUALLY EXCLUSIVE OPTIONS
<b></b>***  1  ****** M204.1088: CONCATENATE AND PARALLEL ARE MUTUALLY EXCLUSIVE OPTIONS
<b></b>***  2  ****** M204.0630: DEFINE COMMAND REJECTED
<b></b>***  2  ****** M204.0630: DEFINE COMMAND REJECTED
</p>
</p>
<p>In the following example, CCAJRNL is defined as GDG, but the CONTROL option is missing.</p>
<p>
<p class="code">DEFINE STREAM CCAJRNL WITH SCOPE=SYSTEM -
In the following example, <code>CCAJRNL</code> is defined as <var>GDG</var>, but the <var>CONTROL</var> option is missing.</p>
              GDG=STEP04B -
<p class="code">DEFINE STREAM CCAJRNL WITH SCOPE=SYSTEM GDG=STEP04B           -
<b></b>***  1  ****** M204.1471: CONTROL IS REQUIRED FOR THIS COMMAND
<b></b>***  1  ****** M204.1471: CONTROL IS REQUIRED FOR THIS COMMAND
<b></b>***  2  ****** M204.0630: DEFINE COMMAND REJECTED
<b></b>***  2  ****** M204.0630: DEFINE COMMAND REJECTED
</p>
</p>
<p>In the following example, CCAJRNL is defined first as a RING stream and then as a GDG data set. <var class="product">Model&nbsp;204</var> rejects this definition because it reads through to the final option, AUTOOFFLOAD, holds that, and reads backwards to find the type of stream, GDG, the last type defined. Since AUTOOFFLOAD and GDG are mismatched, an error is issued.</p>
<p>
In the following example, <code>CCAJRNL</code> is defined first as a <var>RING</var> stream and then as a <var>GDG</var> data set. <var class="product">Model&nbsp;204</var> rejects this definition because it reads through to the final option, <var>AUTOOFFLOAD</var>, holds that, and reads backwards to find the type of stream, <var>GDG</var>, the last type defined. Since <var>AUTOOFFLOAD</var> and <var>GDG</var> are mismatched, an error is issued.</p>
<p class="code">DEFINE STREAM CCAJRNL WITH SCOPE=SYSTEM -
<p class="code">DEFINE STREAM CCAJRNL WITH SCOPE=SYSTEM -
               RING=(J01,J02) -
               RING=(J01,J02) -
               GDG=STEP06DD -
               GDG=STEP06DD   -
               CONTROL=CTL01 -
               CONTROL=CTL01 -
               OFFLOAD=OFFJ01 -
               OFFLOAD=OFFJ01 -
               AUTOOFFLOAD=3
               AUTOOFFLOAD=3
Line 197: Line 201:
<b></b>***  2 ******  M204.0630: DEFINE COMMAND REJECTED
<b></b>***  2 ******  M204.0630: DEFINE COMMAND REJECTED
</p>
</p>
<p>When you encounter these types of errors, the solution is to rewrite commands.</p>
<p>
When you encounter these types of errors, the solution is to rewrite the commands.</p>
 
==See also==
<ul>
<li>[[SWITCH STREAM command]] </li>
<li>[[COPY STREAM command]] </li>
<li>[[Configuring checkpoint and journal data streams]] </li>
</ul>
 
[[Category: System manager commands]]
[[Category: System manager commands]]
[[Category:Commands]]
[[Category:Commands]]

Latest revision as of 00:36, 29 November 2017

Describing sequential I/O streams

Summary

Privileges
User 0 or system manager
Function
Describes sequential I/O streams for processing within Model 204

Syntax

DEFINE STREAM name [LIKE previousname] WITH SCOPE=SYSTEM { CONCATENATE=(stream1 [,streamn]...) | PARALLEL=(stream1 [,streamn]) MINAVAIL=n | GDG=ddname CONTROL=ddname2 | RING=(stream1 [,streamn]...) OFFLOAD=stream CONTROL=ddname [AUTOOFFLOAD=n] [CLOSE={AUTO | NOAUTO}] }

The command options are described in the following table. See also Configuring checkpoint and journal data streams.

name Identifies the stream. It may be a keyword or, for a sub- or member stream, a non-keyword. See the example in Example, below.

Valid keywords, which refer to Model 204 recognized data set DDnames, are: CCAJLOG, CCAJRNL, CHKPOINT, CHKPNTS, RESTART, RESTARTS, CCARF, CCAGEN.

CONCATENATE Specifies a stream defined with a concatenated configuration.

CONCATENATE, PARALLEL, GDG, and RING are mutually exclusive options.

stream1 ... streamn Options stream1 through streamn specify the names of the streams that are members of the concatenated configuration in the order of their use. The streams referred to can be:
  • Another stream

  • Data set

PARALLEL Specifies a stream defined with a parallel configuration. A PARALLEL stream requires a MINAVAIL value.

CONCATENATE, PARALLEL, GDG, and RING are mutually exclusive options.

MINAVAIL Specifies the number of members that must remain available for a parallel stream to continue as a valid output stream.

MINAVAIL is valid for PARALLEL streams only. The default is the number of members specified in the PARALLEL parameter. The smallest allowable value for this option is 1.

If there is an I/O error on all streams, an I/O error is displayed. If one member stream is still usable, then a value less than MINAVAIL results in the display of a file-full condition with output streams. Under the same conditions, falling below MINAVAIL results in the display of an end-of-data condition with input streams.

RING Specifies that the stream being defined is a ring configuration. The options stream1 through streamn specify the names of the streams that are members of the ring configuration in the order of their use. The streams referred to can be:
  • Another stream

  • Data set

CONCATENATE, PARALLEL, GDG, and RING are mutually exclusive options.

AUTOOFFLOAD Specifies the number of members that can be filled before an offload process is started for an output RING stream. The value specified must range from one to the number of ring members minus one. If a value greater than the range maximum is specified, the DEFINE STREAM command is rejected.

This option is invalid with PARALLEL and CONCATENATED streams and has no effect when specified for input RING streams. The default value is the number of ring members minus one. The system manager can start the offload process manually at any time by using the OFFLOAD command.

OFFLOAD Specifies the name of the stream used for automatic or manual dumping of RING stream members. For an output RING, the OFFLOAD stream is opened at one of the following points:
  • When the AUTOOFFLOAD threshold is reached.

  • When an OFFLOAD command is issued for the RING stream.

  • When the RING stream is closed and one or more members of the RING require offloading, unless specifically suppressed by the CLOSE=NOAUTO parameter setting.

The offload stream is closed if it was concatenated. Otherwise, it is left open as long as the ring stream is left open.

In the case of input, OFFLOAD specifies the stream containing data that was offloaded while writing to the ring stream.

OFFLOAD is required for ring streams, and it is not valid with CONCATENATE or PARALLEL.

CLOSE Specifies the offloading action taken when the RING stream closes.
AUTO This option, the default, indicates that any data that has accumulated in ring members since the completion of the last offload process must be offloaded during close processing. If this option is selected, the offload stream is opened and the data is offloaded from the ring members to the offload stream. In addition, if the offload stream is open when EOD processing begins, it remains open even if the offload process enters an idle state before the actual closing of the stream. This allows the final offload process to continue to the same output data set.
NOAUTO Specifies that the ring is not offloaded completely when the stream is closed. In this case, the offload stream does not contain a complete copy of the data on the ring. At the time the ring is closed, any offload process in progress is immediately ended without completing the offload of the member currently being offloaded. EOD processing of a ring with CLOSE=NOAUTO does not attempt to keep the offload stream open, if it is then open. The offload continues until the ring stream is closed.

The table below sums up the effect of the AUTO or NOAUTO options on EOD and close processing:

Effects of AUTO and NOAUTO options

Option

EOD processing

CLOSE processing

AUTO

If offload process enters idle state, OFFLOAD stream remains open.

Any members not offloaded before are offloaded.

NOAUTO

If offload process enters idle state, OFFLOAD stream is closed.

If an offload process is in progress, it is terminated immediately. There is no further attempt to offload.

CONTROL Specifies the name of a data set that contains control information for the RING stream or GDG data set. The CONTROL data set is required only for CCAJRNL RING streams and GDG data sets. SPACE=CYL,(1,1) is sufficient. You do not need to specify any DCB attributes, Model 204 sets those to:

RECFM=U,LRECL=24,BLKSIZE=24

The CONTROL data set keeps track of each offload that has occurred and what the current ring member or GDG stream is. It is an output data set during the original run. If recovery is subsequently required, it is an input data set that tells recovery:

  • For ring members, which offload data sets and in what order to read them.

  • For GDGs, which generation data sets and in what order to read them.

GDG Specifies a data set defined with a GDG configuration. A GDG data set requires a CONTROL data set. A GDG member must be a data set. STREAM is not supported for a GDG member. A GDG must be the lowest level of a stream and may have no subsequent levels.

The GDG data set is available for only z/OS. GDG streams may only be used for journals and checkpoints. Use of GDG streams for directed output files does not work.

CONCATENATE, PARALLEL, GDG, and RING are mutually exclusive options.

Example

The following example uses a series of DEFINE STREAM commands to specify a recovery stream and the underlying members of that recovery stream:

DEFINE STREAM CCAJRNL WITH SCOPE=SYSTEM - RING=(A,B,C) OFFLOAD=D CONTROL=E - AUTOOFFLOAD=2 DEFINE STREAM A WITH SCOPE=SYSTEM - PARALLEL=(JRNL1,JRNL2) DEFINE STREAM B WITH SCOPE=SYSTEM - PARALLEL=(JRNL3,JRNL4) DEFINE STREAM C WITH SCOPE=SYSTEM - PARALLEL=(JRNL5,JRNL6) DEFINE STREAM D WITH SCOPE=SYSTEM - PARALLEL=(TAPE1,TAPE2) MINAVAIL=1 DEFINE STREAM E WITH SCOPE=SYSTEM - PARALLEL=(CTL1,CTL2) MINAVAIL=1

Usage notes

The DEFINE STREAM command is only for the recovery streams CCAJLOG, CCAJRNL, CCARF, CHKPNTS, CHKPOINT, RESTART, and RESTARTS. The ring stream OFFLOAD option can also be a stream of any type or a data set. These DEFINE STREAM commands can be entered before the User 0 parameter line in the CCAIN data set. This allows them to be defined by the system manager before they are opened by the initialization routines.

For more information on sequential file processing, see OFFLOAD command.

For general syntax and usage notes that apply to all forms of the DEFINE command, see DEFINE command.

Handling mutually exclusive or missing options

Each type of stream you can define — CONCATENATE, PARALLEL, RING, GDG — is mutually exclusive of the other types of streams. If you define a stream with more than one type, Model 204 issues various messages, depending on the combination of types you defined.

In the following example, CCAJRNL is defined with both the CONCATENATE and PARALLEL options:

DEFINE STREAM CCAJRNL WITH SCOPE=SYSTEM - CONCATENATE=(J01,J02) - PARALLEL=(JO3,JO4) - MINAVAIL=2 - *** 1 ****** M204.1088: CONCATENATE AND PARALLEL ARE MUTUALLY EXCLUSIVE OPTIONS *** 2 ****** M204.0630: DEFINE COMMAND REJECTED

In the following example, CCAJRNL is defined as GDG, but the CONTROL option is missing.

DEFINE STREAM CCAJRNL WITH SCOPE=SYSTEM GDG=STEP04B - *** 1 ****** M204.1471: CONTROL IS REQUIRED FOR THIS COMMAND *** 2 ****** M204.0630: DEFINE COMMAND REJECTED

In the following example, CCAJRNL is defined first as a RING stream and then as a GDG data set. Model 204 rejects this definition because it reads through to the final option, AUTOOFFLOAD, holds that, and reads backwards to find the type of stream, GDG, the last type defined. Since AUTOOFFLOAD and GDG are mismatched, an error is issued.

DEFINE STREAM CCAJRNL WITH SCOPE=SYSTEM - RING=(J01,J02) - GDG=STEP06DD - CONTROL=CTL01 - OFFLOAD=OFFJ01 - AUTOOFFLOAD=3 *** 1 ****** M204.1473: RING IS REQUIRED WHEN AUTOOFFLOAD IS SPECIFIED *** 2 ****** M204.0630: DEFINE COMMAND REJECTED

When you encounter these types of errors, the solution is to rewrite the commands.

See also