Skip to content
CA Datacom Core - 15.1
Documentation powered by DocOps

CXXMAINT ALTER OPTION2= (Activating Other Features)

Last update March 11, 2019

The CXXMAINT OPTION=ALTER function uses the OPTION2= keyword to activate other features as follows:

  • OPTION2=datafs specifies DATA FAST SEARCH (DATAFS) option (see CXXMAINT ALTER OPTION2=datafs (DATAFS Support)).
  • OPTION2=datahu specifies the high used mark option (see CXXMAINT ALTER OPTION2=datahu (High Used Mark)).
  • OPTION2=areaev specifies the data area data set extent validation option (see CXXMAINT ALTER OPTION2=areaev (Data Area Extent Validation)).
  • OPTION2=sumode specifies that you allow Single User using the OPTION2=Y_SU or to disallow Single User using OPTION2=N_SU (see CXXMAINT ALTER OPTION2=sumode (Single User Mode)).
  • OPTION2=MATCHSID specifies that you want to change the setting of Simplify mode, for example, if to allow easy testing in QA systems, you want to change the CXX SIMPLIFY option to match a current DBSIDPR module (see CXXMAINT ALTER OPTION2=MATCHSID). 
  • OPTION2=RESET_KEY_USES specifies counts of key uses provided by the Dynamic System Table DIR_KEY are to be cleared.
  • OPTION2=HIST00nn specifies that a history of CXX alterations is to be preserved inside the CXX data set and available for reporting.  

The following topics are discussed on this page:

CXXMAINT ALTER OPTION2=datafs (DATAFS Support)

A feature that reduces compression overhead provides an optional search algorithm named DATAFS (DATA FAST SEARCH). The DATAFS algorithm provides possible performance-enhanced searching of multi-table areas and areas with tables that use compression. It is a best practice to have this option set to Y.

When to Use

Use the ALTER DATAFS option when you want to enable the DATA FAST SEARCH feature.

Previously, each data area that contained a single table that was not compressed was searched for a record using a binary search. The ability to do the binary search was turned on at data load time if a physical block could contain 15 or more data rows. Otherwise, the blocks were searched in a sequential physical order. For large block sizes with small records, such a sequential search could become a significant percentage of MUF CPU usage. Using DATAFS, however, the last 16 bytes of each data block is used by the search algorithm to provide a faster method of finding individual data rows, especially for large block and small row sizes. Once created, these 16 end bytes are stored on DASD with the data.

Reporting DATAFS in Full CXX Report

A full CXX report includes information about DATA FAST SEARCH status, where status in the report is either YES or NO.

Security Considerations

This function is secured in the DTUTIL resource class with a resource name ending in CXXMAINT.ALTEROP2. For more information, see the DBUTLTY Resource List. No underlying table rights are checked.

How to Use

To use the DATA FAST SEARCH option, use the following command:

►►─ CXXMAINT OPTION=ALTER,OPTION2=datafs ─────────────────────────────────────►◄

Command

  • CXXMAINT
    Invokes the function for Directory maintenance.

Required Keywords

  • OPTION=ALTER
    Requests the CXXMAINT ALTER option.
  • ,OPTION2=datafs
    Indicates whether to use the DATAFS search algorithm for performance enhanced searching of multi-table areas and areas with tables that use compression.
    Specify datafs as N_DATAFS when you do not want to use DATAFS.
    Specify datafs as Y_DATAFS when you want to use DATAFS. When the DATAFS feature has been turned on, each data block in a Unique Row Identifier (URI) area is eligible to use the new algorithm that includes altering the DASD for a given block. A URI is a sequential number assigned when a row is added or inserted that CA Datacom®/DB uses to identify a row. Areas which qualified for using the binary search algorithm in previous releases continue to use the previous algorithm. Each data block uses the new DATAFS approach if there are a sufficient number of rows in the block to make the new approach worthwhile.
    Once the global DATAFS option is turned on, blocks have the new search criteria built in one of two ways.
    • The search criteria is built and stored at the end of the data block if, as rows are added to new or existing blocks, the search criteria has not yet been built, there are a sufficient number of rows in the block, and the block currently has at least 16 bytes of space available at the end.
    • The DBUTLTY function RETIX,AREA=*DATA builds the search criteria if DATAFS is set to Y for URI data areas that are not using the old style binary search. Because this DBUTLTY already runs in MUF, it allows sites with existing populated URI data areas to build the search criteria in MUF (and on DASD) without taking an area offline. For each individual data block, however, the search criteria can be built only if there are 16 bytes available at the end of the block.
    Because the new DATAFS algorithm needs the last 16 bytes of each data block, it is possible for each existing data area to require more physical DASD space. This includes all methods of newly populating a data area (LOAD, and so on), or inserting rows in an existing data area. There are two exceptions: RECOVERY and LOAD from a RECID backup using data from before DATAFS is set to Y. In these two cases, physical data placement takes precedence over the 16 bytes used by DATAFS.
    • Valid Entries:
      Y_DATAFS or N_DATAFS
    • Default Value:
      (No default)

