Why does IDMS Journal Analyzer not decompress dictionary records

Auditing requirements may demand that IDMS Journal Analyzer be run to display all USER-047 records from the archive journal file, in order to show any changes that were made to dictionary records. When Journal Analyzer is run to display any dictionary record id, the output is compressed. If it is run against any user defined database records, they decompress successfully.

Why does Journal Analyzer not decompress the dictionary records?

Answer:

The reason that the dictionary records are not decompressed is because of the way that Journal Analyzer processes schemas and how IDMS handles the dictionary schema, IDMSNTWK.

Journal Analyzer searches for all records on the journal by accessing the OOAK-012 record and walking the OOAK-S set which contains all user defined schemas. Because Journal Analyzer walks the OOAK-S set it will never find schema IDMSNTWK even if it does exist in the target dictionary, since by default the IDMSDIRL does not connect it.

To remedy this, you can run the IDMSDIRL utility against the application dictionary with the parameter SCHEMA-CONNECT. This will connect the IDMSNTWK schema to the OOAK-S set. Once this schema is available to Journal Analyzer, it will be able to use it to decompress the dictionary records. From the utilities manual for IDMSDIRL: "SCHEMA-CONNECT Used to connect the CA-supplied internal schemas to the OOAK-S set."

The other option is the run the IDMSDIRL utility against the SYSDIRL dictionary with the SCHEMA-CONNECT option. Then run the Journal Analyzer job with SYSIDMS parameters: DICTNAME=SYSDIRL DBNAME=SYSDIRL

If IDMSDIRL has already been run against the SYSDIRL dictionary without the SCHEMA-CONNECT option, you may need to delete it first with the IDMSDIRL option SCHEMA-DELETE, then re-add it. The JCL for IDMSDIRL is located in JOB 9 of the install.

This option will work for any Journal Analyzer job run against dictionary records, such as USER-047. This option will only help the Journal Analyzer when it's run against dictionary records, as the application schemas will not reside in SYSDIRL.