How to identify application dictionaries and related DDNAMEs and files for a CV from the DMCL.

Document ID : KB000044153
Last Modified Date : 14/02/2018
Show Technical Document Details

Question:

Is there a way to identify application dictionaries and related DDNAMEs and files for a CV from the DMCL?

Answer: 

There may be a need to identify all application dictionaries on a CV such as during an upgrade. In upgrade JOB13 only one application dictionary is updated. The related steps to update the application dictionary should be executed once for each application.

Solution:

From ENTER NEXT TASK CODE enter command LOOK DMCL to display the CV's global DMCL definition. Also you can run batch job IDMSLOOK with input syntax DMCL. The report will be generated for the DMCL named in SYSIDMS.

The report contains three main sections, the name of the areas, name of the files and the DBTABLE.

A dictionary segment must contain areas DDLDML and DDLDCLOD.

Areas and files are defined in segments so an area or file name will always be prefixed by the a segment name.

In the area name section of the display identify all segments with areas DDLDML and DDLDCLOD.

To access a dictionary with any of the IDD compilers, you must be set to a DICTNAME/DBNAME that contains areas DDLDML, DDLDCLOD and DDLDCMSG. This is because these compilers use subschema IDMSNWKA which contains these three areas.

DDLDCMSG is typically defined in segment SYSMSG and included in all DBNAMEs that are to be set as a DICTNAME (I.E. there is only one Message area and it is typically shared among all dictionaries).

Example:
                              Page      Low         High      Page           
     Area Name            Shr Group     Page        Page      Size    DDNAME 
----------------------    --- -----  ----------  ----------  ------  --------
APPLDICT.DDLDML                   0      60,001      66,000   4,276  DICTDB 
APPLDICT.DDLDCLOD                 0      70,001      72,000   4,276  DLODDB
SYSMSG.DDLDCMSG                   0      10,001      14,000   4,276  DCMSG 

It is possible that all three areas of a dictionary are defined in three segments or all three areas are defined in the same segment. If all three areas are defined in the same segment then that segment name can be used as the dictionary name. In the DBTABLE definition at the end of the display a segment name which includes all three areas, DDLDML, DDLDCLOD and DDLDCMSG could itself be included in a DBNAME. Either the DBNAME or the segment maybe used to bind a run unit.

In cases where all three areas are not in the same segment then the segments must be included in a DBNAME entry in the DBTABLE and this DBNAME must be used as the dictionary name.

Note that the area name display lists the DDNAMEs but to identify the related DDNAMEs and associated file names refer to the file name section of the display.

Example:
                                          Mem.- Shared                 
   File Name                 DDNAME  Type Cache Cache   Buffer Name    
--------------------------- -------- ---- ----- ----- ------------------
 
APPLDICT.DICTDB             DICTDB   BDAM   No    No  DEFAULT_BUFFER  
         DSN=MEN.C5100.PHILTEST.APPLDICT.DDLDML                       
APPLDICT.DLODDB             DLODDB   BDAM   No    No  DEFAULT_BUFFER  
         DSN=MEN.C5100.PHILTEST.APPLDICT.DCLOD
SYSMSG.DCMSG                DCMSG    BDAM   No    No  DEFAULT_BUFFER
         DSN=MEN.C5100.PHILTEST.SYSMSG.DDLDCMSG                                             
 
 
Example of DBNAME entry from DBTABLE:
 
DBNAME is SYSDICT   match on subschema is OPTIONAL        
             Include SEGMENT ---> APPLDICT                
             Include SEGMENT ---> SYSMSG

Additional Information:

CA IDMS Administration Guide