CXXMAINT ALTER OPTION2=datahu (High Used Mark)

This section discusses OPTION2=Y_DATAHU/N_DATAHU. A best practice is to set this option to Y.

When to Use

Use this option when you want to turn on or turn off the "high used mark" option.

When this option is not turned on, each execution of a DBUTLTY LOAD loads the data (if any) then formats the rest of the data set by writing binary zero blocks. It is possible, especially at sites using DASD mirroring, for these formatting writes to overwhelm the system, thereby causing possible performance degradation. Also, without this option turned on, physical retrieval against an area, such as the GETPS command and, for example, the DBUTLTY function BACKUP SEQ=PHYSICAL, requires the entire data set be read even though much of it may never have been used.

After reading the following information, you can decide if your site can use this feature. If so, you can turn it on for all data sets in the Directory (CXX). Once turned on, some existing programs and DBUTLTY jobs might execute in less time, because thereafter less than the whole data set area is loaded and (or) read. It is therefore possible that significant performance gains can be realized for sites that frequently load their data or use the GETPS command in programs.

After this option is turned on, the first execution of the DBUTLTY function LOAD after a DBUTLTY function INIT of an area continues to function as it did before this option was turned on. All subsequent LOADS, however, including REORG, and physical retrievals (GSETP command and BACKUP SEQ=PHYSICAL) rely on a special form of the "next available overflow" called the high used mark feature.

The next available overflow is a relative DASD location, part of the data set that has never been actively used by CA Datacom®. The high used mark represents the point up to which LOAD must format the data set and up to which physical retrieval must read. It is the next available overflow number rounded up to 64 tracks.

An INIT of a data area sets the high used mark to zero. A value of zero means LOAD must format the entire data set. At the start of LOAD, the current high used mark is saved and the DASD version is set to zero. If the data LOAD takes less space than the saved copy of the high used mark, the data set is formatted up to that mark. After the data portion of the LOAD is finished but before the index portion of the LOAD is done, the DASD high used mark is updated to indicate the point to which "true data" has been loaded, rounded up to a 64-track boundary. If the LOAD fails during the data portion, the next LOAD must format the entire data set. If the LOAD fails during the index portion, the high used mark is used for formatting.

The runtime code in the MUF that maintains the next available overflow notices each time the next available overflow number crosses a 64-track boundary. If the memory copy of the high used mark is non-zero, MUF reads the data set control block. It then updates the high used mark and immediately writes the data control block.

A GETPS command treats the high used mark as the end of the data set unless the area is not opened for update. If it is not open for update, GETPS reads to the true end of the data set. This is done for the sake of read-only MUFs. LOAD always treats the high used mark as the end of the data set.

If you turn off this option, it reverses the marking of the CXX caused by turning the option on. When an area is opened for update, its compatibility level is checked. If it is level one and the CXX has been marked to stop using the high used mark feature, the compatibility level is reset to 0, the high used mark is zeroed.

How to Use

To turn the high used mark option on or off, use the following command:

►►─ CXXMAINT OPTION=ALTER,OPTION2=datahu ─────────────────────────────────────►◄

Command

  • CXXMAINT
    Invokes the function for Directory maintenance.

