Tracking system activity (CCAJRNL, CCAAUDIT, CCAJLOG): Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (typo)
 
(61 intermediate revisions by 6 users not shown)
Line 13: Line 13:
</ul>
</ul>
   
   
===Introducing CCAJRNL===
===CCAJRNL===
<p>
<p>
The complete repository of <var class="product">Model&nbsp;204</var> system activity and data that would be used in recovery is CCAJRNL. The CCAJRNL file collects all update information used to reconstruct the database during recovery and all other activity history, such as messages and statistics, in an unformatted, therefore unreadable, binary format.</p>
The complete repository of <var class="product">Model&nbsp;204</var> system activity and data that would be used in recovery is CCAJRNL. The CCAJRNL file collects all update information used to reconstruct the database during recovery and all other activity history, such as messages and statistics, in an unformatted, therefore unreadable, binary format.</p>
   
   
===Introducing CCAAUDIT and CCAJLOG===
===CCAAUDIT and CCAJLOG===
<p>
<p>
You can also create a CCAAUDIT and/or a CCAJLOG file to track information. CCAAUDIT and CCAJLOG are comprised of the same <var class="product">Model&nbsp;204</var> audit trail data, however, differently. The activity history or audit trail is comprised of:</p>
You can also create a CCAAUDIT and/or a CCAJLOG file to track information. CCAAUDIT and CCAJLOG are comprised of the same <var class="product">Model&nbsp;204</var> audit trail data, however, differently. The activity history or audit trail is comprised of:</p>
Line 43: Line 43:
<p>
<p>
The CCAJLOG file off loads the audit trail information into itself, so that the CCAJRNL contains only the information required for RESTART recovery. Recovery performance is improved, because the audit trail information does not have to be read and rejected for recovery.</p>
The CCAJLOG file off loads the audit trail information into itself, so that the CCAJRNL contains only the information required for RESTART recovery. Recovery performance is improved, because the audit trail information does not have to be read and rejected for recovery.</p>
 
===Version-specific journals===
===Version-specific journals===
<p>
<p>
Line 59: Line 59:
   
   
<tr>
<tr>
<td nowrap>Generate an audit trail that can be viewed during processing </td>
<td>Generate an audit trail that can be viewed during processing </td>
<td>CCAAUDIT</td>
<td>CCAAUDIT</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
Line 145: Line 145:
<li>When switching a journal stream, CCAJRNL or CCAJLOG, the currently active data set in that stream is closed. The next data set defined to the stream is opened when the next write to that stream is required. </li>
<li>When switching a journal stream, CCAJRNL or CCAJLOG, the currently active data set in that stream is closed. The next data set defined to the stream is opened when the next write to that stream is required. </li>


<li>When switching a checkpoint stream CHKPOINT or CHKPNTS, the currently active data set in that stream is closed after the next record is written to that data set.</li>
<li>When switching a checkpoint stream, CHKPOINT or CHKPNTS, the currently active data set in that stream is closed after the next record is written to that data set.</li>
</ul>
</ul>
<p>
<p>
Line 151: Line 151:
<p>
<p>
The <var>SWITCH STREAM command</var> is sometimes useful for CCAJLOG and rarely required for CHKPOINT or CHKPNTS.</p>
The <var>SWITCH STREAM command</var> is sometimes useful for CCAJLOG and rarely required for CHKPOINT or CHKPNTS.</p>
 
===Journal block header information for SWITCH STREAM===
===Journal block header information for SWITCH STREAM===
<p>
<p>
Line 194: Line 194:
The next checkpoint, automated or command initiated, begins the extended quiesce</p>
The next checkpoint, automated or command initiated, begins the extended quiesce</p>
<p>
<p>
When the checkpoint is successful, the extended quiesce is entered. While in extended quiesce, you cannot issue a CHECKPOINT command. However, you can issue a SWITCH STREAM command, such as the following:</p>
When the checkpoint is successful, the extended quiesce is entered. While in extended quiesce, you cannot issue a <var>CHECKPOINT</var> command. However, you can issue a <var>SWITCH STREAM</var> command, such as the following:</p>
</td>
</td>
</tr>
</tr>
Line 207: Line 207:
<td align="right">4</td>
<td align="right">4</td>
<td nowrap>CHECKPOINT END EXTENDED QUIESCE</td>
<td nowrap>CHECKPOINT END EXTENDED QUIESCE</td>
<td>Concludes extended quiesce. Should recovery be required due to a failure during extended quiesce, journals created prior to the SWITCH STREAM command will not be required, as the last checkpoint resides in the current CCAJRNL member.</td>
<td>Concludes extended quiesce. Should recovery be required due to a failure during extended quiesce, journals created prior to the <var>SWITCH STREAM</var> command will not be required, as the last checkpoint resides in the current CCAJRNL member.</td>
</tr>
</tr>
</table>
</table>
<p>
<p>
This automated checkpoint functionality of SWITCH STREAM CCAJRNL applies only during checkpoint quiesce. The automated checkpoint functionality is not supported for CCAJLOG, CHKPOINT, or CHKPNTS.</p>
This automated checkpoint functionality of <var>SWITCH STREAM CCAJRNL</var> applies only during checkpoint quiesce. The automated checkpoint functionality is not supported for CCAJLOG, CHKPOINT, or CHKPNTS.</p>
   
   
===SWITCH STREAM limitations===
===SWITCH STREAM limitations===
Line 316: Line 316:
During a production Online run, roll forward recovery information is written to the CCAJRNL data set. Additionally, a substantial amount of unformatted audit trail data is also written. When recovery is required and after roll back recovery has completed, that data set (during recovery its ddname is CCARF) is read and the roll forward information is extracted and used to reapply all committed updates up to the time of the system failure.</p>
During a production Online run, roll forward recovery information is written to the CCAJRNL data set. Additionally, a substantial amount of unformatted audit trail data is also written. When recovery is required and after roll back recovery has completed, that data set (during recovery its ddname is CCARF) is read and the roll forward information is extracted and used to reapply all committed updates up to the time of the system failure.</p>


<p style="margin-left:2em">
<p class="caption" style="width:468px">CCAJRNL collecting all roll forward and audit information</p>
[[File:SM13ccaprint1_sep05.gif|border]] </p>
<p class="figure">[[File:SM13ccaprint1_sep05.gif|468px]] </p>
<p class="caption" style="margin-right:16em">CCAJRNL set up to collect all roll forward and audit information</p>


==Performance efficiencies using CCAJRNL==
==Performance efficiencies using CCAJRNL==
   
   
Line 342: Line 340:


<li>The size of these buffers is determined by the <var>BLKSIZE</var> parameter defined for the CCAJLOG data set which may be as large as 32K.</li>
<li>The size of these buffers is determined by the <var>BLKSIZE</var> parameter defined for the CCAJLOG data set which may be as large as 32K.</li>
</li>
</ul>
</ul>
<p>
<p>
You can produce a formatted CCAAUDIT report from CCAJLOG using the AUDIT204 utility. In this case, the CCAJLOG is referenced via the ddname CCAJRNL. </p>
You can produce a formatted CCAAUDIT report from CCAJLOG using the AUDIT204 utility. In this case, the CCAJLOG is referenced via the ddname CCAJRNL. </p>
<p style="margin-left:2em">
 
[[File:SM13ccaprint2_sep05.gif|border]] </p>
<p class="caption" style="width:466px">CCAJRNL collecting roll forward data; <br/>CCAJLOG collecting audit trail data</p>
<p class="caption" style="margin-right:16em">CCAJRNL collecting roll forward data; CCAJLOG collecting audit trail data</p>
<p class="figure">[[File:SM13ccaprint2_sep05.gif|466px]] </p>
   
   
====Defining the CCAJLOG stream====
====Defining the CCAJLOG stream====
<p>
<p>
You can define a CCAJLOG using any of the stream definitions: concatenate, parallel, ring, or GDG; see [[DEFINE STREAM command]].</p>
You can define a CCAJLOG using any of the stream definitions: concatenate, parallel, ring, or GDG; see [[DEFINE STREAM command]].</p>
 
===M204JLOG assembler exit===
===M204JLOG assembler exit===
<p>
<p>
The assembler exit, M204JLOG, can be invoked if linked in. This exit is initiated when a SWITCH command is issued against a CCAJLOG GDG stream. The exit may be any AMODE and need not be reentrant.</p>
The assembler exit, M204JLOG, can be invoked if linked in. This exit is initiated when a <var>SWITCH</var> command is issued against a CCAJLOG GDG stream. The exit may be any AMODE and need not be reentrant.</p>
   
   
====Coding considerations====
====Coding considerations====
<p>
<p>
On entry, the registers contain:</p>
On entry, the registers contain:</p>
<p>
 
