IBM Support

How to enable Auditing and Versioning for your SCLM project

How To


Summary

To enable Auditing, and optionally Versioning, the SCLM project administrator determines for which groups and types to enable auditing and versioning. By default, no audit records are saved and no versions are stored. To enable auditing, and optionally versioning, the project administrator uses the following SCLM macros in the project definition:
- FLMCNTRL
- FLMATVER
- FLMALTC.

Steps

To add auditing and versioning to your SCLM project, you must

  1. Update the Project Definition
  2. Allocate the auditing and versioning data sets
  3. Manage your Versions.

Update the Project Definition

FLMCNTRL

The FLMCNTRL macro defines project-specific control options. Use the following parameters on the FLMCNTRL macro to enable auditing, and by extension, versioning:

  • VERS - the name of the primary auditing and versioning control data set.
  • VERS2 - the name of the secondary auditing and versioning control data set. The VERS2 keyword is optional. If you want to keep a backup copy of the SCLM auditing information, use the VERS2 parameter.

To enable versioning, add the following parameters to the FLMCNTRL macro:

  • VERCOUNT - the number of versions to keep for each member in the version partitioned data set. If you specify 0, all versions are kept.
  • VERPDS - the name of the partitioned data set to contain the versions of the members. You can use variables when you specify the name. It is best practice to specify a separate version partitioned data set name for each group. Use the @@FLMGRP variable or the @@FLMDSN variable to specify different data set names in the same FLMCNTRL statement.

Here is an example of the FLMCNTRL macro, in a project where 5 versions are kept. The versioning partitioned data set uses SCLM variables to specify that the name is the same as the project.group.type, followed by a low-level qualifier of VERSION.

         FLMCNTRL ACCT=SCLMRUN.ACCOUNT.FILE,                           C 
               VERS=SCLMRUN.VERSION.FILE,                              C 
               VERCOUNT=5,                                             C
               VERPDS=@@FLMPRJ.@@FLMGRP.@@FLMTYP.VERSION,              C 
               DASDUNIT=SYSALLDA                                         

FLMALTC

Use the FLMALTC macro to override parameters specified on the FLMCNTRL macro. You can specify versioning controls for particular groups:

  • VERPDS - the name of the partitioned data set to contain the versions of the members.  If you did not use the @@FLMGRP variable on the VERPDS parameter of the FLMCNTRL macro, use alternate controls with the FLMALTC macro to specify a separate version partitioned data set for each group.
  • VERS - the name of the primary audit control data set.
  • VERS2 - the name of the secondary audit control data set. Again, VERS2 is optional, and only to be used if you want to keep a backup copy of the SCLM auditing information.

Here is an example of the FLMALTC macro overriding the FLMCNTRL values for the PROD level of the hierarchy for the PAYROLL project:

PRDCNTL  FLMALTC  ACCT=PAYROLL.PROD.ACCOUNT, * PROD ACCOUNTING         C
               ACCT2=PAYROLL.PROD.ACCOUNT2,  * PROD ACCOUNTING 2       C
               VERS=PAYROLL.PROD.AUDIT,      * PROD AUDIT FILE         C
               VERS2=PAYROLL.PROD.AUDIT2,    * PROD AUDIT FILE 2       C
               VERPDS=@@FLMDSN.VERSION       * VERSION PDS NAME         
This alternate control is associated with a particular group by using the ALTC keyword of the FLMGROUP macro, like this:
PROD     FLMGROUP AC=(D),KEY=Y,ALTC=PRDCNTL                
EMER     FLMGROUP AC=(E),KEY=Y,PROMOTE=PROD,ALTC=PRDCNTL   
The value of the ALTC parameter matches the label on the FLMALTC statement. In this case, alternate controls apply to both the production group (PROD) and the emergency fix group (EMER).
 

FLMATVER