Required Keywords

  • OPTION=ALTER
    Requests the CXXMAINT ALTER option.
  • ,OPTION2=datahu
    Sets the "high used mark" feature.
    Specify datahu as N_DATAHU when you do not want to turn on the high used mark feature.
    Specify datahu as Y_DATAHU when you want to turn on the data high used mark feature.
    • Valid Entries:
      Y_DATAHU or N_DATAHU
    • Default Value:
      (No default)

CXXMAINT ALTER OPTION2=areaev (Data Area Extent Validation)

This section discusses OPTION2=Y_AREAEV/N_AREAEV. It is a best practice to have this option set to Y.

When to Use

Use this option when you want to turn on or turn off data area data set extent validation.

CA Datacom®/DB uses data set extent validation in the following way. When a data area is not open, you can move the current extents to more extents, less extents, or different volumes. The data set may even be uncataloged and then recataloged to add volumes. All tracks of the data set would not be correctly preserved if a mishap should occur during the moving of current extents. CA Datacom® provides a certain amount of protection to avoid the data corruption such mishaps could cause. This option provides even more protection by performing the following steps.

After the open of a data area, the control block is read and verified. The last block on the last track of every extent is then read. This read validates that the block exists and is of the proper size. It is not, however, validated to look proper in content. This option also places a control block as the last block of the data set. It is built during the LOAD or REORG load and moved during an EXTEND or dynamic extend. If this option is turned on, the open process verifies it is correct.

How to Use

To turn data area data set extent validation on or off, use the following command:

►►─ CXXMAINT OPTION=ALTER,OPTION2=areaev ─────────────────────────────────────►◄

Command

  • CXXMAINT
    Invokes the function for Directory maintenance.

Required Keywords

  • OPTION=ALTER
    Requests the CXXMAINT ALTER option.
  • ,OPTION2=areaev
    Used for turning on and off "data area data set extent validation".
    Specify areaev as N_AREAEV when you do not want to turn on data area data set extent validation.
    Specify areaev as Y_AREAEV when you want to turn on data area data set extent validation.
    • Valid Entries:
      Y_AREAEV or N_AREAEV
    • Default Value:
      (No default)

CXXMAINT ALTER OPTION2=sumode (Single User Mode)

By default, use of Single User mode is blocked, even if secured Single User is allowed. We strongly recommend not using Single User mode.

When to Use

Use this option when you want to run Single User using the OPTION2=Y_SU option with CXXMAINT or to remove support for Single User using OPTION2=N_SU. This option is provided to the full CXX report and has been added to the DB00271I MUF startup message. 

The new Single User option is provided to the full CXX report as follows:

 SECURE USING JOBNAME - NO                 CXX LEVEL - 1
 SECURE ALLOWING SINGLE USER - NO          SINGLE USER ALLOWED - NO

We have long recommended against using Single User mode. The Single User environment allows no logging and therefore has no restart or recovery capability. In addition, running in Single User bypasses external security. However, CA Datacom® continues to support using Single User mode for the DBUTLTY functions that run Single User and the DBFLSUB feature that loads an area with user program input. Previously, only if the CXX was externally secured did you have the option of using DBUTLTY CXXMAINT OPTION=ALTER,SINGLE=YES to allow Single User mode, or SINGLE=NO to block Single User mode.

If a Single User open that is allowed occurs, message DB00138I is issued, confirming that fact and documenting the Single User execution. For more information, see  DB00138I.

How to Use

To turn Single User mode on or off, use the following command.

►►─ CXXMAINT OPTION=ALTER,OPTION2=sumode ─────────────────────────────────────►◄

Command

  • CXXMAINT
    Invokes the function for Directory maintenance.

Required Keywords

  • OPTION=ALTER
    Requests the CXXMAINT ALTER option.
  • ,OPTION2=sumode
    Use the sumode variable to turn Single User mode on by specifying Y_SU for sumode or to turn Single User support off by specifying N_SU for sumode.
    • Valid Entries:
      Y_SU or N_SU
    • Default Value:
      (No default)

CXXMAINT ALTER OPTION2=MATCHSID

This section discusses CXXMAINT ALTER OPTION2=MATCHSID

When to Use

Use this option when, to allow easy testing in QA systems, you want to change the CXX SIMPLIFY option to match a current DBSIDPR module.

How to Use

To change the CXX SIMPLIFY option to match a current DBSIDPR module, use the following command (the MUF must not be enabled when you run this function).