R4  = A(GDG LIOD)</p>
:R4  = A(GDG LIOD)
<p>
:R9  = A(new switch control record) (see CRD dsect)
R9  = A(new switch control record) (see CRD dsect)</p>
:R13 = A(OSW save area)
<p>
:R14 = return address
R13 = A(OSW save area)</p>
:R15 = base address
<p>
R14 = return address</p>
<p>
R15 = base address</p>
<p>
<p>
<var class="product">Model&nbsp;204</var> expects no output from the exit. All registers must be restored before return. If any <var class="product">Model&nbsp;204</var> data structures are modified by the exit, unpredictable results may occur.</p>
<var class="product">Model&nbsp;204</var> expects no output from the exit. All registers must be restored before return. If any <var class="product">Model&nbsp;204</var> data structures are modified by the exit, unpredictable results may occur.</p>
<p class="note"><b>Note:</b> If the user exit abends, <var class="product">Model&nbsp;204</var> issues an error and produces a snap. This leaves <var class="product">Model&nbsp;204</var> waiting for the switch to complete. At that point the switch will never complete, no further Online activity is possible, and the Online must be cancelled.</p>
<blockquote class="note">
<p><b>Note:</b> If the user exit abends, <var class="product">Model&nbsp;204</var> issues an error and produces a snap. This leaves <var class="product">Model&nbsp;204</var> waiting for the switch to complete. At that point the switch will never complete, no further Online activity is possible, and the Online must be cancelled.</p>
<p>
<p>
In addition, while the M204JLOG user exit is running, <var class="product">Model&nbsp;204</var> cannot continue normal processing until a return from the exit is accomplished. For this reason, WAITS and I/Os inside the exit are strongly discouraged.</p>
In addition, while the M204JLOG user exit is running, <var class="product">Model&nbsp;204</var> cannot continue normal processing until a return from the exit is accomplished. For this reason, WAITs and I/Os inside the exit are strongly discouraged.</p>
</blockquote>
   
   
====Sample M204JLOG Assembler exit====
====Sample M204JLOG Assembler exit====
Line 432: Line 427:
</ul>
</ul>
<p>
<p>
Set the <var>[[NLBUFF parameter|NLBUFF]]</var> parameter to specify the number of buffers to use for CCAJLOG. If you do not specify a value for NLBUFF, a default value of five is allocated. </p>
Set the <var>[[NLBUFF parameter|NLBUFF]]</var> parameter to specify the number of buffers to use for CCAJLOG. If you do not specify a value for <var>NLBUFF</var>, a default value of five is allocated. </p>
   
   
===Using the journals correctly===
===Using the journals correctly===
Line 622: Line 617:
At a z/OS site, the most comprehensive way to avoid data set full problems is to define both CCAJRNL and CCAJOG as generation data groups (GDGs). See [[Configuring checkpoint and journal data streams#Perpetual journaling for z/OS|Perpetual journaling for z/OS]].</p>
At a z/OS site, the most comprehensive way to avoid data set full problems is to define both CCAJRNL and CCAJOG as generation data groups (GDGs). See [[Configuring checkpoint and journal data streams#Perpetual journaling for z/OS|Perpetual journaling for z/OS]].</p>
   
   
==Introducing Model 204 statistics==
==Model 204 statistics==
<p>
<p>
A statistic is written to CCAAUDIT only if its value is nonzero. However, all statistics, even those with zero values, are written to CCAJRNL (or CCAJLOG). </p>
A statistic is written to CCAAUDIT only if its value is nonzero. However, all statistics, even those with zero values, are written to CCAJRNL (or CCAJLOG). </p>
Line 664: Line 659:
<li>View formatted or unformatted displays of all nonzero cumulative statistics for active users &mdash; individual, specified groups, and all users &mdash; and system activities.</li>
<li>View formatted or unformatted displays of all nonzero cumulative statistics for active users &mdash; individual, specified groups, and all users &mdash; and system activities.</li>


<li>Use the AUDIT204 or UTILJ utility program to extract and summarize statistics lines from the journal data set. See [[#Introducing the AUDIT204 utility|Introducing the AUDIT204 utility]] and [[System and media recovery#Using the UTILJ utility|Using the UTILJ utility]]
<li>Use the AUDIT204 or UTILJ utility program to extract and summarize statistics lines from the journal data set. See [[#AUDIT204 utility|the AUDIT204 utility]] and [[System and media recovery#Using the UTILJ utility|Using the UTILJ utility]]
</li>
</li>


Line 672: Line 667:
===Setting the NSUBTKS parameter===
===Setting the NSUBTKS parameter===
<p>
<p>
Gathering partial or performance statistics lines requires a <var class="product">Model&nbsp;204</var> pseudo subtask. <var class="product">Model&nbsp;204</var> uses pseudo subtasks to perform actions that must be done regularly but that cannot be assigned to a specific user. To accommodate partial and performance statistics lines you might need to increase the <var>NSUBTKS</var> parameter on User 0's parameter line, which controls the maximum number of pseudo subtasks that can be allocated. Pseudo subtasks are described in [[Controlling System Operations (CCAIN)#Pseudo subtasks|Pseudo subtasks]]. </p>
Gathering partial or performance statistics lines requires a <var class="product">Model&nbsp;204</var> pseudo subtask. <var class="product">Model&nbsp;204</var> uses pseudo subtasks to perform actions that must be done regularly but that cannot be assigned to a specific user. To accommodate partial and performance statistics lines you might need to increase the <var>NSUBTKS</var> parameter on User 0's parameter line, which controls the maximum number of [[Controlling system operations (CCAIN)#Pseudo subtasks|pseudo subtasks]] that can be allocated. </p>
   
   
===Setting parameters to collect certain statistics===
===Setting parameters to collect certain statistics===
<p>
<p>
You must set various parameters to collect certain statistics. The following table lists the statistics and the corresponding parameter(s).</p>
You must set various parameters to collect certain statistics. The following table lists the statistics and the corresponding parameter(s):</p>
<table>
<table>
<caption>Parameters to set to collect certain statistics</caption>
<caption>Parameters to set to collect certain statistics</caption>
Line 762: Line 757:
==Audit trail format==
==Audit trail format==
<p>
<p>
Whether printed to your terminal from CCAAUDIT or CCAJRNL (or CCAJLOG) is processed by AUDIT204, the format of an audit trail line is:</p>
Whether printed to CCAAUDIT, either directly from ONLINE/BATCH204 (with two exceptions), or from AUDIT204,
the format of an audit trail line is shown below.  The two exceptions are:
</p>
<ul>
<li>
The YEARFORM 4 parameter is not available in ONLINE/BATCH204; it is only available in AUDIT204.
This means that a 4-digit year cannot be printed in a CCAAUDIT generated by ONLINE/BATCH204.
</li>
<li>
The TIMEHH parameter is not available in ONLINE/BATCH204; it is only available in AUDIT204.
This means that the time stamp with hundredths of a second cannot be printed in a CCAAUDIT generated
by ONLINE/BATCH204. 
</li>
</ul>
   
   
<p class="syntax"><span class="term">yydddhhmmss nnn sss xxxxx tt (...) audit-trail-text</span>
<p class="code">yydddhhmmss seq sssss uuuuu tt audit-trail-text ...  
or
yydddhhmmsshu seq sssss uuuuu tt audit-trail-text ... '''(if TIMEHH was specified)'''
</p>
</p>
   
   
Line 772: Line 782:


<li><var class="term">hhmmss</var> is the time of day in hours, minutes, and seconds.</li>
<li><var class="term">hhmmss</var> is the time of day in hours, minutes, and seconds.</li>
<li><var class="term">hhmmsshu</var> is the time of day in hours, minutes, seconds, hundredths.</li>


<li><var class="term">nnn</var> is a counter to distinguish lines produced in the same second.
<li><var class="term">seq</var> sequence number is a counter to distinguish lines produced in the same second.
</li>
</li>


<li><var class="term">sss</var> is the number of the server currently handling the user. (Leading zeros are suppressed.)</li>
<li><var class="term">sssss</var> is the 5-digit server number the user is currently using. (Leading zeros are suppressed.)</li>


<li><var class="term">xxxxx</var> is the 5-digit number of the user associated with the audit trail line. (Leading zeros are suppressed.)</li>
<li><var class="term">uuuuu</var> is the 5-digit user number. (Leading zeros are suppressed.)</li>


<li><var class="term">tt</var> is code for the type of audit trail line. The tt codes are shown in the
<li><var class="term">tt</var> is code for the type of audit trail line. The tt codes are shown in the
Line 784: Line 795:
</ul>
</ul>
   
   
====Example====
====Example 1, CCAAUDIT output direct from ONLINE====
<p class="code">05263092241 10 0 1 AD...M204.0763: BEGIN FILE INITIALIZATION:
<p class="code">  
'''COLUMN:                      These three lines''' 
'''2          15 18  23 25      are not present'''
'''DATE/TIME SEQ# S# USR# TYPE      in actual output'''
 
23256145406  0  0    0 RK ...  START VERSION =7.8.0A  SMF SYSTEM ID = RS26                                                      XX-
23256145406  1  0    0 XX                                                                                                         
23256145406  2  0    0 AD ///  **************************************************************************                         
23256145406  3  0    0 AD ///  * Model 204 is proprietary to and a registered trademark of Rocket      *                         
23256145406  4  0    0 AD ///  * Software, Inc. All title, copyright and other proprietary rights shall *                         
23256145406  5  0    0 AD ///  * be retained by Rocket Software, Inc. Model 204 has been licensed by    *                         
23256145406  6  0    0 AD ///  * this customer and the use and protection of Model 204 is governed by  *                         
23256145406  7  0    0 AD ///  * the license agreement between the customer and Rocket Software, Inc.  *                         
23256145406  8  0    0 AD ///  *                                                                        *                         
23256145406  9  0    0 AD ///  * Copyright (C) 2016 Rocket Software, Inc.                              *                         
23256145406 10 0    0 AD ///  * or its affiliates                                                      *                         
23256145406 11  0    0 AD ///  **************************************************************************                         
23256145406 12  0    0 AD ///  M204.0060: Model 204 initialization. Version = 7.8.0A 2020/03/06 14.12, RSQL level = 7.8.0A 2020/02/-
23256145406 13  0    0 XX 12 08.14                                                                                                 
23256145406 14  0    0 AD ///  M204.0061: SMF system ID = RS26, job name = PSTPC780, step name = TPCBV780, job step =  , JES ID = J-
23256145406 15  0    0 XX 0130887                                                                                                 
23256145406 16  0    0 AD ///  M204.0062: Execute parameters: RCVOPT=9,NJBUFF=115,SYSOPT=139,SYSOPT2=64,LIBUFF=6000,XMEMOPT=3,SIRFU-
23256145406 17  0    0 XX NC=1                                                                                                     
</p>
</p>
<p>
 
The following table lists the code and purpose of the audit trail lines:</p>
====Example 2, CCAAUDIT output from AUDIT204====
<table>
<p class="code">
AUDIT204 Utility - Version 7.8.0A, Assembly date/time: 20200229 22.08                                                             
Date/time of run: 09/07/2023 12:56:01                                                                                             
CCAJRNL or CCAJLOG version: 7.8.0A                                                                                                 
Zaps: 78Z7759 78Z7891 78Z7973 78Z7975 78Z8066 78Z8075
 
'''COLUMN:                              These three lines'''
'''2              18    24    30 32      are not present '''
'''DATE/TIME    SEQ# SERV# USER# TYPE      in actual output'''
 
'''FORMAT TIMEHH'''                                                                                                                     
2216613441420  0    0    0 RK ...  START VERSION =7.8.0A  SMF SYSTEM ID = RS26                                              XX-
2216613441420  1    0    0 XX                                                                                                   
2216613441420  2    0    0 AD ///  **************************************************************************                   
2216613441420  3    0    0 AD ///  * Model 204 is proprietary to and a registered trademark of Rocket      *                   
2216613441420  4    0    0 AD ///  * Software, Inc. All title, copyright and other proprietary rights shall *                   
2216613441420  5    0    0 AD ///  * be retained by Rocket Software, Inc. Model 204 has been licensed by    *                   
2216613441420  6    0    0 AD ///  * this customer and the use and protection of Model 204 is governed by  *                   
2216613441420  7    0    0 AD ///  * the license agreement between the customer and Rocket Software, Inc.  *                   
2216613441420  8    0    0 AD ///  *                                                                        *                   
2216613441420  9    0    0 AD ///  * Copyright (C) 2016 Rocket Software, Inc.                              *                   
2216613441420  10    0    0 AD ///  * or its affiliates                                                      *                   
2216613441420  11    0    0 AD ///  **************************************************************************                   
2216613441420  12    0    0 AD ///  M204.0060: Model 204 initialization. Version = 7.8.0A 2020/03/06 14.12, RSQL level = 7.8.0A 2-
2216613441420  13    0    0 XX 020/02/12 08.14                                                                                   
2216613441420  14    0    0 AD ///  M204.0061: SMF system ID = RS26, job name = PSTPC780, step name = TPCBV780, job step =  , JES-
2216613441420  15    0    0 XX  ID = J0536896                                                                                   
2216613441420  16    0    0 AD ///  M204.0062: Execute parameters: RCVOPT=9,NJBUFF=115,SYSOPT=139,SYSOPT2=64,LIBUFF=6000,XMEMOPT=-
2216613441420  17    0    0 XX 3,SIRFUNC=1 
</p>
 
====Example 3, CCAAUDIT output from AUDIT204====
<p class="code">
AUDIT204 Utility - Version 7.8.0A, Assembly date/time: 20200229 22.08                                                             
Date/time of run: 09/07/2023 14:09:46                                                                                             
CCAJRNL or CCAJLOG version: 7.8.0A                                                                                                 
Zaps: 78Z7759 78Z7891 78Z7973 78Z7975 78Z8066 78Z8075
'''COLUMN:                              These three lines'''
'''2              18    24    30 32      are not present '''
'''DATE/TIME    SEQ# SERV# USER# TYPE      in actual output'''
                                                                           
'''FORMAT'''                                                                                                                             
'''YEARFORM 4'''                                                                                                                       
2022166134414  0    0    0 RK ...  START VERSION =7.8.0A  SMF SYSTEM ID = RS26                                              XX-
2022166134414  1    0    0 XX                                                                                                   
2022166134414  2    0    0 AD ///  **************************************************************************                   
2022166134414  3    0    0 AD ///  * Model 204 is proprietary to and a registered trademark of Rocket      *                   
2022166134414  4    0    0 AD ///  * Software, Inc. All title, copyright and other proprietary rights shall *                   
2022166134414  5    0    0 AD ///  * be retained by Rocket Software, Inc. Model 204 has been licensed by    *                   
2022166134414  6    0    0 AD ///  * this customer and the use and protection of Model 204 is governed by  *                   
2022166134414  7    0    0 AD ///  * the license agreement between the customer and Rocket Software, Inc.  *                   
2022166134414  8    0    0 AD ///  *                                                                        *                   
2022166134414  9    0    0 AD ///  * Copyright (C) 2016 Rocket Software, Inc.                              *                   
2022166134414  10    0    0 AD ///  * or its affiliates                                                      *                   
2022166134414  11    0    0 AD ///  **************************************************************************                   
2022166134414  12    0    0 AD ///  M204.0060: Model 204 initialization. Version = 7.8.0A 2020/03/06 14.12, RSQL level = 7.8.0A 2-
2022166134414  13    0    0 XX 020/02/12 08.14                                                                                   
2022166134414  14    0    0 AD ///  M204.0061: SMF system ID = RS26, job name = PSTPC780, step name = TPCBV780, job step =  , JES-
2022166134414  15    0    0 XX  ID = J0536896                                                                                   
2022166134414  16    0    0 AD ///  M204.0062: Execute parameters: RCVOPT=9,NJBUFF=115,SYSOPT=139,SYSOPT2=64,LIBUFF=6000,XMEMOPT=-
2022166134414  17    0    0 XX 3,SIRFUNC=1
</p>
 
====Example 4, CCAAUDIT output from AUDIT204====
<p class="code">
AUDIT204 Utility - Version 7.8.0A, Assembly date/time: 20200229 22.08                                                             
Date/time of run: 09/13/2023 13:34:45                                                                                             
CCAJRNL or CCAJLOG version: 7.8.0A                                                                                                 
Zaps: 78Z7759 78Z7891 78Z7973 78Z7975 78Z8066 78Z8075
 
'''COLUMN:                              These three lines'''
'''2                20    26    32 34      are not present '''
'''DATE/TIME      SEQ# SERV# USER# TYPE      in actual output'''
                                                                             
'''FORMAT TIMEHH'''                                                                                                                     
'''YEARFORM 4'''                                                                                                                         
202216613441420  0    0    0 RK ...  START VERSION =7.8.0A  SMF SYSTEM ID = RS26                                            XX-
202216613441420  1    0    0 XX                                                                                                 
202216613441420  2    0    0 AD ///  **************************************************************************                 
202216613441420  3    0    0 AD ///  * Model 204 is proprietary to and a registered trademark of Rocket      *                 
202216613441420  4    0    0 AD ///  * Software, Inc. All title, copyright and other proprietary rights shall *                 
202216613441420  5    0    0 AD ///  * be retained by Rocket Software, Inc. Model 204 has been licensed by    *                 
202216613441420  6    0    0 AD ///  * this customer and the use and protection of Model 204 is governed by  *                 
202216613441420  7    0    0 AD ///  * the license agreement between the customer and Rocket Software, Inc.  *                 
202216613441420  8    0    0 AD ///  *                                                                        *                 
202216613441420  9    0    0 AD ///  * Copyright (C) 2016 Rocket Software, Inc.                              *                 
202216613441420  10    0    0 AD ///  * or its affiliates                                                      *                 
202216613441420  11    0    0 AD ///  **************************************************************************                 
202216613441420  12    0    0 AD ///  M204.0060: Model 204 initialization. Version = 7.8.0A 2020/03/06 14.12, RSQL level = 7.8.0A-
202216613441420  13    0    0 XX  2020/02/12 08.14                                                                               
202216613441420  14    0    0 AD ///  M204.0061: SMF system ID = RS26, job name = PSTPC780, step name = TPCBV780, job step =  , J-
202216613441420  15    0    0 XX ES ID = J0536896                                                                               
202216613441420  16    0    0 AD ///  M204.0062: Execute parameters: RCVOPT=9,NJBUFF=115,SYSOPT=139,SYSOPT2=64,LIBUFF=6000,XMEMOP-
202216613441420  17    0    0 XX T=3,SIRFUNC=1                                                                                   
</p>
 
<p>  
The following table lists the code and purpose of the audit trail lines:
</p>
<table>
<caption>Types of audit trail lines</caption>
<caption>Types of audit trail lines</caption>
<tr class="head">
<tr class="head">
Line 798: Line 931:
<tr>
<tr>
<td>AD</td>
<td>AD</td>
<td>Special information about the run, job step return code, status of <var class="product">Model&nbsp;204</var> files, user or the password table, the SNA Communications Server (formerly VTAM) Interface, or messages sent from an HLI program via the IFERR call. Note that the high-water mark of CCATEMP usage (SCMAX) also reports the total number of pages allocated to CCATEMP.</td>
<td>Special information about the run, job step return code, status of <var class="product">Model&nbsp;204</var> files, user or the password table, the SNA Communications Server (formerly VTAM) Interface, or messages sent from an HLI program via the IFERR call.</td>
</tr>
</tr>
   
   
Line 881: Line 1,014:
<tr>
<tr>
<td>ST</td>
<td>ST</td>
<td>Utilization statistics (see [[Using System Statistics]]).</td>
<td>Utilization statistics (see [[Using system statistics]]).</td>
</tr>
</tr>
   
   
<tr>
<tr>
<td>US</td>
<td>US</td>
<td>Line of special information directed to the audit trail by means of the User Language AUDIT statement.</td>
<td>Line of special information directed to the audit trail by means of the SOUL <var>Audit</var> statement.</td>
</tr>
</tr>
   
   
Line 894: Line 1,027:
</tr>
</tr>
</table>
</table>
 
==Generating an audit trail==
==Generating an audit trail==
   
   
Line 901: Line 1,034:
An audit trail is generated if:  </p>
An audit trail is generated if:  </p>
<ul>
<ul>
<li>The SYSOPT parameter includes the 128 specification</li>
<li>The <var>SYSOPT</var> parameter includes the 128 specification</li>


<li>CCAAUDIT DD statement</li>
<li>CCAAUDIT DD statement</li>
</ul>
</ul>
<p>
<p>
The LAUDPROC parameter controls the length of procedure names that appear in since-last statistic lines of the audit trail. You can reset LAUDPROC to a low or high value. A low value conserves memory. A high value captures long procedure names.             </p>
The <var>[[LAUDPROC parameter|LAUDPROC]]</var> parameter controls the length of procedure names that appear in since-last statistic lines of the audit trail. You can reset <var>LAUDPROC</var> to a low or high value. A low value conserves memory. A high value captures long procedure names. </p>
   
   
===z/VSE and the audit trail===
===z/VSE and the audit trail===
Line 912: Line 1,045:
In a z/VSE environment, activate the audit trail by incorporating the following specifications into the JCL:</p>
In a z/VSE environment, activate the audit trail by incorporating the following specifications into the JCL:</p>
<ul>
<ul>
<li>You must set UPSI to <code>1xxxxxxx</code> (SYSOPT=128).</li>
<li>You must set UPSI to <code>1xxxxxxx</code> (<code>SYSOPT=128</code>).</li>


<li>You must write the audit trail file to either a disk device or a print device:
<li>You must write the audit trail file to either a disk device or a print device:
Line 937: Line 1,070:
</p>
</p>
<p>
<p>
After the audit trail has been written to disk, you can print it using the UTLA utility program supplied with the <var class="product">Model&nbsp;204</var> DBMS. The UTLA utility is discussed in the <var class="book">Rocket Model 204 Installation Guide for IBM z/VSE</var>.  </p>
After the audit trail has been written to disk, you can print it using the UTLA utility program supplied with the <var class="product">Model&nbsp;204</var> DBMS.</p>
<p>
<p>
Use the following JCL:</p>
Use the following JCL:</p>
Line 957: Line 1,090:
<ul>
<ul>
<li>CMS file:
<li>CMS file:
<p class="code">FILEDEF CCAAUDIT DISK ONLN CCAAUDIT A
<p class="code">FILEDEF CCAAUDIT DISK ONLN CCAAUDIT A</p></li>
</p></li>


<li>Service machine virtual printer:
<li>Service machine virtual printer:
<p class="code"><var>FILEDEF CCAAUDIT PRINTER   </var>
<p class="code">FILEDEF CCAAUDIT PRINTER</p></li>
</p></li>
</ul>
</ul>
   
   
==Introducing the AUDIT204 utility==
==AUDIT204 utility==
<p>
<p>
The AUDIT204 utility program produces the following:</p>
The AUDIT204 utility program produces the following reports, all of which are written to CCAAUDIT:</p>
<ul>
<ul>
<li>Complete or partial audit trail from a journal &mdash; CCAJRNL or CCAJLOG, as ddname CCAJRNL &mdash; produced by a <var class="product">Model&nbsp;204</var> run</li>
<li>Complete or partial audit trail from a journal &mdash; CCAJRNL or CCAJLOG, as ddname CCAJRNL &mdash; produced by a <var class="product">Model&nbsp;204</var> run</li>
Line 989: Line 1,120:
<tr class="head">
<tr class="head">
<th>AUDIT204 command </th>
<th>AUDIT204 command </th>
<th>For...</th>
<th>For... </th>
</tr>
</tr>
   
   
Line 1,012: Line 1,143:
Input to AUDIT204 is free form, located in columns 1-71. The following rules apply:</p>
Input to AUDIT204 is free form, located in columns 1-71. The following rules apply:</p>
<ul>
<ul>
<li>Use blanks to separate terms.</li>


<li>Type each parameter on a separate line.</li>
<li>The command line may have one parameter and its subparameters.</li>
 
<li>Type each subsequent parameter on a separate line.</li>
 
<ul>
<li>Use blanks to separate subparameters.</li>
</ul>


<li>You can type parameters for a single command in any order.</li>
<li>You can type parameters for a single command in any order.</li>


<li>You can add subparameters for some parameters (PRICE and RENAME) by naming the subparameters in the form of character strings:</li>
<li>You can add subparameters for some parameters (PRICE and RENAME) by naming the subparameters in the form of character strings:
 
<ul>
<li>If a name contains a blank or a single quotation mark, you must enclose the name in single quotation marks.</li>
<li>If a name contains a blank or a single quotation mark, you must enclose the name in single quotation marks.</li>


Line 1,029: Line 1,165:


<li>If more than one line is required for the subparameters, place a nonblank character in column 72 or repeat the parameter on a new line. </li>
<li>If more than one line is required for the subparameters, place a nonblank character in column 72 or repeat the parameter on a new line. </li>
</ul></li>


<li>Any characters appearing in columns 73-80 are ignored. </li>
<li>Any characters appearing in columns 73-80 are ignored. </li>
Line 1,034: Line 1,171:
<li>You can repeat any parameter. </li>
<li>You can repeat any parameter. </li>


<li>Precede each comment by an asterisk (*) in column 1.</li>
<li>Precede each comment by an asterisk (<tt>*</tt>) in column 1.</li>


<li>The effect of parameters containing lists of subparameters is cumulative. </li>
<li>The effect of parameters containing lists of subparameters is cumulative. </li>
Line 1,040: Line 1,177:
<li>The last value of parameters without subparameter lists is the value used. </li>
<li>The last value of parameters without subparameter lists is the value used. </li>
</ul>
</ul>
 
===ANALYZE command===
===ANALYZE command===
<p>
<p>
The <var>ANALYZE</var> command obtains a statistical analysis report on the evaluation of User Language requests by AUDIT204. The complete report comprises an analysis for each individual account and the system as a whole. </p>
The <var>ANALYZE</var> command produces a statistical analysis report on the evaluation of SOUL requests. The complete report comprises an analysis for each individual account and the system as a whole. </p>
<p>
<p>
Since-last evaluation lines calculate the mean and standard deviation for each since-last statistic:</p>
Since-last evaluation lines calculate the mean and standard deviation for each since-last statistic:</p>
Line 1,071: Line 1,208:
<p>
<p>
Use the following syntax for the <var>ANALYZE</var> command:</p>
Use the following syntax for the <var>ANALYZE</var> command:</p>
<p class="syntax">ANALYZE [USERID | NOUSERID]
<p class="syntax">ANALYZE [USERID | NOUSERID] [USERIDS <span class="term">userid1...useridn</span>]
        [USERIDS <span class="term">userid1...useridn</span>]
</p>
</p>
<p>
<p>
or</p>
or</p>
<p class="syntax">ANALYZE [ACCOUNT | NOACCOUNT]
<p class="syntax">ANALYZE [ACCOUNT | NOACCOUNT] [ACCOUNTS <span class="term">account1...accountn</span>]  
        [ACCOUNTS <span class="term">account1...accountn</span>]  
        [<span class="term">parameters</span>]
                  [<span class="term">parameters</span>]
</p>
</p>
   
   
Where:
Where:
<p>
<p>
Use the following parameters with the ANALYZE command:</p>
Use the following parameters with the <var>ANALYZE</var> command:</p>
<table>
<table>
<tr class="head">
<tr class="head">
Line 1,091: Line 1,226:
   
   
<tr>
<tr>
<td>ACCOUNT
<td><var>ACCOUNT</var>
<br>
or <var>NOACCOUNT</var></td>
or NOACCOUNT</td>
<td>Whether or not to do an individual account analysis. The <var>ACCT</var> or <var>NOACCT</var> parameters are equivalent to <var>ACCOUNT</var> or <var>NOACCOUNT</var>, respectively. </td>
<td>Whether or not to do an individual account analysis. The ACCT or NOACCT parameters are equivalent to ACCOUNT or NOACCOUNT, respectively. </td>
</tr>
</tr>
   
   
<tr>
<tr>
<td>ACCOUNTS </td>
<td><var>ACCOUNTS</var> </td>
<td>Login account name(s) to list in the analysis report.  
<td>Login account name(s) to list in the analysis report.  
<p>
<p>
Reports are produced only for the specified accounts and only the since-last evaluation lines for those accounts that are included in the systemwide report.</p>
Reports are produced only for the specified accounts and only the since-last evaluation lines for those accounts that are included in the systemwide report.</p>
<p>
<p>
Specifying ACCOUNTS sets the ACCOUNT parameter when neither ACCOUNT nor NOACCOUNT was specified.</p>
Specifying <var>ACCOUNTS</var> sets the <var>ACCOUNT</var> parameter when neither <var>ACCOUNT</var> nor <var>NOACCOUNT</var> was specified.</p>
</td>
</td>
</tr>
</tr>
   
   
<tr>
<tr>
<td>OMIT <i>name1 name2</i>... </td>
<td><var>OMIT <i>name1 name2</i>...</var> </td>
<td>Since-last statistic(s) to list, but omit from the analysis report. The report contains all since-last statistics that are not explicitly omitted.</td>
<td>Since-last statistic(s) to list, but omit from the analysis report. The report contains all since-last statistics that are not explicitly omitted.  Specifying file or user statistics will generate an error message and terminate the ANALYZE.</td>
</tr>
</tr>
   
   
<tr>
<tr>
<td>RENAME <i>name</i>=<i>newname</i> </td>
<td nowrap><var>RENAME <i>name</i>=<i>newname</i></var> </td>
<td>New names to since-last statistics as column headings for an analysis report.</td>
<td>New names to since-last statistics as column headings for an analysis report.</td>
</tr>
</tr>
   
   
<tr>
<tr>
<td>TIME [<i>yydddhhmmss</i> |
<td><var>TIME [<i>yydddhhmmss</i> / <i>yydddhhmmss</i> | <i>cyydddhhmmss</i> / <i>cyyddhhmmss</i>]</var></td>
<i>yydddhhmmss</i> | <i>cyydddhhmmss</i> |
<i>cyyddhhmmss</i>]</td>
<td>Time range from which since-last evaluation lines are taken.</td>
<td>Time range from which since-last evaluation lines are taken.</td>
</tr>
</tr>
   
   
<tr>
<tr>
<td>SYS (the default)
<td><var>SYS</var> (the default)
<br>or NOSYS </td>
<br>or <var>NOSYS</var> </td>
<td>Whether or not to do a systemwide analysis using since-last evaluation lines of accounts for which an individual analysis is done. </td>
<td>Whether or not to do a systemwide analysis using since-last evaluation lines of accounts for which an individual analysis is done. </td>
</tr>
</tr>
   
   
<tr>
<tr>
<td>USERID (the default)
<td><var>USERID</var> (the default)
<br>or NOUSERID </td>
<br>or <var>NOUSERID</var> </td>
<td>Performing or suppressing an individual user ID analysis. Totals for a systemwide analysis are still accumulated if NOUSERID is specified.</td>
<td>Performing or suppressing an individual user ID analysis. Totals for a systemwide analysis are still accumulated if <var>NOUSERID</var> is specified.</td>
</tr>
</tr>
   
   
<tr>
<tr>
<td>USERIDS </td>
<td><var>USERIDS</var> </td>
<td>User(s) for which analysis is requested.
<td>User(s) for which analysis is requested.
<p>
<p>
The <var>USERIDS</var> keyword is required in addition to the <var>USERID</var> keyword. If neither <code>USERID</code> nor <code>NOUSERID</code> has been specified, specifying <code>USERIDS</code> sets the <var>USERID</var> parameter.</p>
The <var>USERIDS</var> keyword is required in addition to the <var>USERID</var> keyword. If neither <var>USERID</var> nor <var>NOUSERID</var> has been specified, specifying <var>USERIDS</var> sets the <var>USERID</var> parameter.</p>
<p>
<p>
Reports are produced only for the specified users and only the since-last evaluation lines for those users who are included in the systemwide report. </p>
Reports are produced only for the specified users and only the since-last evaluation lines for those users who are included in the systemwide report. </p>
<p>
<p>
AUDIT204 uses the values specified in the <var>USERID</var> parameter as a pattern and finds ALL values that match. For example, <code>USERIDS NANCY KATHY</code> is equivalent to <code>REPORT USERID USERIDS NANCY* KATHY*</code>.</p></td></tr>
AUDIT204 uses the values specified in the <var>USERID</var> parameter as a pattern and finds all values that match. For example, <code>USERIDS NANCY KATHY</code> is equivalent to <code>REPORT USERID USERIDS NANCY* KATHY*</code>.</p></td></tr>
</table>
</table>
 
====Usage note====
<p>
The ANALYZE command for AUDIT204 can process only a single journal, CCAJRNL. You cannot use the ANALYZE command against the CCAJLOG file.</p>
===FORMAT command===
===FORMAT command===
<p>
<p>
FORMAT prints an audit trail from the journal. </p>
<var>FORMAT</var> prints an audit trail (CCAAUDIT) from CCAJRNL or CCAJLOG. </p>
   
   
====Syntax====
====Syntax====
<p class="syntax">FORMAT TIME {<span class="term">yydddhhmmss/yydddhhmmss</span> |
<p class="syntax">FORMAT TIME {<span class="term">yydddhhmmss/yydddhhmmss</span> | <span class="term">cyydddhhmmss/cyydddhhmmss</span>}
            <span class="term">cyydddhhmmss/cyydddhhmmss</span>}
      TIMEHH
       TYPE <span class="term">type1</span>
       TYPE <span class="term">type1</span>
       USER <span class="term">usernum</span>
       USER <span class="term">usernum</span>
Line 1,166: Line 1,294:
Where:
Where:
<p>
<p>
You use the following parameters with the FORMAT command:</p>
You use the following parameters with the <var>FORMAT</var> command:</p>
<table>
<table>
<tr class="head">
<tr class="head">
Line 1,174: Line 1,302:
   
   
<tr>
<tr>
<td>TIME </td>
<td><var>TIME</var> </td>
<td>Time range to print. The format of the time specification corresponds to the time stamp printed with each audit trail line.
<td>Time range to print. The format of the time specification corresponds to the time stamp printed with each audit trail line.
<p>
<p>
Line 1,181: Line 1,309:
If both specified times are before and after the period covered by the journal, nothing is printed.</p>
If both specified times are before and after the period covered by the journal, nothing is printed.</p>
<ul>
<ul>
<li><var class="term">yyddd</var> or <var class="term">cyyddd</var> is the year and Julian date.</li>
<li><var class="term">yyddd</var> is the year and Julian date; <var class="term">cyyddd</var> is the century, year and Julian date (0=20th century, 1=21st century).</li>


<li><var class="term">hhmmss</var> is time based on a 24-hour clock. </li>
<li><var class="term">hhmmss</var> is time based on a 24-hour clock. </li>
</ul></td></tr>
</ul>
   
<p><b>NOTE:</b> TIME may be specified with no time range or with a time range in the form noted above.  No time range selects the entire journal/jlog for printing.</p>
</td></tr>
 
<tr>
<td><var>TIMEHH</var> </td>
<td>Indicates that timestamps, printed at the beginning of each line of output, should include hundredths of a second.  Requires no other arguments. 
<p><b>NOTE:</b> This parameter and the 78 version of AUDIT204 may be used against a 77 or 78 CCAJRNL or CCAJLOG.</p>
<p><b>NOTE:</b> TIMEHH may be specified with no time range or with a time range in the form noted above. No time range selects the entire journal/jlog for printing.</p> 
</td>
</tr>
 
<tr>
<tr>
<td>TYPE </td>
<td><var>TYPE</var> </td>
<td>Type of lines to print, such as AD or MS (see the [[#Example|"Types of audit trail lines" table]]).</td>
<td>Type of lines to print, such as AD or MS (see the [[#Example|"Types of audit trail lines" table]]).</td>
</tr>
</tr>
   
   
<tr>
<tr>
<td>USER </td>
<td><var>USER</var> </td>
<td>User for whom the printed audit trail lines are generated. Specify user numbers with or without leading zeros. </td>
<td>User for whom the printed audit trail lines are generated. Specify user numbers with or without leading zeros. </td>
</tr>
</tr>
   
   
<tr>
<tr>
<td>USERID </td>
<td><var>USERID</var> </td>
<td>One- to ten-character name that identifies the <var class="product">Model&nbsp;204</var> user about whom the printed audit trail lines are generated.</td>
<td>One- to ten-character name that identifies the <var class="product">Model&nbsp;204</var> user about whom the printed audit trail lines are generated.</td>
</tr>
</tr>
   
   
<tr>
<tr>
<td>YEARFORM</td>
<td><var>YEARFORM</var></td>
<td>Two- or four-digit year output. The default is 2.</td>
<td>Two- or four-digit year output. The default is 2.</td>
</tr>
</tr>
</table>
</table>
 
====Example====
====Example====
<p>
<p>
The options specified in the following example restrict the printing of the audit trail to MS (message) lines for <code>USER 01</code> created on September 22, 1998 between 10:41 A.M. and 10:45 A.M.:</p>
The options specified in the following example restrict the printing of the audit trail to <code>MS</code> (message) lines for <code>USER 01</code> created on September 22, 1998 between 10:41 A.M. and 10:45 A.M.:</p>
<p class="code">FORMAT TYPE MS, ER
<p class="code">FORMAT TYPE MS, ER
TIME 98265104100/98265104500
TIME 98265104100/98265104500
Line 1,217: Line 1,355:
====Usage====
====Usage====
<p>
<p>
The FORMAT command can be used against a CCAJRNL file or a CCAJLOG file. Examine the code examples that begin in [[#Samples of a z/OS job stream|Samples of a z/OS job stream]]. </p>
The <var>FORMAT</var> command can be used against a CCAJRNL or CCAJLOG data set. Examine the code examples that begin in [[#Samples of a z/OS job stream|Samples of a z/OS job stream]]. </p>
 
===REPORT command===
===REPORT command===
<p>
<p>
The REPORT command prints user and file statistics in a tabular format and computes costs by account or by file for billing purposes. AUDIT204 reports have a two-line header, as shown in the following example, that reflect the circumstances of your site.    </p>
The <var>REPORT</var> command prints user and file statistics in a tabular format and computes costs by account or by file for billing purposes. AUDIT204 reports have a two-line header, as shown in the following example, that reflect the circumstances of your site.    </p>
<p class="code">AUDIT204 UTILITY - VERSION 7.10a,
<p class="code">AUDIT204 UTILITY - VERSION 7.6.0D
DATE/TIME OF RUN: 10/22/208 11:31:38
DATE/TIME OF RUN: 10/11/2016 12:25:50
</p>
</p>
   
   
Line 1,240: Line 1,378:
   
   
<tr>
<tr>
<td>ACCOUNT </td>
<td><var>ACCOUNT</var> </td>
<td>User statistics lines for specific accounts </td>
<td>User statistics for all accounts </td>
</tr>
</tr>
<tr>
<td><var>ACCOUNTS</var> <i>account1 account2</i> ...</td>
<td>User statistics for specified accounts</td>
</tr>
   
   
<tr>
<tr>
<td>FILE </td>
<td><var>USERID</var> </td>
<td>File statistics</td>
<td>User statistics for all users</td>
</tr>
</tr>
 
<tr>
<tr>
<td>USERID </td>
<td><var>USERID USERIDS <i>user1 user2</i> ...</var> </td>
<td>User statistics lines</td>
<td>User statistics for users listed</td>
</tr>
</tr>
</table></li>


<li><var class="term">parameters</var> is one or  more of  
 
the following, which can be used with USERID, ACCOUNT, or FILE:
 
<table>
<tr>
<tr class="head">
<td><var>FILE</var> </td>
<td>File statistics for all files</td>
</tr>
 
<tr>
<td><var>FILE FILES <i>fname1 fname2</i> ...</var> </td>
<td>File statistics for files listed</td>
</tr>
 
</table></li>
 
<li><var class="term">parameters</var> is one or  more of  
the following, which can be used with <var>USERID</var>, <var>ACCOUNT</var>, or <var>FILE</var>:
<table>
<tr class="head">
<th>Parameter </th>
<th>Parameter </th>
<th>Specifies...</th>
<th>Specifies...</th>
Line 1,264: Line 1,420:
   
   
<tr>
<tr>
<td>IND (the default)
<td><var>IND</var> (the default)
<br>or NOIND </td>
<br>or <var>NOIND</var> </td>
<td>Printing or not printing individual lines. Totals are still accumulated if NOIND is specified.</td>
<td>Printing or not printing individual lines. Totals are still accumulated if <var>NOIND</var> is specified.</td>
</tr>
</tr>
   
   
<tr>
<tr>
<td>OMIT </td>
<td><var>OMIT</var> </td>
<td>Statistic(s) to omit from the report. You must enter the actual name of the statistic, not what appears in a column header in a report. See [[#Description of statistics|Description of statistics]] for an alphabetical listing of statistics.</td>
<td>Statistic(s) to omit from the report. You must enter the actual name of the statistic, not what appears in a column header in a report. Only file statistics are valid for FILE reports and only since-last and logout stats are valid for USERID reports.  See [[Using system statistics#Description of statistics|Description of statistics]] for an alphabetical listing of statistics.</td>
</tr>
</tr>
   
   
<tr>
<tr>
<td>PARTIAL
<td><var>PARTIAL</var>
<br>or NOPARTIAL </td>
<br>or <var>NOPARTIAL</var> </td>
<td>Generation of partial or complete statistics lines. Use:
<td>Generation of partial or complete statistics lines. Use:
<ul>
<ul>
<li>PARTIAL when a report is generated from a journal that did not terminate successfully.</li>
<li><var>PARTIAL</var> when a report is generated from a journal that did not terminate successfully.</li>


<li>NOPARTIAL to avoid processing overhead, when a complete journal is available.</li>
<li><var>NOPARTIAL</var> to avoid processing overhead, when a complete journal is available.</li>
</ul>
</ul>
</td></tr>
</td></tr>
   
   
<tr>
<tr>
<td>PRICE </td>
<td><var>PRICE</var> </td>
<td>Dollar charge up to five decimal places to any statistic. Decimal point, and leading and trailing zeros are optional. For example:
<td>Dollar charge up to five decimal places to any statistic. Decimal point, and leading and trailing zeros are optional. For example:
<p class="code">PRICE CPU=0.05 DKRD=.03 DKWR=.035</p>
<p class="code">PRICE CPU=0.05 DKRD=.03 DKWR=.035</p>
Line 1,292: Line 1,448:
   
   
<tr>
<tr>
<td>RENAME </td>
<td><var>RENAME</var> </td>
<td>Column heading names up to nine characters without truncation. The new name completely replaces the old name and must be used if name is specified on other parameters.</td>
<td>Column heading names up to nine characters without truncation. The new name completely replaces the old name and must be used if name is specified on other parameters.</td></tr>
</tr>
   
   
<tr>
<tr>
<td>TIME </td>
<td><var>TIME</var> </td>
<td>Time range for statistics line reporting. One of the following formats is required:
<td>Time range for statistics line reporting. One of the following formats is required:
<ul>
<ul>
Line 1,306: Line 1,461:
</td></tr>
</td></tr>
   
   
<tr><td nowrap>TOTAL (the default)
<tr><td nowrap><var>TOTAL</var> (the default)
<br>or NOTOTAL </td>
<br>or <var>NOTOTAL</var> </td>
<td>Totalling or suppression of totalling for individual statistics and costs. </td>
<td>Totalling or suppression of totalling for individual statistics and costs. </td>
</tr>
</tr>
</table></li>
</table></li>
</ul>
</ul>
 
====Example====
====Example====
<p>
<p>
Totals are printed after individual statistics lines if both IND and TOTAL are in effect. Each line must contain only one parameter, as in the following examples:</p>
Totals are printed after individual statistics lines if both <var>IND</var> and <var>TOTAL</var> are in effect. Each line must contain only one parameter, as in the following examples:</p>
<p class="code">REPORT USERID NOIND
<p class="code">REPORT USERID NOIND
               PARTIAL
               PARTIAL
               TIME yydddhhmmss/yydddhhmmss
               TIME <i>yydddhhmmss/yydddhhmmss</i>
               RENAME name=newname
               RENAME <i>name=newname</i>
               NOTOTAL
               NOTOTAL
               USERIDS account
               USERIDS <i>account</i>
   
   
REPORT FILE FILES filename
REPORT FILE FILES <i>fname1 fname2 fname3 ...</i>
       OMIT statistic
       OMIT <i>statistic</i>
       PRICE statistic=xx.xx
       PRICE <i>statistic=xx.xx</i>
</p>
</p>
<p>
<p>
The subkeywords ACCOUNTS, FILES, and USERIDS can be used with REPORT subcommands ACCOUNT, FILE, and USERID as in the following examples:</p>
The subkeywords <var>ACCOUNTS</var>, <var>FILES</var>, and <var>USERIDS</var> can be used with <var>REPORT</var> subcommands <var>ACCOUNT</var>, <var>FILE</var>, and <var>USERID</var> as in the following examples:</p>
<p class="code">REPORT USERID USERIDS JAMES STEVE SANDRA
<p class="code">REPORT USERID USERIDS JAMES STEVE SANDRA
       ACCOUNT ACCOUNTS JAMES STEVE SANDRA
       ACCOUNT ACCOUNTS JAMES STEVE SANDRA
       FILE FILES CLIENTS VEHICLES DAILY
       FILE FILES CLIENTS VEHICLES DAILY
</p>
</p>
<p class="note"><b>Note:</b> The REPORT command for AUDIT204 can process only a single journal: CCAJRNL. You cannot use against a CCAJOG file.</p>
<p class="note"><b>Note:</b> The <var>REPORT</var> command for AUDIT204 can process only a single journal: CCAJRNL. You cannot use against a CCAJOG file.</p>
 
==Using the AUDIT204 utility==
==Using the AUDIT204 utility==
   
   
Line 1,342: Line 1,497:
<p>
<p>
CCAJRNL is the input data set provided to roll forward recovery (ddname=CCARF), media recovery (ddname= CCAGEN), and UTILJ (ddname=CCAJRNL).</p>
CCAJRNL is the input data set provided to roll forward recovery (ddname=CCARF), media recovery (ddname= CCAGEN), and UTILJ (ddname=CCAJRNL).</p>
<p style="margin-left:2em">
 
[[File:SM13ccaprint3_sep.gif|border]] </p>
<p class="caption" style="width:457px">Utilities using CCAJLOG and CCAJRNL data sets as input</p>
<p class="caption" style="margin-right:18em">Utilities using CCAJLOG and CCAJRNL data sets as input</p>
<p class="figure">[[File:SM13ccaprint3_sep.gif|457px]] </p>
 
===Journal stream configurations===
===Journal stream configurations===
<p>
<p>
Line 1,391: Line 1,546:
===Samples of a z/OS job stream===
===Samples of a z/OS job stream===
<p>
<p>
The following sample job streams run AUDIT204, These examples differ in the use of the journal processed, CCAJRNL or CCAJLOG, and the presence or absence of AUDIT204 commands: ANALYZE, FORMAT, and REPORT.</p>
The following sample job streams run AUDIT204, These examples differ in the use of the journal processed, CCAJRNL or CCAJLOG, and the presence or absence of AUDIT204 commands: <var>ANALYZE</var>, <var>FORMAT</var>, and <var>REPORT</var>.</p>
   
   
====Where only CCAJRNL is defined, all AUDIT204 commands are valid====
====Where only CCAJRNL is defined, all AUDIT204 commands are valid====
Line 1,469: Line 1,624:
<li>Running AUDIT204 might require two sorts:
<li>Running AUDIT204 might require two sorts:
<ul>
<ul>
<li>REPORT command requires a SORTIN and a SORTOUT data set.</li>
<li><var>REPORT</var> command requires a SORTIN and a SORTOUT data set.</li>


<li>ANALYZE command requires a STATIN and a STATOUT data set. </li>
<li><var>ANALYZE</var> command requires a STATIN and a STATOUT data set. </li>
</ul></li>
</ul></li>


Line 1,478: Line 1,633:
<li>SORTWK1 data set is required.</li>
<li>SORTWK1 data set is required.</li>


<li>Statistics work (STATWK1) data set might be needed when using the ANALYZE command, depending on the amount of data generated. </li>
<li>Statistics work (STATWK1) data set might be needed when using the <var>ANALYZE</var> command, depending on the amount of data generated. </li>
</ul>
</ul>
   
   
Line 1,486: Line 1,641:
<p class="code">// JOB AUDIT204
<p class="code">// JOB AUDIT204
// DLBL M204LIB,'M204.PROD.LIBRARY'
// DLBL M204LIB,'M204.PROD.LIBRARY'
// EXTENT SYSnnn,...
// EXTENT SYS<i>nnn</i>,...
// LIBDEF PHASE.SEARCH=M204LIB.V210
// LIBDEF PHASE.SEARCH=M204LIB.V210
// DLBL CCAJRNL,'CCAJRNL' Note 1
// DLBL CCAJRNL,'CCAJRNL' Note 1
// EXTENT SYSnnn,...
// EXTENT SYS<i>nnn</i>,...
// DLBL SORTIN,'AUDIT204.SORTIN',0 Note 2
// DLBL SORTIN,'AUDIT204.SORTIN',0 Note 2
// EXTENT SYSnnn,...
// EXTENT SYS<i>nnn</i>,...
// DLBL SORTOUT,'AUDIT204.SORTOUT',0 Note 2
// DLBL SORTOUT,'AUDIT204.SORTOUT',0 Note 2
// EXTENT SYSnnn,...
// EXTENT SYS<i>nnn</i>,...
// DLBL STATIN,'AUDIT204.STATIN',0 Note 3
// DLBL STATIN,'AUDIT204.STATIN',0 Note 3
// EXTENT SYSnnn,...
// EXTENT SYS<i>nnn</i>,...
// DLBL STATOUT,'AUDIT204.STATOUT',0 Note 3
// DLBL STATOUT,'AUDIT204.STATOUT',0 Note 3
// EXTENT SYSnnn,...
// EXTENT SYS<i>nnn</i>,...
// DLBL SORTWK1,'SORTWK1',0 Note 4
// DLBL SORTWK1,'SORTWK1',0 Note 4
// EXTENT SYSnnn,...
// EXTENT SYS<i>nnn</i>,...
   
   
// EXEC AUDIT204,SIZE=(AUTO,xxK) Note 5
// EXEC AUDIT204,SIZE=(AUTO,<i>xx</i>K) Note 5
INCLUDE IFYLSQRT
INCLUDE IFYLSQRT
<b></b>* Insert AUDIT204 CCAIN commands here
<b></b>* <i>Insert AUDIT204 CCAIN commands here</i>
FORMAT
FORMAT
REPORT ACCOUNT
REPORT ACCOUNT
Line 1,516: Line 1,671:
<li>If you use tape instead of the DLBL and EXTENT for CCAJRNL, use the following JCL:
<li>If you use tape instead of the DLBL and EXTENT for CCAJRNL, use the following JCL:
<p class="code">// TLBL CCAJRNL
<p class="code">// TLBL CCAJRNL
// ASSGN SYS004,X'cuu'
// ASSGN SYS004,X'<i>cuu</i>'
</p></li>
</p></li>


<li>DLBL and EXTENT are necessary if you use either the REPORT or the ANALYZE command.</li>
<li>DLBL and EXTENT are necessary if you use either the <var>REPORT</var> or the <var>ANALYZE</var> command.</li>


<li>You must specify a SIZE parameter in the EXEC statement with AUTO and you need some additional storage for the sort program. To determine the amount of additional storage needed for the sort program, refer to IBM's SORT/MERGE Programmer's Guide.</li>
<li>You must specify a SIZE parameter in the EXEC statement with AUTO and you need some additional storage for the sort program. To determine the amount of additional storage needed for the sort program, refer to IBM's <var class="book">SORT/MERGE Programmer's Guide</var>.</li>
</ul>
</ul>
   
   
Line 1,555: Line 1,710:
</div> <!-- end of div for toc limit -->
</div> <!-- end of div for toc limit -->
   
   
[[Category:System Manager]]
[[Category:System management]]
[[Category:Auditing and problem determination]]
===AUDIT204 Return Codes===
<p>The following return codes may be issued by AUDIT204 upon completion.</p>
<table>
<tr class="head">
<th>Return Code</th>
<th>Meaning</th>
</tr>
<tr>
<td>0</td>
<td>Normal completion</td>
</tr>
 
<tr>
<td>8</td>
<td>I/O error reading CCAJRNL or CCAJLOG
<p>Out of sequence journal block</p>
<p>Zero length journal block or journal record</p>
</td>
</tr>
 
<tr>
<td>12</td>
<td>Invalid parameter - various errors with CCAIN input parameters</td>
</tr>
 
<tr>
<td>16</td>
<td>CCAAUDIT open failed</td>
</tr>
 
<tr>
<td>20</td>
<td>CCAJRNL or CCAJLOG open failed</td>
</tr>
 
<tr>
<td>24</td>
<td>SORTIN open failed</td>
</tr>
 
<tr>
<td>28</td>
<td>STATIN open failed</td>
</tr>
 
<tr>
<td>32</td>
<td>CCAIN open failed</td>
</tr>
 
<tr>
<td>36</td>
<td>Operating system does not support Z-architecture</td>
</tr>

Latest revision as of 17:08, 2 October 2024

Overview of the journal data sets

This topic discusses the journal data sets you can create and use in Model 204, how to manage them, and the utilities you can use to report on and analyze the Model 204 information collected. The system manager can set up the following journal data sets, which are not part of Model 204 installation.

The data sets are CCAJRNL, CCAAUDIT, and CCAJLOG. You set each up as:

  • A ddname in z/OS
  • A FILEDEF in z/VM
  • A DLBL in z/VSE

CCAJRNL

The complete repository of Model 204 system activity and data that would be used in recovery is CCAJRNL. The CCAJRNL file collects all update information used to reconstruct the database during recovery and all other activity history, such as messages and statistics, in an unformatted, therefore unreadable, binary format.

CCAAUDIT and CCAJLOG

You can also create a CCAAUDIT and/or a CCAJLOG file to track information. CCAAUDIT and CCAJLOG are comprised of the same Model 204 audit trail data, however, differently. The activity history or audit trail is comprised of:

  • Important characteristics of a run
  • All error messages encountered during a run
  • All communications with the operator's console
  • Input lines from Online terminals
  • HLI calls
  • Utilization statistics
  • Information specifically directed to the journal/audit trail by users

Watching your system in action: CCAAUDIT

The CCAAUDIT file, also known as the audit trail, logs information about a Model 204 run and prints the information in readable format for the terminal screen while processes are running or to paper.

Improving recovery performance: CCAJLOG

The CCAJLOG file off loads the audit trail information into itself, so that the CCAJRNL contains only the information required for RESTART recovery. Recovery performance is improved, because the audit trail information does not have to be read and rejected for recovery.

Version-specific journals

Journals created by Model 204 prior to V7R1.0 cannot by processed in V7R1.0. The reverse is also true: journals created in V7R1.0 cannot be processed by an earlier version of Model 204.

Using Model 204 journal files

Model 204 system managers and file managers use the journal files in some of the following ways:

Task Journal used Utility/command used
Generate an audit trail that can be viewed during processing CCAAUDIT  
Generate an audit trail for printing out later CCAJRNL, CCAJLOG Audit204 utility
Regenerate a file to complete media recovery CCAJRNL
(ddname CCAGEN)
REGENERATE command
Recover Model 204 following a system failure CCAJRNL
(ddname CCARF)
RESTART command
Extract a report CCAJRNL UTILJ utility
Performance tuning by analyzing statistics CCAJRNL Audit204 utility or site written analysis program

The Model 204 system manager is expected to create the CCAJRNL file at their site for recovery purposes. The Model 204 file manager may be responsible for using the CCAJRNL file to regenerate data files.

Creating and generating CCAJRNL

A journal is generated if:

  • The SYSOPT parameter includes the 128 specification.

    You must set BLKSIZE for CCAJRNL to not less than 6749 on up to 32K. Buffers are written to CCAJRNL either when a transaction is committed or when the buffer fills. Frequent commits may result in many short blocks/buffers being written to CCAJRNL.

  • A CCAJRNL is defined with BLKSIZE set to the minimum, 6749, for:
    • z/OS, a DD statement
    • z/VM, a FILEDEF

Statistics generated in an audit trail line are presented in User statistics entries (Type 9).

The use of CCAJRNL in recovery procedures is explained in Recovery data sets and job control.

How to use CCAJRNL to regenerate a data set is discussed in Media recovery.

CCAJRNL may take multiple extents and may span multiple volumes, since it is read forward-only. Its size cannot be limited in a way similar to the CHKPOINT data set (see Limiting the size of CHKPOINT), because CCAJRNL records all update activity in an Online, which may be required in a subsequent REGENERATE or RESTART process.

CCAJRNL as single data set or stream

You can define CCAJRNL as a single data set or as a stream. Using a DEFINE STREAM command, you incorporate multiple journal data sets.

SWITCH STREAM command

The SWITCH STREAM command switches a stream to the next member of a parallel, ring, concatenated, or Generation Data Group (GDG) stream. You can issue the SWITCH STREAM command for the following streams: CCAJLOG, CCAJRNL, CHKPOINT, or CHKPNTS.

Using the SWITCH STREAM command

When the SWITCH STREAM command is issued, the following messages are produced:

M204.2712: STREAM streamname IS BEING SWITCHED M204.2712: STREAM streamname SWITCHED VIA COMMAND

  • When switching a journal stream, CCAJRNL or CCAJLOG, the currently active data set in that stream is closed. The next data set defined to the stream is opened when the next write to that stream is required.
  • When switching a checkpoint stream, CHKPOINT or CHKPNTS, the currently active data set in that stream is closed after the next record is written to that data set.

If not in an extended quiesce, Rocket Software recommends that you follow a SWITCH STREAM CCAJRNL command with a CHECKPOINT command to ensure that you have a checkpoint in the current journal.

The SWITCH STREAM command is sometimes useful for CCAJLOG and rarely required for CHKPOINT or CHKPNTS.

Journal block header information for SWITCH STREAM

Some journal analysis utilities require additional journal information at sites that embrace GDG streams and the SWITCH STREAM command as a means to keep their Onlines up for long periods. Model 204 includes this additional information in the header for each journal block.

To ensure that the required information is present in the first block of each journal data set created by the SWITCH STREAM command, the header has been expanded. This expansion makes the journal up to 4% larger than in previous releases.

Note: Due to these changes in journal record layouts, CCAJRNL and CHKPOINT/CHKPNT data sets are not compatible with previous releases of Model 204.

For the complete description of the header entry formats in the journal block, see Header entries (Type 0).

In pre-7.4.0 versions of Rocket Model 204, each Online environment might produce a single merged journal daily. If an Online was bounced during the day, then the various journals for the day were merged into a single daily journal. Usually the daily merged journal contained records from only one run. The single merged journal could be used to automate media recovery, rather than manually assemble the recovery job journal concatenation.

Using the SWITCH STREAM command, a site can still prepare a daily merged journal. However, when the SWITCH STREAM command is used, each journal merged does not begin with the initialization of the Online. This means that no Type 12 records or M204.0061 initialization messages are included. Although Model 204 recovery, including media recovery, can successfully process these merged journals, various journal analysis utilities cannot.

Using a SWITCH STREAM CCAJRNL command during extended quiesce

In pre-7.1.0 releases, if you used the checkpoint quiesce feature, a switch to the next journal member at checkpoint quiesce could occur only when CCAJRNL was defined as a ring stream.

However, a switch at checkpoint quiesce may be desirable for all stream configurations of CCAJRNL: ring, parallel, concatenated, and GDG. The switch marks the point where the CCAJRNL data collected thus far is not needed in subsequent REGENERATE processing against files backed up during the quiesce. If file backups or dumps are taken during the checkpoint quiesce, only CCAJRNL data collected after checkpoint quiesce is useful for REGENERATE processing against those files.

A checkpoint is automatically taken if you issue a SWITCH STREAM CCAJRNL command while you are in extended quiesce, as shown in the following table:

SWITCH command within extended quiesce
Step Command issued Purpose
1 CHECKPOINT SET EXTENDED QUIESCE Enables extended quiesce
2 CHECKPOINT or automated checkpoint

The next checkpoint, automated or command initiated, begins the extended quiesce

When the checkpoint is successful, the extended quiesce is entered. While in extended quiesce, you cannot issue a CHECKPOINT command. However, you can issue a SWITCH STREAM command, such as the following:

3 SWITCH STREAM CCAJRNL When the checkpoint is successful, extended quiesce processing can begin for backups, SnapShots, or any activity that does not involve updating.
4 CHECKPOINT END EXTENDED QUIESCE Concludes extended quiesce. Should recovery be required due to a failure during extended quiesce, journals created prior to the SWITCH STREAM command will not be required, as the last checkpoint resides in the current CCAJRNL member.

This automated checkpoint functionality of SWITCH STREAM CCAJRNL applies only during checkpoint quiesce. The automated checkpoint functionality is not supported for CCAJLOG, CHKPOINT, or CHKPNTS.

SWITCH STREAM limitations

In order for a stream to be switched, there must be a target data set to switch to. If there is no target data set, the following message is issued:

M204.2712: MEMBER membername IS INELIGIBLE FOR SWITCHING

Consider the following example:

DEFINE STREAM CCAJRNL WITH SCOPE=SYSTEM PARALLEL=(JRNL1,JRNL2) MINAVAIL=2 DEFINE DATASET JRNL1 WITH SCOPE=SYSTEM DSN=CCAJRNL.JRNL1 OLD DEFINE STREAM JRNL2 WITH SCOPE=SYSTEM GDG=J2 CONTROL=J2CTL DEFINE DATASET J2 WITH SCOPE=SYSTME DSN=CCAJRNL.GDGBASE.JRNL2 CATALOG - GEN=+1 CYL PRI 500 DEFINE DATASET J2CTL WITH SCOPE=SYSTEM DSN=CCAJRNL.GDGBASE.JRNL2.CTL OLD

Since data set JRNL1 has no target data set for a switch, when the JRNL1 data set is marked full, the number of available parallel stream members (MINAVAIL) drops to one, since only JRNL2 now has space available. Since the number of available members is now less than MINAVAIL, the Online would stop with a "CCAJRNL full" message.

If before JRNL1 fills, a SWITCH STREAM CCAJRNL command were issued, the following messages would be produced:

M204.2712: MEMBER JRNL1 IS INELIGIBLE FOR SWITCHING M204.2712: STREAM JRNL2 IS BEING SWITCHED M204.2712: STREAM CCAJRNL - NOT ALL MEMBERS SWITCHED

Member JRNL1 was not switched. However, if JRNL1 has not filled, the parallel stream will remain open because the number of available members (MINAVAIL) is still 2. Stream JRNL2 always has a target data set to switch to since it is a GDG. Nevertheless, whenever JRNL1 fills, the minimum available members will be less than MINAVAIL, the stream will be closed, and the run will terminate.

Because stream members are not locked before switch processing, and because all members are not switched at exactly the same time, the number of records in individual data sets of a parallel stream may not be identical. This is of no consequence to recovery or REGENERATE, but should be noted. However, the total number of records in each member is identical.

Previously, you had to concatenate all journals into one data set or specify a concatenated CCAGEN DD statement.

SWITCH STREAM command for concatenated streams

The same limitation exists for the last member in a concatenated stream. Since there is no additional member to switch to, the following message is issued:

M204.2712: STREAM streamname IS INELIGIBLE FOR SWITCHING

If all members of a stream are switched, the following message is issued:

M204.2712: STREAM CCAJRNL SWITCHED VIA COMMAND

Handling streams without records

You cannot switch a stream member that contains no records. So in the previous case, if the first G1 stream member has just become full and the newly opened (second) GDG member contains zero records, then a SWITCH STREAM CCAJRNL command is not processed.

Since J1 is ineligible, and G1 (second member) is empty, no switch occurs. The messages issued are:

M204.2712: MEMBER J1 IS INELIGIBLE FOR SWITCHING M204.2712: MEMBER G1 IS EMPTY AND CANNOT BE SWITCHED M204.2712: SWITCH WAS UNSUCCESSFUL

Recovery parameters

Use the following recovery parameters when generating a journal:

Parameter Set Specifies... Comments
FRCVOPT During file creation or with the RESET command File recovery options If the file is included in system or media recovery, do not use FRCVOPT=X'04', which suppresses roll forward logging.
RCVOPT On the JCL EXEC parameter or on User 0's parameter line Type of information written to the journal

X'08' writes the roll forward information that is required for system and media recovery to CCAJRNL.

X'09' also causes preimages to be written to the CHKPOINT data set for roll back recovery. Use this setting if you want to enable full recovery.

Writing error messages to the journal data set

You can control which error messages or classes of error messages to store in CCAJRNL, CCAAUDIT, or CCAJLOG using MSGCTL command parameters.

ERRMSGL: Setting the length of saved error messages

The ERRMSGL parameter provides the ability to set the number of bytes to use for saved error messages — messages returned by $Errmsg and $Fsterr. You can set ERRMSGL to any value from 80 to 256 — that length includes a count byte. The value is rounded up to an 8-byte multiple. For example, if you set ERRMSGL=99, it will be rounded to 104, that value is reduced by 1 for the count byte, thus allowing up to 103 characters of an error message to be saved.

Server size requirements for saved error messages

Increasing ERRMSGL increases the requirement of the fixed table size of a server. This may necessitate an increase in you SERVSIZE settings. The size requirement for ERRMSGL is:

3 * (ERRMSGL - 80)

For example, increasing ERRMSGL to its maximum of 256 would increase the fixed server requirement by (3 * (256-80) -1), or 527 bytes.

For a full update to the SERVSIZE formula, see Calculating fixed table size.

Using the CCAJRNL data set

During a production Online run, roll forward recovery information is written to the CCAJRNL data set. Additionally, a substantial amount of unformatted audit trail data is also written. When recovery is required and after roll back recovery has completed, that data set (during recovery its ddname is CCARF) is read and the roll forward information is extracted and used to reapply all committed updates up to the time of the system failure.

CCAJRNL collecting all roll forward and audit information

Performance efficiencies using CCAJRNL

Choosing whether to define CCAAUDIT

Model 204 operates more efficiently using CCAJRNL without CCAAUDIT, because it is not also generating a separate audit trail. If you need printed information and your site does not maintain CCAAUDIT, you can extract the audit trail from CCAJRNL in a separate step using AUDIT204.

If you need printed run information immediately upon completion of the job and you also need Roll Forward or Accounting facilities, create both the journal (CCAJRNL) and the audit trail (CCAAUDIT).

You can use CCAJRNL in place of CCAAUDIT when you do not need audit trail data immediately following run termination.

Allocating multiple journal buffers

Setting NJBUFF to a value (NSERVS + NSUBTKS + 1) allocates multiple journal buffers and ensures that a free buffer is always available for the journal. In z/VM, the NJBUFF parameter is stacked in the EXEC that issues all the FILEDEFs.

Using the CCAJLOG data set

If you allocate CCAJLOG, the unformatted audit trail data is written to it and only roll forward recovery data is written to CCAJRNL. Reducing the number of records written to CCAJRNL improves recovery performance and also reduces the likelihood of filling CCAJRNL, which would result in run termination.

  • The number of buffers allocated for CCAJLOG is determined by the parameter, NLBUFF, which defaults to five. Only full blocks/buffers are written to CCAJLOG.
  • The size of these buffers is determined by the BLKSIZE parameter defined for the CCAJLOG data set which may be as large as 32K.

You can produce a formatted CCAAUDIT report from CCAJLOG using the AUDIT204 utility. In this case, the CCAJLOG is referenced via the ddname CCAJRNL.

CCAJRNL collecting roll forward data;
CCAJLOG collecting audit trail data

Defining the CCAJLOG stream

You can define a CCAJLOG using any of the stream definitions: concatenate, parallel, ring, or GDG; see DEFINE STREAM command.

M204JLOG assembler exit

The assembler exit, M204JLOG, can be invoked if linked in. This exit is initiated when a SWITCH command is issued against a CCAJLOG GDG stream. The exit may be any AMODE and need not be reentrant.

Coding considerations

On entry, the registers contain:

R4 = A(GDG LIOD)
R9 = A(new switch control record) (see CRD dsect)
R13 = A(OSW save area)
R14 = return address
R15 = base address

Model 204 expects no output from the exit. All registers must be restored before return. If any Model 204 data structures are modified by the exit, unpredictable results may occur.

Note: If the user exit abends, Model 204 issues an error and produces a snap. This leaves Model 204 waiting for the switch to complete. At that point the switch will never complete, no further Online activity is possible, and the Online must be cancelled.

In addition, while the M204JLOG user exit is running, Model 204 cannot continue normal processing until a return from the exit is accomplished. For this reason, WAITs and I/Os inside the exit are strongly discouraged.

Sample M204JLOG Assembler exit

M204JLOG CSECT M204JLOG AMODE 31 M204JLOG TITLE 'TEST THE MODEL 204 CCAJLOG USER EXIT' X10 EQU 10 X11 EQU 11 X12 EQU 12 X13 EQU 13 X14 EQU 14 X15 EQU 15 STM X14,X12,12(X13) SAVE CALLERS REGISTERS LR X12,X15 ESTABLISH BASE REGISTER USING M204JLOG,X12 LA X10,SAVEAREA GET A(LOCAL REGISTER SAVEAREA) ST X10,8(,X13) CHAIN OUR SAVEAREA TO CALLERS ST X13,SAVEAREA+4 CHAIN CALLERS SAVEAREA TO OURS LA X13,SAVEAREA SET A(OUR SAVEAREA) WTO 'M204JLOG EXIT INVOKED, DOING SOMETHING' * ******************************************************************* * * * CUSTOMERS MAY PLACE CODE HERE TO DO WHATEVER THEY DESIRE. * * * ******************************************************************* * WTO 'M204JLOG EXIT ENDING' L X13,4(,X13) RESTORE CALLERS SAVEAREA ADDRESS ST X10,16(X13) SET RETURN CODE (R15) LM X14,X12,12(X13) RESTORE CALLERS REGISTERS BR X14 RETURN TO CALLER DS 0D SAVEAREA DS 18F REGISTER SAVE AREA LTORG END

Model 204 roll forward recovery with CCAJLOG

Model 204 operates more efficiently during roll forward recovery, if you have defined CCAJLOG. This is because CCAJRNL now contains only roll forward recovery data; CCAJLOG contains unformatted CCAAUDIT data, which does not have to be read and ignored during the roll forward recovery since it has been removed from CCAJRNL.

Separating transaction (CCAJRNL) and auditing (CCAJLOG) information

Splitting audit trail records — messages and statistics — out from CCAJRNL and writing them to CCAJLOG improves recovery performance by reducing the size of CCAJRNL. This also reduces the likelihood of filling CCAJRNL. However, it does shift the possibility to CCAJLOG and if either CCAJRNL or CCAJLOG fills, the run comes down.

Regenerating files using CCAJRNL and CCAJLOG

Sending audit trail data to CCAJLOG also speeds up the REGENERATE processing, if that is required.

Considerations for CCAJLOG

By specifying CCAJLOG in the JCL or dynamically at the start of CCAIN, all messages and statistics are written to CCAJLOG. All recovery-type records are written to CCAJRNL.

  • If you do not specify CCAJLOG, a CCAJRNL is maintained that collects recovery records, messages, and statistics.
  • If CCAJLOG is specified but the open fails, the run terminates initialization.
  • If CCAJLOG fills during a run, the run is terminated.

Set the NLBUFF parameter to specify the number of buffers to use for CCAJLOG. If you do not specify a value for NLBUFF, a default value of five is allocated.

Using the journals correctly

If you create both a CCAJRNL file and a CCAJLOG file, you must use the CCAJLOG file as input to AUDIT204. And, you must continue to use the CCAJRNL file as input to REGEN and RESTART commands; otherwise, Model 204 issues one of the following messages:

M204:2515: CCAJRNL DATASET IS INVALID FOR AUDIT 204 M204:2515: CCAJLOG DATASET IS INVALID FOR {REGEN | RESTART}

If you create both a CCAJLOG and CCAJRNL and you use the CCAJRNL as input to AUDIT204, AUDIT204 issues the following message and stops processing:

NON-MESSAGE DATASET IS INVALID FOR CCAJRNL

Although UTILJ can handle a CCAJLOG data set, the utility will, of course, find only message and statistics type records in CCAJLOG. So, if you ask for recovery journal entries, type 1-6, the output is empty, since they do not exist on the CCAJLOG.

Because audit trail information is stored in CCAJLOG, if you have written a custom application for statistics reports, use CCAJLOG for input.

CCAJRNL data set record layout

The journal data set is composed of variable length records. Each record consists of a header, one or more journal entries, and a trailer. The format of the journal data set is subject to change with each release of Model 204.

Journal entry format

Journal entries contain audit trail, statistical, and control information, or information used for recovery. Statistics are recorded in the journal as fullword hexadecimal counters. Space is allocated in a given journal statistics entry for all possible statistics, even if they are not being kept. The values for statistics that are not maintained, or do not have relevance to the current configuration of Model 204, are represented as hexadecimal zeros.

Each entry has the same general format:

Bytes Contents
0-1 Length
2 Entry type
3-n Data

Offset 0 is a 2-byte hexadecimal field containing the length of the entry. (The only exception to this rule is the header entry, where the length is the length of the entire journal block.)

Offset 2 is a 1-byte field, which identifies the type of the entry: file, system, or user.

Offset 3 is a variable-length data portion. The size and layout depends upon the type of entry.

The following table summarizes the journal entry types, including formatting layouts and statistical information. Use the layout and statistics tables in Using system statistics for developing customized software to extract particular information from the journal data set.

Summary of journal entry types
Type Journal record
X'00' Header/Trailer
X'01' Recovery entry
X'02' Recovery entry
X'03' Recovery entry
X'04' Recovery entry
X'05' Recovery entry
X'06' Recovery entry
X'07' Unused
X'08' System statistics
X'09' User statistics
X'0A' File statistics
X'0B' Discontinued audit trail text
X'0C' Initialization entry
X'0D' Possibly continued audit trail text
X'0E' Timestamp
X'0F' Merged journal brackets

Number of lines in the journal data set

The number of lines in the journal are controlled by the CAUDIT, LAUDIT, and SYSOPT parameters.

CAUDIT parameter

The CAUDIT parameter controls physical input lines from a terminal, procedure, some IFAM arguments, or full-screen input. CAUDIT operates at physical line (card) level. It controls the auditing of input lines after line editing has been performed, but before line continuation is interpreted.

CAUDIT is set on any user parameter line at the beginning of CCAIN, and can be reset by a user with system manager privileges who logs in with that user number. (CAUDIT is generally used only by Technical Support staff in special instances.)

LAUDIT parameter

The LAUDIT parameter controls logical input lines from a terminal or procedure, some IFAM arguments, and full screen information. LAUDIT is useful in reconstructing events that lead to a system crash.

Set LAUDIT on any user parameter (IODEV) line or at the beginning of CCAIN. For example:

PAGESZ=6184,NUSERS=1,NSERVS=1,NFILES=20, LENQTBL=15,LAUDIT=5, ...

LAUDIT can be reset by a user with system manager privileges who logs in with that user number.

SYSOPT parameter

The SYSOPT 32 option controls output of information that relates to system initialization or to an IFAM function call.

Sizing the journal buffer

In z/OS and z/VM only, you can specify the NJBUFF parameter on the EXEC statement to make journal entries of one user without interrupting other current users. Valid settings are the default NJBUFF=1 or, to ensure the availability of a free buffer:

NJBUFF = NSERVS + NSUBTKS + 1

In z/OS only, if the setting of the NJBUFF parameter is greater than 1, the setting is automatically recalculated using the previous formula and the initial value of NJBUFF is used to define the number of concurrent I/O operations (NCP) for the journal data set. Sizing NJBUFF to the value calculated in the formula guarantees the optimal number of Network Control Programs (NCP) for the journal data set.

If you use the NJBUFF option, specify BLKSIZE=6749 as the minimum journal buffer size to allow a full page to be written to a single journal buffer. The contents of a buffer are automatically written to CCAJRNL before the buffer is completely full.

Messages giving the number of journal buffers and the number of bytes allocated to the buffers are displayed at the end of the run.

Managing space requirements for all operating systems

The space requirement for CCAJRNL is reduced, if CCAJLOG is enabled. However, CCAJRNL must still be sized to prevent B37, D37, or E37 abends, which will terminate the run and require recovery to get files to a state of logical and physical consistency. The same applies to CCAJLOG: If it fills, the run terminates and recovery is required. Generous secondary extents allocated to these data set also help avoid overflow problems.

Additional managing space requirement on z/OS

At a z/OS site, the most comprehensive way to avoid data set full problems is to define both CCAJRNL and CCAJOG as generation data groups (GDGs). See Perpetual journaling for z/OS.

Model 204 statistics

A statistic is written to CCAAUDIT only if its value is nonzero. However, all statistics, even those with zero values, are written to CCAJRNL (or CCAJLOG).

Audit trail and journal statistics lines

The statistics generated on audit trail lines are valuable in a study of the performance of an individual user or of the Model 204 system as a whole. The effect of configuration changes within Model 204 and with other jobs in the operating system can be determined by comparing statistics gathered in Model 204 runs.

  • Statistics described as percentages are multiplied by 10 (a value printed as 1000 represents 100 percent).
  • Statistics described as averages are multiplied by 1000 (1000 represents 1.000).

Output lines

Statistics for each user and file active during a particular run are written to the journal and audit trail files in output lines that begin with ST $$$. The output lines are written in groups of related lines that include:

  • User lines, which you can monitor to identify active users and to help determine if individual applications are efficiently implemented
  • File lines
  • System lines, which you can watch — together with file lines — to signal shifting loads on the CPU, disks, and terminals

The type of line written — user, file, or system — is specified by the value of the first parameter after the journal header.

Identifying subtypes

The subtype — final, partial, performance, or since-last — within each type is specified by the value of the second parameter after the journal header. In the audit trail, the subtype is indicated by USERID=user-id (user statistics), FILE=filename (file statistics), and SYSTEM=Model-204-version (system statistics).

Within each major type of statistics line, subtypes are produced under specified conditions: some are always produced, others are optional. Optional subtypes are produced if the appropriate parameters are set during system initialization. See Setting the NSUBTKS parameter.

Monitoring statistics

The Model 204 statistics that you can monitor are introduced in Using system statistics. The statistics are presented in alphabetical order with their stated purpose, followed by tables that identify their position in various layouts.

You can monitor statistics using one or more of the following methods:

  • Print out the audit trail.
  • View formatted or unformatted displays of all nonzero cumulative statistics for active users — individual, specified groups, and all users — and system activities.
  • Use the AUDIT204 or UTILJ utility program to extract and summarize statistics lines from the journal data set. See the AUDIT204 utility and Using the UTILJ utility
  • Write optional records to the System Management Facilities (SMF) data set; see System Management Facilities.

Setting the NSUBTKS parameter

Gathering partial or performance statistics lines requires a Model 204 pseudo subtask. Model 204 uses pseudo subtasks to perform actions that must be done regularly but that cannot be assigned to a specific user. To accommodate partial and performance statistics lines you might need to increase the NSUBTKS parameter on User 0's parameter line, which controls the maximum number of pseudo subtasks that can be allocated.

Setting parameters to collect certain statistics

You must set various parameters to collect certain statistics. The following table lists the statistics and the corresponding parameter(s):

Parameters to set to collect certain statistics
Statistic Parameter to set to nonzero
BLKCFRE CFRJRNL and CFRLOOK
BLKI RPTCNT and SMPLTIM
BLKO RPTCNT and SMPLTIM
BLKRLK CFRJRNL and CFRLOOK
LONGUPDTIME(MS) MAXUD
LONGUPDTS MAXUD
PNDGTIME DKUPDTWT
REDY RPTCNT and SMPLTIM
RUNG RPTCNT and SMPLTIM
SMPLS RPTCNT and SMPLTIM
SWPG RPTCNT and SMPLTIM
USRS RPTCNT and SMPLTIM
WTCFR CFRJRNL and CFRLOOK
WTRLK CFRJRNL and CFRLOOK
WTSV RPTCNT and SMPLTIM

Audit trail format

Whether printed to CCAAUDIT, either directly from ONLINE/BATCH204 (with two exceptions), or from AUDIT204, the format of an audit trail line is shown below. The two exceptions are:

  • The YEARFORM 4 parameter is not available in ONLINE/BATCH204; it is only available in AUDIT204. This means that a 4-digit year cannot be printed in a CCAAUDIT generated by ONLINE/BATCH204.
  • The TIMEHH parameter is not available in ONLINE/BATCH204; it is only available in AUDIT204. This means that the time stamp with hundredths of a second cannot be printed in a CCAAUDIT generated by ONLINE/BATCH204.

yydddhhmmss seq sssss uuuuu tt audit-trail-text ... or yydddhhmmsshu seq sssss uuuuu tt audit-trail-text ... (if TIMEHH was specified)

Where:

  • yyddd is the Julian year and day.
  • hhmmss is the time of day in hours, minutes, and seconds.
  • hhmmsshu is the time of day in hours, minutes, seconds, hundredths.
  • seq sequence number is a counter to distinguish lines produced in the same second.
  • sssss is the 5-digit server number the user is currently using. (Leading zeros are suppressed.)
  • uuuuu is the 5-digit user number. (Leading zeros are suppressed.)
  • tt is code for the type of audit trail line. The tt codes are shown in the "Types of audit trail lines" table, below.

Example 1, CCAAUDIT output direct from ONLINE

COLUMN: These three lines 2 15 18 23 25 are not present DATE/TIME SEQ# S# USR# TYPE in actual output 23256145406 0 0 0 RK ... START VERSION =7.8.0A SMF SYSTEM ID = RS26 XX- 23256145406 1 0 0 XX 23256145406 2 0 0 AD /// ************************************************************************** 23256145406 3 0 0 AD /// * Model 204 is proprietary to and a registered trademark of Rocket * 23256145406 4 0 0 AD /// * Software, Inc. All title, copyright and other proprietary rights shall * 23256145406 5 0 0 AD /// * be retained by Rocket Software, Inc. Model 204 has been licensed by * 23256145406 6 0 0 AD /// * this customer and the use and protection of Model 204 is governed by * 23256145406 7 0 0 AD /// * the license agreement between the customer and Rocket Software, Inc. * 23256145406 8 0 0 AD /// * * 23256145406 9 0 0 AD /// * Copyright (C) 2016 Rocket Software, Inc. * 23256145406 10 0 0 AD /// * or its affiliates * 23256145406 11 0 0 AD /// ************************************************************************** 23256145406 12 0 0 AD /// M204.0060: Model 204 initialization. Version = 7.8.0A 2020/03/06 14.12, RSQL level = 7.8.0A 2020/02/- 23256145406 13 0 0 XX 12 08.14 23256145406 14 0 0 AD /// M204.0061: SMF system ID = RS26, job name = PSTPC780, step name = TPCBV780, job step = , JES ID = J- 23256145406 15 0 0 XX 0130887 23256145406 16 0 0 AD /// M204.0062: Execute parameters: RCVOPT=9,NJBUFF=115,SYSOPT=139,SYSOPT2=64,LIBUFF=6000,XMEMOPT=3,SIRFU- 23256145406 17 0 0 XX NC=1

Example 2, CCAAUDIT output from AUDIT204

AUDIT204 Utility - Version 7.8.0A, Assembly date/time: 20200229 22.08 Date/time of run: 09/07/2023 12:56:01 CCAJRNL or CCAJLOG version: 7.8.0A Zaps: 78Z7759 78Z7891 78Z7973 78Z7975 78Z8066 78Z8075 COLUMN: These three lines 2 18 24 30 32 are not present DATE/TIME SEQ# SERV# USER# TYPE in actual output FORMAT TIMEHH 2216613441420 0 0 0 RK ... START VERSION =7.8.0A SMF SYSTEM ID = RS26 XX- 2216613441420 1 0 0 XX 2216613441420 2 0 0 AD /// ************************************************************************** 2216613441420 3 0 0 AD /// * Model 204 is proprietary to and a registered trademark of Rocket * 2216613441420 4 0 0 AD /// * Software, Inc. All title, copyright and other proprietary rights shall * 2216613441420 5 0 0 AD /// * be retained by Rocket Software, Inc. Model 204 has been licensed by * 2216613441420 6 0 0 AD /// * this customer and the use and protection of Model 204 is governed by * 2216613441420 7 0 0 AD /// * the license agreement between the customer and Rocket Software, Inc. * 2216613441420 8 0 0 AD /// * * 2216613441420 9 0 0 AD /// * Copyright (C) 2016 Rocket Software, Inc. * 2216613441420 10 0 0 AD /// * or its affiliates * 2216613441420 11 0 0 AD /// ************************************************************************** 2216613441420 12 0 0 AD /// M204.0060: Model 204 initialization. Version = 7.8.0A 2020/03/06 14.12, RSQL level = 7.8.0A 2- 2216613441420 13 0 0 XX 020/02/12 08.14 2216613441420 14 0 0 AD /// M204.0061: SMF system ID = RS26, job name = PSTPC780, step name = TPCBV780, job step = , JES- 2216613441420 15 0 0 XX ID = J0536896 2216613441420 16 0 0 AD /// M204.0062: Execute parameters: RCVOPT=9,NJBUFF=115,SYSOPT=139,SYSOPT2=64,LIBUFF=6000,XMEMOPT=- 2216613441420 17 0 0 XX 3,SIRFUNC=1

Example 3, CCAAUDIT output from AUDIT204

AUDIT204 Utility - Version 7.8.0A, Assembly date/time: 20200229 22.08 Date/time of run: 09/07/2023 14:09:46 CCAJRNL or CCAJLOG version: 7.8.0A Zaps: 78Z7759 78Z7891 78Z7973 78Z7975 78Z8066 78Z8075 COLUMN: These three lines 2 18 24 30 32 are not present DATE/TIME SEQ# SERV# USER# TYPE in actual output FORMAT YEARFORM 4 2022166134414 0 0 0 RK ... START VERSION =7.8.0A SMF SYSTEM ID = RS26 XX- 2022166134414 1 0 0 XX 2022166134414 2 0 0 AD /// ************************************************************************** 2022166134414 3 0 0 AD /// * Model 204 is proprietary to and a registered trademark of Rocket * 2022166134414 4 0 0 AD /// * Software, Inc. All title, copyright and other proprietary rights shall * 2022166134414 5 0 0 AD /// * be retained by Rocket Software, Inc. Model 204 has been licensed by * 2022166134414 6 0 0 AD /// * this customer and the use and protection of Model 204 is governed by * 2022166134414 7 0 0 AD /// * the license agreement between the customer and Rocket Software, Inc. * 2022166134414 8 0 0 AD /// * * 2022166134414 9 0 0 AD /// * Copyright (C) 2016 Rocket Software, Inc. * 2022166134414 10 0 0 AD /// * or its affiliates * 2022166134414 11 0 0 AD /// ************************************************************************** 2022166134414 12 0 0 AD /// M204.0060: Model 204 initialization. Version = 7.8.0A 2020/03/06 14.12, RSQL level = 7.8.0A 2- 2022166134414 13 0 0 XX 020/02/12 08.14 2022166134414 14 0 0 AD /// M204.0061: SMF system ID = RS26, job name = PSTPC780, step name = TPCBV780, job step = , JES- 2022166134414 15 0 0 XX ID = J0536896 2022166134414 16 0 0 AD /// M204.0062: Execute parameters: RCVOPT=9,NJBUFF=115,SYSOPT=139,SYSOPT2=64,LIBUFF=6000,XMEMOPT=- 2022166134414 17 0 0 XX 3,SIRFUNC=1

Example 4, CCAAUDIT output from AUDIT204

AUDIT204 Utility - Version 7.8.0A, Assembly date/time: 20200229 22.08 Date/time of run: 09/13/2023 13:34:45 CCAJRNL or CCAJLOG version: 7.8.0A Zaps: 78Z7759 78Z7891 78Z7973 78Z7975 78Z8066 78Z8075 COLUMN: These three lines 2 20 26 32 34 are not present DATE/TIME SEQ# SERV# USER# TYPE in actual output FORMAT TIMEHH YEARFORM 4 202216613441420 0 0 0 RK ... START VERSION =7.8.0A SMF SYSTEM ID = RS26 XX- 202216613441420 1 0 0 XX 202216613441420 2 0 0 AD /// ************************************************************************** 202216613441420 3 0 0 AD /// * Model 204 is proprietary to and a registered trademark of Rocket * 202216613441420 4 0 0 AD /// * Software, Inc. All title, copyright and other proprietary rights shall * 202216613441420 5 0 0 AD /// * be retained by Rocket Software, Inc. Model 204 has been licensed by * 202216613441420 6 0 0 AD /// * this customer and the use and protection of Model 204 is governed by * 202216613441420 7 0 0 AD /// * the license agreement between the customer and Rocket Software, Inc. * 202216613441420 8 0 0 AD /// * * 202216613441420 9 0 0 AD /// * Copyright (C) 2016 Rocket Software, Inc. * 202216613441420 10 0 0 AD /// * or its affiliates * 202216613441420 11 0 0 AD /// ************************************************************************** 202216613441420 12 0 0 AD /// M204.0060: Model 204 initialization. Version = 7.8.0A 2020/03/06 14.12, RSQL level = 7.8.0A- 202216613441420 13 0 0 XX 2020/02/12 08.14 202216613441420 14 0 0 AD /// M204.0061: SMF system ID = RS26, job name = PSTPC780, step name = TPCBV780, job step = , J- 202216613441420 15 0 0 XX ES ID = J0536896 202216613441420 16 0 0 AD /// M204.0062: Execute parameters: RCVOPT=9,NJBUFF=115,SYSOPT=139,SYSOPT2=64,LIBUFF=6000,XMEMOP- 202216613441420 17 0 0 XX T=3,SIRFUNC=1

The following table lists the code and purpose of the audit trail lines:

Types of audit trail lines
Code Displays...
AD Special information about the run, job step return code, status of Model 204 files, user or the password table, the SNA Communications Server (formerly VTAM) Interface, or messages sent from an HLI program via the IFERR call.
CI Physical input line from a user's terminal or some IFAM arguments.
CP Physical input line from a procedure.
CS Physical line of full-screen input (see LS below).
ER Error message sent to the user.
LI Logical input line from a user's terminal or some HLI arguments.
LP Logical input line from a procedure.
LR Read images from a terminal.
LS Full-screen information. For a screen, each line lists one input value. For a menu, the line provides the menu selection number.
MS Informational message sent to the user (not an error).
OI Input line from the operator's console.
OO Message sent to the operator's console.
RK Special information that relates to system initialization or to the record of a call to the following types of function:
  • Connect
  • HLI
  • MQ/204
  • PQO
  • SQL
  • UL/DB2
QT Lines of SQL statement level processing
ST Utilization statistics (see Using system statistics).
US Line of special information directed to the audit trail by means of the SOUL Audit statement.
XX Continuation of the previous line.

Generating an audit trail

Overview of audit trail parameters

An audit trail is generated if:

  • The SYSOPT parameter includes the 128 specification
  • CCAAUDIT DD statement

The LAUDPROC parameter controls the length of procedure names that appear in since-last statistic lines of the audit trail. You can reset LAUDPROC to a low or high value. A low value conserves memory. A high value captures long procedure names.

z/VSE and the audit trail

In a z/VSE environment, activate the audit trail by incorporating the following specifications into the JCL:

  • You must set UPSI to 1xxxxxxx (SYSOPT=128).
  • You must write the audit trail file to either a disk device or a print device:
    • Assign a disk device using a DLBL and EXTENT statement for file name CCAUDIT (retention 0 is recommended).
    • Assign a print device using symbolic unit SYS008. (You cannot assign SYS008 to the same physical device as SYSLST.)

      If the DLBL and EXTENT for CCAUDIT are provided in the JCL, the audit trail is written to disk regardless of the assignment of SYS008.

The following example shows a job stream for an ONLINE configuration with the audit trail on disk:

// JOB ONLINE ... // DLBL CCAUDIT,'audit trail file-id',0 // EXTENT SYSnnn,balance of extent information // ASSGN SYSnnn,X'cuu' ... // UPSI 10000000 // EXEC ONLINE, SIZE=AUTO ... /&

After the audit trail has been written to disk, you can print it using the UTLA utility program supplied with the Model 204 DBMS.

Use the following JCL:

// JOB UTLA PRINT MODEL 204 AUDIT TRAIL // DLBL M204LIB,'M204.PROD.LIBRARY' // EXTENT SYSnnn,... // LIBDEF PHASE.SEARCH=M204LIB.V411 // DLBL CCAUDIT,'audit trail file-id' // EXTENT SYSnnn,balance of extent information // ASSGN SYSnnn,X'cuu' // ASSGN SYS005,SYSLST // EXEC UTLA,SIZE=AUTO /&

z/VM and the audit trail

In the z/VM/CMS environment, define CCAAUDIT as one of the following:

  • CMS file:

    FILEDEF CCAAUDIT DISK ONLN CCAAUDIT A

  • Service machine virtual printer:

    FILEDEF CCAAUDIT PRINTER

AUDIT204 utility

The AUDIT204 utility program produces the following reports, all of which are written to CCAAUDIT:

  • Complete or partial audit trail from a journal — CCAJRNL or CCAJLOG, as ddname CCAJRNL — produced by a Model 204 run
  • Report based on statistics that appear on user logout and partial lines or file closed and partial lines
  • Statistical analysis of the evaluation of SOUL requests

The format of AUDIT204 reports is determined by AUDIT204 commands and parameters you enter in:

  • z/OS CCAIN data stream
  • z/VM (CMS) AUDIT204 CCAIN file
  • DOS SYSIPT statement

The basic AUDIT204 input commands are:

AUDIT204 command For...
ANALYZE Statistical analysis of the evaluation of User Language requests
FORMAT Printed audit trail
REPORT Breakdown of user and file statistics lines containing optional price calculations

Input to AUDIT204

Input to AUDIT204 is free form, located in columns 1-71. The following rules apply:

  • The command line may have one parameter and its subparameters.
  • Type each subsequent parameter on a separate line.
    • Use blanks to separate subparameters.
  • You can type parameters for a single command in any order.
  • You can add subparameters for some parameters (PRICE and RENAME) by naming the subparameters in the form of character strings:
    • If a name contains a blank or a single quotation mark, you must enclose the name in single quotation marks.
    • Use double quotation marks within the name.
    • Use blanks around the equal signs in the PRICE and RENAME parameters.
    • Use blanks to separate subparameters.
    • If more than one line is required for the subparameters, place a nonblank character in column 72 or repeat the parameter on a new line.
  • Any characters appearing in columns 73-80 are ignored.
  • You can repeat any parameter.
  • Precede each comment by an asterisk (*) in column 1.
  • The effect of parameters containing lists of subparameters is cumulative.
  • The last value of parameters without subparameter lists is the value used.

ANALYZE command

The ANALYZE command produces a statistical analysis report on the evaluation of SOUL requests. The complete report comprises an analysis for each individual account and the system as a whole.

Since-last evaluation lines calculate the mean and standard deviation for each since-last statistic:

Measure Represents...
Mean Center of a set of data points (usually referred to as the average value of the set), obtained by summing the values and dividing by the number of values.
Standard deviation How spread out the data is around the center. In particular, it is useful to know whether the data is tightly clustered around the mean, or more dispersed.

A small standard deviation indicates that any given value is likely to be close to the mean, and a large standard deviation implies that a value is more likely to be far away from the mean.

You can obtain more information about the mean and the standard deviation from any standard statistics textbook.

Syntax

Use the following syntax for the ANALYZE command:

ANALYZE [USERID | NOUSERID] [USERIDS userid1...useridn]

or

ANALYZE [ACCOUNT | NOACCOUNT] [ACCOUNTS account1...accountn] [parameters]

Where:

Use the following parameters with the ANALYZE command:

Parameter Specifies...
ACCOUNT or NOACCOUNT Whether or not to do an individual account analysis. The ACCT or NOACCT parameters are equivalent to ACCOUNT or NOACCOUNT, respectively.
ACCOUNTS Login account name(s) to list in the analysis report.

Reports are produced only for the specified accounts and only the since-last evaluation lines for those accounts that are included in the systemwide report.

Specifying ACCOUNTS sets the ACCOUNT parameter when neither ACCOUNT nor NOACCOUNT was specified.

OMIT name1 name2... Since-last statistic(s) to list, but omit from the analysis report. The report contains all since-last statistics that are not explicitly omitted. Specifying file or user statistics will generate an error message and terminate the ANALYZE.
RENAME name=newname New names to since-last statistics as column headings for an analysis report.
TIME [yydddhhmmss / yydddhhmmss | cyydddhhmmss / cyyddhhmmss] Time range from which since-last evaluation lines are taken.
SYS (the default)
or NOSYS
Whether or not to do a systemwide analysis using since-last evaluation lines of accounts for which an individual analysis is done.
USERID (the default)
or NOUSERID
Performing or suppressing an individual user ID analysis. Totals for a systemwide analysis are still accumulated if NOUSERID is specified.
USERIDS User(s) for which analysis is requested.

The USERIDS keyword is required in addition to the USERID keyword. If neither USERID nor NOUSERID has been specified, specifying USERIDS sets the USERID parameter.

Reports are produced only for the specified users and only the since-last evaluation lines for those users who are included in the systemwide report.

AUDIT204 uses the values specified in the USERID parameter as a pattern and finds all values that match. For example, USERIDS NANCY KATHY is equivalent to REPORT USERID USERIDS NANCY* KATHY*.

FORMAT command

FORMAT prints an audit trail (CCAAUDIT) from CCAJRNL or CCAJLOG.

Syntax

FORMAT TIME {yydddhhmmss/yydddhhmmss | cyydddhhmmss/cyydddhhmmss} TIMEHH TYPE type1 USER usernum USERID userid YEARFORM {2 | 4}

Where:

You use the following parameters with the FORMAT command:

Parameter Specifies...
TIME Time range to print. The format of the time specification corresponds to the time stamp printed with each audit trail line.

You can specify start and end times in either order. If either time is out of the range covered by the journal, it is corrected to match the actual start or end of the journal.

If both specified times are before and after the period covered by the journal, nothing is printed.

  • yyddd is the year and Julian date; cyyddd is the century, year and Julian date (0=20th century, 1=21st century).
  • hhmmss is time based on a 24-hour clock.

NOTE: TIME may be specified with no time range or with a time range in the form noted above. No time range selects the entire journal/jlog for printing.

TIMEHH Indicates that timestamps, printed at the beginning of each line of output, should include hundredths of a second. Requires no other arguments.

NOTE: This parameter and the 78 version of AUDIT204 may be used against a 77 or 78 CCAJRNL or CCAJLOG.

NOTE: TIMEHH may be specified with no time range or with a time range in the form noted above. No time range selects the entire journal/jlog for printing.

TYPE Type of lines to print, such as AD or MS (see the "Types of audit trail lines" table).
USER User for whom the printed audit trail lines are generated. Specify user numbers with or without leading zeros.
USERID One- to ten-character name that identifies the Model 204 user about whom the printed audit trail lines are generated.
YEARFORM Two- or four-digit year output. The default is 2.

Example

The options specified in the following example restrict the printing of the audit trail to MS (message) lines for USER 01 created on September 22, 1998 between 10:41 A.M. and 10:45 A.M.:

FORMAT TYPE MS, ER TIME 98265104100/98265104500 USER 01

Usage

The FORMAT command can be used against a CCAJRNL or CCAJLOG data set. Examine the code examples that begin in Samples of a z/OS job stream.

REPORT command

The REPORT command prints user and file statistics in a tabular format and computes costs by account or by file for billing purposes. AUDIT204 reports have a two-line header, as shown in the following example, that reflect the circumstances of your site.

AUDIT204 UTILITY - VERSION 7.6.0D DATE/TIME OF RUN: 10/11/2016 12:25:50

Syntax

REPORT type [parameters]

Where:

  • type is a subcommand that specifies the type of report to print:
    Subcommand Specifies printing a report from...
    ACCOUNT User statistics for all accounts
    ACCOUNTS account1 account2 ... User statistics for specified accounts
    USERID User statistics for all users
    USERID USERIDS user1 user2 ... User statistics for users listed
    FILE File statistics for all files
    FILE FILES fname1 fname2 ... File statistics for files listed
  • parameters is one or more of the following, which can be used with USERID, ACCOUNT, or FILE:
    Parameter Specifies...
    IND (the default)
    or NOIND
    Printing or not printing individual lines. Totals are still accumulated if NOIND is specified.
    OMIT Statistic(s) to omit from the report. You must enter the actual name of the statistic, not what appears in a column header in a report. Only file statistics are valid for FILE reports and only since-last and logout stats are valid for USERID reports. See Description of statistics for an alphabetical listing of statistics.
    PARTIAL
    or NOPARTIAL
    Generation of partial or complete statistics lines. Use:
    • PARTIAL when a report is generated from a journal that did not terminate successfully.
    • NOPARTIAL to avoid processing overhead, when a complete journal is available.
    PRICE Dollar charge up to five decimal places to any statistic. Decimal point, and leading and trailing zeros are optional. For example:

    PRICE CPU=0.05 DKRD=.03 DKWR=.035

    RENAME Column heading names up to nine characters without truncation. The new name completely replaces the old name and must be used if name is specified on other parameters.
    TIME Time range for statistics line reporting. One of the following formats is required:
    • yydddhhmmss/yydddhhmmss
    • cyydddhhmmss/cyydddhhmmss
    TOTAL (the default)
    or NOTOTAL
    Totalling or suppression of totalling for individual statistics and costs.

Example

Totals are printed after individual statistics lines if both IND and TOTAL are in effect. Each line must contain only one parameter, as in the following examples:

REPORT USERID NOIND PARTIAL TIME yydddhhmmss/yydddhhmmss RENAME name=newname NOTOTAL USERIDS account REPORT FILE FILES fname1 fname2 fname3 ... OMIT statistic PRICE statistic=xx.xx

The subkeywords ACCOUNTS, FILES, and USERIDS can be used with REPORT subcommands ACCOUNT, FILE, and USERID as in the following examples:

REPORT USERID USERIDS JAMES STEVE SANDRA ACCOUNT ACCOUNTS JAMES STEVE SANDRA FILE FILES CLIENTS VEHICLES DAILY

Note: The REPORT command for AUDIT204 can process only a single journal: CCAJRNL. You cannot use against a CCAJOG file.

Using the AUDIT204 utility

CCAJRNL and CCAJLOG data sets as input to utilities

When you need a CCAAUDIT report, use the CCAJLOG data set as input to the AUDIT204 utility, under the ddname of CCAJRNL. You can also use CCAJLOG as input to the UTILJ utility, again under the ddname of CCAJRNL; however, the only useful report produced is a histogram of the number of blocks and block sizes that were written to the CCAJLOG data set.

CCAJRNL is the input data set provided to roll forward recovery (ddname=CCARF), media recovery (ddname= CCAGEN), and UTILJ (ddname=CCAJRNL).

Utilities using CCAJLOG and CCAJRNL data sets as input

Journal stream configurations

AUDIT204 can process only basic journal streams (single data sets). Members of concatenated, parallel, ring, or GDG streams must be processed one at a time.

If there is a wraparound during the output processing of a ring stream, use the offload stream as input to AUDIT204. You can also use regular z/OS concatenation to print the contents of a concatenated stream.

z/OS JCL for AUDIT204

The following considerations apply to z/OS JCL for AUDIT204:

  • Use a SORTLIB DD statement to identify the library in which the sort program is stored, if necessary.
  • You might need sort work (SORTWKxx) data sets.
  • SORTIN, SORTOUT, and SYSOUT statements are necessary only for statistical reports. A sort program must be available:
    • SORTIN contains all the user and file statistics entries extracted from the journal. The size of the data set depends on the number of statistics entries extracted. Each user statistics entry is 198 bytes long. Each file entry is 82 bytes long. Partial statistics entries are not copied to SORTIN.
    • SORTOUT contains the sorted statistics entries from SORTIN. SORTOUT and SORTIN must be the same size.
    • SYSOUT is the SORT message data set.
  • STATIN, STATOUT, and SYSOUT statements are necessary only for statistical analysis reports:
    • STATIN contains all the since-last evaluation statistics entries extracted from the journal. The size of the data set depends on the number of since-last evaluation statistics extracted. Each since-last evaluation statistics entry is 188 bytes long.
    • STATOUT contains the sorted statistics entries from STATIN. STATOUT and STATIN must be the same size.
    • Statistics work (STATWKxx) data sets might be needed when using the ANALYZE command, depending on the amount of data generated.
  • CCAJRNL describes the data set containing the journal produced by a Model 204 run.
  • AUDIT204 does not support streams.
  • CCAAUDIT contains the audit trail, statistics report, and statistical analysis report. If you request both the audit trail and statistics, the audit trail appears first.

    The value of the BLKSIZE parameter in the CCAAUDIT DD statement is truncated at 4 more than a multiple of 137. A BLKSIZE value of 141 is the default and minimum value.

    Any LRECL and RECFM specifications are ignored; these parameter values are forced to be 137 and VBA, respectively.

Samples of a z/OS job stream

The following sample job streams run AUDIT204, These examples differ in the use of the journal processed, CCAJRNL or CCAJLOG, and the presence or absence of AUDIT204 commands: ANALYZE, FORMAT, and REPORT.

Where only CCAJRNL is defined, all AUDIT204 commands are valid

//AUDIT EXEC PGM=AUDIT204 //STEPLIB DD DSN=M204.LOADLIB,DISP=SHR //SYSUDUMP DD SYSOUT=A //CCAJRNL DD DSN=M204.CCAJRNL,DISP=SHR //CCAAUDIT DD SYSOUT=A //SORTIN DD DSN=&&SORTIN,UNIT=SYSDA,SPACE=(TRK,nn), // DISP=(NEW,DELETE) //SORTOUT DD DSN=*.SORTIN,VOL=REF=*.SORTIN,DISP=(OLD,PASS) //STATIN DD DSN=&&STATIN,UNIT=SYSDA,SPACE=(TRK,nn), // DISP=(NEW,DELETE) //STATOUT DD DSN=*.STATIN,VOL=REF=*.STATIN,DISP=(OLD,PASS) //SYSOUT DD SYSOUT=A //CCAIN DD * FORMAT ANALYZE REPORT ACCOUNT . . ---- user options . /*

Where CCAJLOG is defined and you want to extract CCAAUDIT

//AUDIT EXEC PGM=AUDIT204 //STEPLIB DD DSN=M204.LOADLIB,DISP=SHR //SYSUDUMP DD SYSOUT=A //CCAJRNL DD DSN=M204.CCAJLOG,DISP=SHR //CCAAUDIT DD SYSOUT=A //SORTIN DD DSN=&&SORTIN,UNIT=SYSDA,SPACE=(TRK,nn), // DISP=(NEW,DELETE) //SORTOUT DD DSN=*.SORTIN,VOL=REF=*.SORTIN,DISP=(OLD,PASS) //STATIN DD DSN=&&STATIN,UNIT=SYSDA,SPACE=(TRK,nn), // DISP=(NEW,DELETE) //STATOUT DD DSN=*.STATIN,VOL=REF=*.STATIN,DISP=(OLD,PASS) //SYSOUT DD SYSOUT=A //CCAIN DD * FORMAT . . ---- user options . /*

Where both CCAJRNL and CCAJLOG are defined and you want a statistical analysis

//AUDIT EXEC PGM=AUDIT204 //STEPLIB DD DSN=M204.LOADLIB,DISP=SHR //SYSUDUMP DD SYSOUT=A //CCAJRNL DD DSN=M204.CCAJRNL,DISP=SHR //CCAAUDIT DD SYSOUT=A //SORTIN DD DSN=&&SORTIN,UNIT=SYSDA,SPACE=(TRK,nn), // DISP=(NEW,DELETE) //SORTOUT DD DSN=*.SORTIN,VOL=REF=*.SORTIN,DISP=(OLD,PASS) //STATIN DD DSN=&&STATIN,UNIT=SYSDA,SPACE=(TRK,nn), // DISP=(NEW,DELETE) //STATOUT DD DSN=*.STATIN,VOL=REF=*.STATIN,DISP=(OLD,PASS) //SYSOUT DD SYSOUT=A //CCAIN DD * ANALYZE REPORT . . ---- user options . /*

z/VSE JCL for AUDIT204

The following considerations apply to z/VSE:

  • Under z/VSE, output is sent to SYSLST.
  • CCAJRNL can be on tape or disk. If CCAJRNL is on tape, SYS004 must be assigned to a tape drive.
  • Running AUDIT204 might require two sorts:
    • REPORT command requires a SORTIN and a SORTOUT data set.
    • ANALYZE command requires a STATIN and a STATOUT data set.
  • SORTIN, SORTOUT, STATIN, and STATOUT are work files and must be on disk.
  • SORTWK1 data set is required.
  • Statistics work (STATWK1) data set might be needed when using the ANALYZE command, depending on the amount of data generated.

Sample z/VSE job stream

The following sample job stream runs AUDIT204:

// JOB AUDIT204 // DLBL M204LIB,'M204.PROD.LIBRARY' // EXTENT SYSnnn,... // LIBDEF PHASE.SEARCH=M204LIB.V210 // DLBL CCAJRNL,'CCAJRNL' Note 1 // EXTENT SYSnnn,... // DLBL SORTIN,'AUDIT204.SORTIN',0 Note 2 // EXTENT SYSnnn,... // DLBL SORTOUT,'AUDIT204.SORTOUT',0 Note 2 // EXTENT SYSnnn,... // DLBL STATIN,'AUDIT204.STATIN',0 Note 3 // EXTENT SYSnnn,... // DLBL STATOUT,'AUDIT204.STATOUT',0 Note 3 // EXTENT SYSnnn,... // DLBL SORTWK1,'SORTWK1',0 Note 4 // EXTENT SYSnnn,... // EXEC AUDIT204,SIZE=(AUTO,xxK) Note 5 INCLUDE IFYLSQRT * Insert AUDIT204 CCAIN commands here FORMAT REPORT ACCOUNT REPORT FILE REPORT ACCOUNT ACCOUNTS MAGGIE MARY DAVE /* /&

Usage notes

  • If you use tape instead of the DLBL and EXTENT for CCAJRNL, use the following JCL:

    // TLBL CCAJRNL // ASSGN SYS004,X'cuu'

  • DLBL and EXTENT are necessary if you use either the REPORT or the ANALYZE command.
  • You must specify a SIZE parameter in the EXEC statement with AUTO and you need some additional storage for the sort program. To determine the amount of additional storage needed for the sort program, refer to IBM's SORT/MERGE Programmer's Guide.

(z/VM) CMS JCL for AUDIT204

The CMS AUDIT204 utility program prints a Model 204 journal file and produces a statistical report from information in a journal file:

  • If a statistics report is produced, a SORT utility that can be invoked dynamically must be available for use.
  • AUDIT204 output is produced either as a printer spool file or in a CMS disk file.

The following EXEC initiates AUDIT204:

AUDIT204 [datasetname] [filename filetype] filemode

Where:

  • datasetname specifies the name of the journal data set on a variable-format disk, with the qualifiers separated by blanks. If no data set name is specified, it is presumed that the name of the journal data set is M204.JOURNAL.
  • filename and filetype specify the name and type of the journal file on a CMS-format, or a variable format for z/OS and z/VSE, disk.
  • filemode specifies the mode of the disk holding the journal file to be processed. The input to AUDIT204 contains the commands selected from those described earlier and is included in the AUDIT204 CCAIN.

Searching multiple tapes for journal and off load data

When a journal or offload data set is on multiple tapes, you do not need to mount all of them for AUDIT204 processing. You can process a subset of the tapes, as long as you mount them in the order in which they were originally generated.

For example, suppose that your CCAJRNL data set consists of five tapes labeled TAPE01 through TAPE05. You are sure that the information you want to analyze begins on the third tape or later. In this case you can save processing time by specifying only TAPE03, TAPE04, and TAPE05 in the DD statement for the CCAJRNL data set.

AUDIT204 Return Codes

The following return codes may be issued by AUDIT204 upon completion.

Return Code Meaning
0 Normal completion
8 I/O error reading CCAJRNL or CCAJLOG

Out of sequence journal block

Zero length journal block or journal record

12 Invalid parameter - various errors with CCAIN input parameters
16 CCAAUDIT open failed
20 CCAJRNL or CCAJLOG open failed
24 SORTIN open failed
28 STATIN open failed
32 CCAIN open failed
36 Operating system does not support Z-architecture