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

CXXMAINT DDPROD (Update Directory)

Last update March 15, 2019

The CXXMAINT DDPROD option updates the Directory (CXX) with CA Datacom® Datadictionary™ definitions. This option reads the input file as created by CA Datacom® Datadictionary™ and updates the Directory to reflect any changes, additions, or deletions.

CA Datacom® Datadictionary™ also provides a means of cataloging CA Datacom® Datadictionary™ definitions directly to the CA Datacom®/DB Directory.

Note: For details about the -CXX CATALOG and 1000 CATALOG batch transactions, see CA Datacom Datadictionary Batch Facilities. For information about the online CATALOG function, see the CA Datacom Datadictionary Online Reference or Usi ng.

The following topics are discussed on this page:

When to Use

Use the DDPROD option to update the Directory when adding or changing definitions in CA Datacom® Datadictionary™ which must be reflected in the Directory. Perform the tasks in the following order:

  1. Define the new table or modify the existing table definition in CA Datacom® Datadictionary™.
  2. Execute the CA Datacom® Datadictionary™ DDCFBLD utility to create the input for the DDPROD option.
  3. Use the DDPROD option to update the Directory to reflect the CA Datacom® Datadictionary™ definitions.

You can also use the DDPROD option to create a new database with a different database identifier from an existing production database definition. This option is useful to create a replica of a database for testing purposes.

Important! Do not use the CXXMAINT DDPROD option for SQL accessible tables, or on a database containing SQL accessible tables, or on databases containing partitioned tables. Instead, use the CA Datacom® Datadictionary™ CATALOG transaction.

Active Processing

You can change an existing database definition as long as no task is actively processing the database. Use the ACCESS function (for details see ACCESS (Restricting Opens or Maintenance)) to prevent opens to a database that you want to change.

Processing a DDPROD Request

As CA Datacom®/DB processes each table definition, the current Directory content is compared to the CA Datacom® Datadictionary™ definitions.

If any tables in the database being updated are not loaded, they are deleted from the Directory at the start of the process. The data set name is lost and to restore it, you must initialize the area or use the CXXMAINT OPTION=ALTER,DSN= utility function. A report of the Directory taken at this time does not provide area space information. The next LOAD of the area restores the information.

The action taken by CA Datacom®/DB depends on the situation encountered, as follows:

New Area, New Table

If an area is new and no match exists in the Directory, CA Datacom®/DB adds the area with no initialization information. CA Datacom®/DB adds the new table with no initialization information, and sets it as not loaded.

Existing Area, New Table

If the table is new, CA Datacom®/DB adds it. If the area containing the table exists and is loaded, CA Datacom®/DB sets the new table as loaded and having zero records.

If you are adding a table to an existing area, CA Datacom®/DB updates the area with the new CA Datacom® Datadictionary™ entity-occurrence information, data set space option, and slack information to the new values. If the block size differs, CA Datacom®/DB saves the new block size in the area definition as the next block size until the next INIT of the data area.

Existing Area, Existing Table

If the table currently exists, CA Datacom®/DB compares the Directory and CA Datacom® Datadictionary™ versions. If a critical change has occurred, CA Datacom®/DB leaves the current table in *HISTORY* status and adds the new table as not loaded.

Special codes on the Impact Report indicate critical changes and the reason. The codes and reasons associated with an Impact Report are as shown in the following list.

Impact Report Codes and Reasons

  • 00
    NOT LOADED (00) in the Impact Report means that a table was NOT LOADED for reasons other than a CATALOG or DDPROD. This indicates that the area has been loaded since the last DDPROD or CATALOG but is not loaded now. The current NOT LOADED status is of no importance with regard to the last DDPROD or CATALOG. For information about requesting an Impact Report as a DBUTLTY function independent of a DDPROD, that is, a TYPE=I CXX report, see Type I - Impact Report.
  • 01
    New table name
  • 02
    Area name change
  • 08
    Table ID change
  • 09
    Recover yes/no change
  • 10
    COMPRESSION CHANGED
  • 11
    RECORD LENGTH CHANGED
  • 13
    COMPRESSION NAME CHANGED
  • 14
    SPECIAL FIELD CHANGE
  • 15
    TO/FROM PARTITION
  • 16
    PARTITION COLUMNS UNEQUAL
  • 17
    PARTITION HIGH VALUES CHANGED
  • 18
    ANOTHER PARTITION CHANGED
  • 19
    ENCRYPTION CHANGED
  • When you have to reload the data area to make the new table definition usable, you can run a SEQ=NATIVE BACKUP or EXTRACT function which use the *HISTORY* definition to access the old data, change its format if necessary, and reload the area. When the reload completes, CA Datacom®/DB marks the new table definition loaded.

    Note: If you have changed table definitions in multiple areas in the database, be sure that you back up all affected areas before reloading any data. The first reload of any data area in the database deletes all *HISTORY* database definitions. If you have not unloaded all changed areas before doing a reload, the *HISTORY* definition is no longer available.

    If you are moving a table from one area to another, back up the area or extract the table before cataloging or using DDPROD to update the definition.
    Do not use the CXXMAINT DDPROD option for SQL accessible tables or on a database containing SQL accessible tables. Instead, use the CA Datacom® Datadictionary™ CATALOG transaction.

  • If a key change occurs, CA Datacom®/DB removes the *HISTORY* version, adds the new table with the data loaded but the Index is marked as not loaded. (Run the RETIX function to correct the Index.)
  • If neither of these situations occurs, CA Datacom®/DB regards the changes as noncritical, removes the *HISTORY* version, and adds the new table as loaded.

How to Use