►►─ CXXMAINT OPTION=ALTER,OPTION2=MATCHSID,OUTNAME=Sysplex-name ───────────────►◄

Command

  • CXXMAINT
    Invokes the function for CXX maintenance.

Required Keywords

  • OPTION=ALTER
    Requests the CXXMAINT ALTER option.
  • ,OPTION2=MATCHSID
    Specify MATCHSID for OPTION2= when you want to change the CXX SIMPLIFY option to match a current DBSIDPR module to allow easy testing in QA systems.
    The MUF must not be enabled when you run this function.
    To be effective, this function needs to be the first in a DBUTLTY step that causes the CXX to open.
    The CXXMAINT OPTION=ALTER,OPTION2=MATCHSID function causes a second DB00905I message. The first message shows the information from the CXX prior to change. The second message shows the information after the change. For more information about messages and return codes, see Messages.
    For more information about the SIMPLIFY feature, see Administrating.
    • Valid Entries:
      MATCHSID
    • Default Value:
      (No default)
    • Optional Keywords
    • OUTNAME=Sysplex-name
      Specify the Sysplex name that you want to be stored in the CXX. If this parameter is omitted, the Sysplex name of where the DBUTLTY executes is stored.
    • Valid Entries:
      A 1-8 byte character string.
    • Default Value:
      (No default)

CXXMAINT ALTER OPTION2=RESET_KEY_USES

This section discusses CXXMAINT ALTER OPTION2=RESET_KEY_USES

When to Use

Use this option to reset or 'clear to zero' the read command counts. Reasons for doing this include:

  • When the read command counts get to the maximum value 4 billion less one 
  • If you plan to delete a key to track from zero any use of that key

How to Use

The Dynamic System Table DIR_KEY provides counts of key uses. The counts start at zero when a database is cataloged and are incremented going forward for each use of the key. The counts have a maximum of 4 billion less one. If for any reason that you want the counts to be reset to zero without a catalog, this DBUTLTY function can be done in MUF with the base open or closed.

►►─ CXXMAINT OPTION=ALTER,OPTION2=RESET_KEY_USES,DBID=n ───────────────►◄

Command

  • CXXMAINT
    Invokes the function for CXX maintenance.

Required Keywords

  • OPTION=ALTER
    Requests the CXXMAINT ALTER option.
  • ,OPTION2=RESET_KEY_USES
    Specify RESET_KEY_USES for OPTION2= when you want to reset the key use counts to zero.
    • Valid Entries:
      RESET_KEY_USES
    • Default Value:
      (No default)
    • Optional Keywords
  • DBID=
    Specifies the database ID for the set of tables to have every key use counts set to zero
    • Valid Entries:
      1-5000
    • Default Value:
      (No default)

CXXMAINT ALTER OPTION2=HIST00nn (CXX internal history) 

This function activates CXX internal history of alters by either Datadictionary DDUPDATE program or Datacom/DB DBUTLTY function CXXMAINT with OPTION=ALTER. The 'nn' must be replaced by two numbers from 00 to 99.

  • Number 00 provides that no CXX internal history is to be saved. It disables it having been set in the past with other numbers. 
  • Numbers 01 thru 99 cause this number as maximum entries per database for internal history. 

Because the alters are rarely done, most MUF Environments have no need for tracking this internal history. Currently, the following items are tracked with a history entry. Each new history entry is added to the list after any existing entries. If the number of entries is greater than the maximum, the oldest entries are removed to reach the current maximum to ensure that the most current changes are kept. Entry sizes vary and it is not likely but possible that the CXX will need to be extended to provide additional space.