The FLMATVER macro enables the auditing and versioning. It defines the group and the type of members in that group to record audit records for, and optionally which groups and types to take versions for. The following parameters are used to enable versioning for whatever groups and types are necessary:
  • GROUP - the name of the group for which version data is to be maintained.
  • TYPE - the name of the type for which version data is to be maintained.
  • VERSION - specify YES to enable versioning, or omit the VERSION parameter or specify NO to enable auditing without versioning.
  • VERCOUNT - specify a number of versions to override the default VERCOUNT on the FLMCNTRL macro.
  • SEQNUM - specify STANDARD (or STD) to ignore standard sequence number differences. Specify COBOL to ignore COBOL sequence number differences. For example, if SEQNUM=STD, and the only change to a line was in the sequence number, then the line is not included in the delta.
This example of the FLMATVER macro shows how to save versions for group RELEASE and type SOURCE:
         FLMATVER GROUP=RELEASE,                                       C
               TYPE=SOURCE,                                            C
               SEQNUM=STD,                                             C
               VERCOUNT=2,                                             C
               VERSION=YES                                              
In this example, the VERSION keyword is YES, so versioning is turned on for group RELEASE and type SOURCE. The SEQNUM parameter is set to STD to avoid saving versions when the only changes are to the standard sequence numbers.  The VERCOUNT parameter is set to 2, which overrides the VERCOUNT parameter, which is set to 5 on the FLMCNTRL macro.

The FLMATVER macro statements are processed in the order given.  Once the audit and version values are set, they are not reset.  If you want to audit all types that are changed in the PROD group, but only version the SOURCE modules in PROD, you might set your FLMATVER macro like this:
         FLMATVER GROUP=PROD,TYPE=SOURCE,VERSION=YES  
         FLMATVER GROUP=PROD,TYPE=*,VERSION=NO 

Allocate Audit and Version Data Sets

You need to allocate the data sets you specified with the VERS and VERS2 keywords. If you are not using VSAM Record Level Sharing (RLS), modify the sample JCL in the ISPF samples library member, 'ISP.SISPSAMP(FLM02VER)', to define the VSAM database to hold the audit and version data.  Be sure to use SHAREOPTIONS(4,3). If you are using VSAM RLS, modify the sample JCL in 'ISP.SISPSAMP(FLM02RLS)' to define the VSAM database. For VSAM RLS, you must use SHAREOPTIONS(3,3).
If you want to save versions of your changes, you must also allocate the versioning partitioned data sets specified by the VERPDS keywords on the FLMCNTRL and FLMALTC macros. The VERPDS data set must have the following attributes:
Attribute Description
LRECL The larger of 259 and the source data set's LRECL + 4
RECFM Variable blocked (VB)
BLKSIZE
The largest of
  • The versioning data set's LRECL + 4
  • The source data set's BLKSIZE
  • The optimal BLKSIZE for your system

Manage Your Versions

Version data sets can be large. If your space is limited, you want to control how space is used by the versioning process. Here are some ideas you can use to limit the amount of space used by versioning:

  1. Use the VERCOUNT parameter of the FLMCNTRL and FLMATVER macros to limit the number of versions that are kept. If you choose to keep 3 versions of a member, when you change the member a fourth time, the first version is overwritten with the new information, so only the most recent 3 versions are kept.
  2. Do not use versioning on your development libraries. Because development libraries tend to change frequently, versioning would cause lots of traffic in the versioning partitioned data sets. Also, there are usually many more libraries in the development groups than there are at other levels, so eliminating them produces significant savings.
  3. Use the D (delete) command on the SCLM - Version Selection panel to delete versions (and audit records) you no longer need.
  4. Two versioning services, VERINFO and VERDEL, can be used to automate the version maintenance process. For example, you can write an exec or program to use the VERINFO service to get the information for all version (and audit) records before a certain date. Then, the VERDEL service can delete them. For an example of how to use the VERINFO and VERDEL services, SCLM provides two members, FLMSVERI and FLMSVERD, in the ISPF sample library ('ISP.SISPSAMP').
  5. Use IDCAMS periodically to reclaim unused space in your VSAM clusters.

Document Location

Worldwide

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSCVRUA","label":"SCLM for z\/OS"},"Component":"","Platform":[{"code":"PF035","label":"z\/OS"}],"Version":"All Versions","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
20 March 2020

UID

ibm11288810