The MUF must be active when you execute this command. Execute DBUTLTY with the command:

►►─ CXXMAINT OPTION=DDPROD,DDNAME=d ─┬──────────────┬─────────────────────────►◄
                                     └─ ,NEWDBID=n ─┘

Command

  • CXXMAINT
    Invokes the function for Directory maintenance.

Required Keywords

  • OPTION=DDPROD
    Requests the option to update the CXX from CA Datacom® Datadictionary™ definitions.
  • ,DDNAME=
    Specifies the JCL DDname for the input data set.
    A DDNAME is not acceptable for sequential input or output files if it is a name reserved for a CA Datacom® area. Names with the following patterns are therefore not acceptable for DDNAME=:
  • 3-byte names that end with XX, meaning they are reserved as either current or future CA Datacom® control areas.
  • 6-byte names that end with what could be a database ID from 001 through 999.
  • 7-byte names that end with what could be a database ID from 1000 through 9999.
    The DDNAME= value is verified for acceptability to protect you from unintentionally causing data corruption. The DDNAME check is the default but optional. You can prevent the DDNAME check by using a DBSIDPR parameter (DBUTLTY_EDIT_DATA_SET=) for individual MUF environments. However, we recommend that you allow the DDNAME check.
    The data corruption risk involves not the DDNAME itself but the content of the data set. For example, suppose that you used the CXX DDNAME as the output of a backup. You then copied the CXX DD statement and changed the DDNAME of the copy to be acceptable, avoiding the DDNAME= error. The backup would, however, then overlay the CXX data set, which is not the intent of a backup.
    If you specify an unacceptable name for DDNAME=, message DB10059E is generated. 

    Note: We recommend that you allow DDNAME= check protection. You can, however, disable DDNAME= protection. To disable protection, assemble the DBSIDPR module used for this CA Datacom® environment and specify NONE for the DBUTLTY_EDIT_DATA_SET= parameter. The default is DBUTLTY_EDIT_DATA_SET=FULL_1, which allows DDNAME= protection. For more information about DBSIDPR and DBUTLTY_EDIT_DATA_SET=, see Administrati ng .

Optional Keyword

  • ,NEWDBID=
    Specifies a different database ID to be assigned to the definition. Use this keyword to create a set of new definitions quickly that are identical to a production base. Do not use this keyword when performing a normal update.

    Note: Do not use this parameter for databases accessed by SQL or CA Dataquery™ for CA Datacom®. These products must have the correct DBID to reference additional information from CA Datacom® Datadictionary™ about the production database. If the NEWDBID= parameter is used for a database accessed by CA Ideal™ for CA Datacom®, the corresponding ASSIGN DBID or ALTER DBID command must be run before running the application. See CA Ideal™ for CA Datacom® documentation for details.

Example JCL

The following shows the command to update the CA Datacom®/DB Directory, using the CA Datacom® Datadictionary™ data in DDCFBLD.

Note: Use the following as a guide to prepare your JCL. The JCL statements are for example only. Lowercase letters in a statement indicate a value you must supply. Code all statements to your site and installation standards.

 //jobname    See the previous note.
 //       EXEC PGM=DBUTLTY,REGION=2M
 //STEPLIB    See the previous note.
 //CXX      DD DSN=cxx.data.set,DISP=SHR           Directory data set
 //DDCFBLD  DD DSN=dd.output,DISP=OLD              Input from <DDD>
 //SYSIN    DD *                                   Command Input
          CXXMAINT   OPTION=DDPROD,DDNAME=DDCFBLD
 /*

Sample Report

Following is a sample report page. For an example report header, see Sample Report Headers.

Sample Report CXXMAINT DDPROD 

                    CONTROL CARD(S)
                    .........1.........2.........3.........4.........5.........6.........7.........8
                    CXXMAINT OPTION=DDPROD,DDNAME=DDCFBLD
 
                    FUNCTION=CXXMAINT
                       DDNAME=DDCFBLD
                       OPTION=DDPROD

This page of the report shows the following:

  • The command exactly as entered.
  • An analysis of keywords encountered and expected. Any errors found are flagged with a note in the left margin.
  • Any messages related to syntax processing.

                                                     IMPACT REPORT
 
                    BASE        AREA        TABLE ID        DISPOSITION
                    390         ALI         ALI  003        LOADED
                                ALT         ALT  001        OLD
                                            ALT  001        NOT LOADED  (11)
                                APL         APL  002        LOADED
                                LLN         LLN  004        LOADED
                                MST         MST  005        INDEX NOT LOADED
                                SCR         SCR  006        LOADED

This page of the report shows a DBUTLTY impact report that gives the disposition of each table in the database as one of the following:

  • LOADED
    The definition for this table supplied in the input from DDCFBLD contained only noncritical changes from the definition for this table previously in the Directory.
  • OLD
    The definition for this table supplied in the input from DDCFBLD contained critical changes from the definition for this table previously in the Directory. The OLD definition is the definition for this table as it existed prior to the execution of the CXXMAINT DDPROD.
  • NOT LOADED
    The NOT LOADED definition is the new definition for this table. The numeric code in parentheses indicates the reason CA Datacom®/DB marked this table as not loaded. See the chart in Processing a DDPROD Request for an explanation of the possible codes. Use the DBUTLTY LOAD function to reload this table. When the LOAD completes, DBUTLTY marks this table LOADED and deletes the old definition.
  • INDEX NOT LOADED
    The definition for this table supplied in the input from DDCFBLD contained one or more key changes from the definition for this table in the Directory. Use the DBUTLTY RETIX function to correct the index.
Was this helpful?

Please log in to post comments.