Note: Currently, CXX internal history entries are not backed up during BACKUP AREA=CXX. A LOAD AREA=CXX or CXXCLONE will start clean with no history and the history turned off with HIST0000.

  • DDUPDATE program when using a transaction 1000 ALTER
    • DATABASE
      • Database changes currently include any combination of the two 1500 items listed below
      • -COM Change dynamic extend to tracks with 9999  
      • -UPD DATABASE,TOBIE_DATABASE_997(PROD)
      • 1000 ALTER                       
      • 1500 DYNAMIC-EXTEND,Y
      • 1500 DYN-EXT-TRACKS,9999
      • -END                 
    • AREA
      • Data area changes currently include any combination of the six 1500 items listed below 
      • -COM Change dynamic extend to cylinders with 9999  
      • -UPD AREA,TOBIE_AREA_997(PROD)
      • 1000 ALTER                       
      • 1500 DYNAMIC-EXTEND,C
      • 1500 DYN-EXT-TRACKS,9999
      • 1500 BLOCK-SIZE,4096
      • 1500 SPACE-MNGMNT,4
      • 1500 SLACK,0
      • 1500 URI-REUSE,N
      • -END         
    • TABLE
      • Table changes currently include any combination of the three 1500 items listed below
      • -COM Change key usage to any 
      • -UPD KEY,TOBIE_F02_997.TST08(PROD)
      • 1000 ALTER                       
      • 1500 COMPRESSION,&
      • 1500 COMPRESS-EXIT,&
      • 1500 ENCRYPTION-KEY,&     
      • -END           
    • KEY
      • Key changes currently only the one 1500 item listed below
      • -COM Change key usage to any 
      • -UPD KEY,TOBIE_F02_997.TST08(PROD)
      • 1000 ALTER                       
      • 1500 KEY-USAGE,A                 
      • -END        
  • DBUTLTY program when using function CXXMAINT with keyword OPTION=ALTER the following items are currently tracked. Other items are not tracked
    • CXXMAINT OPTION=ALTER,DBID=0997,OPTION2=RESET_KEY_USES
    • CXXMAINT OPTION=ALTER,AREA=A01,DBID=0997,DSN=DCMDEV.DB.DBDVM0.A01997
    • CXXMAINT OPTION=ALTER,AREA=A01,DBID=0997,DSOP=4
    • CXXMAINT OPTION=ALTER,TABLE=F03,DBID=0997,LOGGING=NO   

When to Use

Use the ALTER HIST option when you want to enable the internal CXX history for future events listed previously. Use it to increase or decrease the number of blocks and so number of history entries.

If a problem arises, history entries are most valuable by providing a way to see recent changes. In normal processing, they provide minimal value and therefore not expected to be enabled in most MUF environments.

Reporting CXX internal history is done with DBUTLTY function REPORT with keywords AREA=CXX,TYPE=Z

For details about the report with all options, see the REPORT section.

Reporting CXX internal history Full CXX Report

A full CXX report includes information about history with the maximum number of entries per database on the right side of a line. An example is below:

SECURE USING JOBNAME - NO                                   CXX LEVEL -   1                      HISTORY BASE -     25

Also, whether the individual database has any internal history entries it is reported as:

PARTITIONED BASE - NO                                       HISTORY BASE - NO

Security Considerations

This function is secured in the DTUTIL resource class with a resource name ending in CXXMAINT.ALTEROP2. For more information, see the DBUTLTY Resource List. No underlying table rights are checked.

How to Use

To enable or disable the internal CXX history, use the HIST00nn option by issuing the following command:

►►─ CXXMAINT OPTION=ALTER,OPTION2=HIST00nn ─────────────────────────────────────►◄

Command

  • CXXMAINT
    Invokes the function for Directory maintenance.

Required Keywords

  • OPTION=ALTER
    Requests the CXXMAINT ALTER option.
  • ,OPTION2=HIST00nn
    Where the 'nn' is replaced by a two digit number 00 through 99 to Indicate the number of CXX blocks to dedicate to saving internal CXX history items. Items vary in size and therefore, the specific number per block is not known. Sizes vary and are not provided. We recommand that you start with one block (HIST0001) and only use more if one is not sufficient for requirements.
    • Valid Entries:
      HIST0000 through HIST0099 to provide the number of CXX blocks to reserve for CXX internal history. 
    • Default Value:
      (No default)
Was this helpful?

Please log in to post comments.

  1. Owen Williams
    2019-02-28 04:56

    "OPTION2=HIST00 nn" should be "OPTION2=HIST00nn" - there is no blank between "00" and "nn"

  2. JOANNA KRUEGER
    2019-03-11 06:14

    Hi Owen - 

    The correction has been made to 15.1. However, it will not show up in the PDF until I republish.

    As always, we value your input!

    Thanks