Clients who support their applications often will copy data from their databases in one environment to another for testing or development activities, to report against older data, or for many other reasons. It is very easy using the BACKUP command of the CA Datacom/DB DBUTLTY program to take a backup of the whole database. This backup data can then be loaded into the target environment with a single LOAD command. Alternatively, each area in the database can be backed up separately and then loaded into the target as desired.
In certain cases with either method, it is possible for a table to not be loaded, and the job to produce a message "TABLE NOT LOADED". Here is an example report showing this situation:
<Please see attached file for image>
In this case, Table TBS was not loaded (Box A), although the input file shows there were 68,915 records. Looking at the description of these tables further, Table TBS was defined with Datacom ID 2 in the source system (Input Box B), but it was defined with Datacom ID 46 in the target system (Output Box C). As noted in the CA Datacom/DB DBUTLTY documentation for the LOAD command, "If you are loading data from a backup, the LOAD function only restores the data if the table IDs are identical when LOADID=YES (the default). LOADID=NO can be used to match on table names, but LOADID=NO cannot be specified if either URI=NO is specified or if any table in the area was not defined to CA Datacom® Datadictionary™ with RECOVERY=Y. REMAP= can be used to force matching on different table names. This feature is available only for areas loaded as URI."
When using the CA Datacom/DB DBUTLTY program, and the BACKUP command to take a backup of the whole database, and then loading the data from the backup file into the target environment, it is possible for one or more tables to not be loaded, and the job to produce a message "TABLE NOT LOADED". Why does this happen, and how can it be corrected?
In this situation, there are several alternatives. One or more of these should be considered in each circumstance, in order to use the best process for the given situation.
Changing the Datacom-ID
The Datacom-ID for the table is stored in the Datadictionary, and it is also present in the Database directory (CXX). This field can be changed using the online DDOL transaction, or through batch DDUPDATE transactions. In DDOL, the tables in a database can be displayed via the DISPLAY DATABASE databasename status command. Here is an example:
<Please see attached file for image>
In this display, the column DB-Id contains the Datacom-ID of the table. Here, table PNC (DEMO-DEM-PNC) has the Datacom-ID of 006. This information should be checked for all environments in which this table/database is defined. To change it, type the "ATT" margin command in the line number for the occurrence on a display panel and press PF4 (PROCESS). Set the Datacom-ID to the new value and then press PF9 (APPLY). If there are no errors, Datadictionary displays the Attribute Display Panel with the message SUCCESSFUL ATTRIBUTE UPDATE. Proceed with your process to copy the definition to PROD status if necessary and then catalog it to the Directory (CXX).
To update this value in batch mode using DDUPDATE, you will need to do the following: