JOB09 step DIRLDICT running IDMSDIRL hangs in CV mode
search cancel

JOB09 step DIRLDICT running IDMSDIRL hangs in CV mode

book

Article ID: 68615

calendar_today

Updated On:

Products

IDMS IDMS - Database

Issue/Introduction

As part of an upgrade configuration, JOB09 must be executed to update the SYSDIRL dictionary.

JOB09 contains a step, DIRLDICT, to load or update the dictionary structures by means of the IDMSDIRL utility.

If this step is executed in CV mode, it is possible for the job to hang indefinitely. If this happens, then within the Central Version, OPER WATCH DB shows the following :

       IDMS-DC Release 1900     Display DB activity            Line 1     of 21   
  Task Id   Orig IDMSProg Subschem Pri Sta V# PageRead PageWrit CallIDMS LOCK-Rq
0000000043 BATC IDMSDIRL IDMSNWKA 100 KAS 32 00000000 00000000 00000003 00000000

and DCMT DISPLAY ACTIVE TASK shows :

  Task / LTE   Trans-ID Pri Orig Module   SS/AM    St Stat        Date:Time       
         43       4513 100 BATC IDMSDIRL IDMSNWKA NO KAS 2016-04-07-03.50.51.7202

Environment

IDMS: All supported releases.

Cause

This situation can happen if there is no dedicated SYSDIRL dictionary in the Central Version, but a SYSDIRL DBNAME exists which includes the SYSTEM segment :

     DBNAME is SYSDIRL   match on subschema is OPTIONAL   
               Include SEGMENT ---> SYSMSG            
                Include SEGMENT ---> SYSTEM    

The only option is to cancel the batch job.

The cause of this problem is related to some of the predefined run units in SYSGEN, which are the RUNUNITS FOR SECURITY and RUNUNITS FOR SYSTEM/DEST.

Both of these predefined run units issue a READY SHARED RETRIEVAL for the SYSTEM.DDLDML area. The IDMSDIRL utility issues a READY EXCLUSIVE UPDATE for whichever DDLDML area is derived from its DBNAME setting and the DBTABLE used. If dbname SYSDIRL includes SYSTEM.DDLDML, then these READYs are being issued against the same physical area and as they are not compatible, the job will hang.

All predefined run units are started during the startup of the Central Version, and are terminated during shutdown. As such, this wait situation will last forever, or until the INACTIVE INTERVAL expires, after which the ERUS task will abend with :

  DC001007 V67 T43 TASK:IDMSDIRL PROG:IDMSDIRL WAITING FOR LTXNLOCK 00008008 000007D1         
DC001008 V67 T43 TXNID:4513 PROG:IDMSDIRL SUBSCHEMA:IDMSNWKA MODE:X
DC001009 V67 T43 TSKID:7 TASK:DRIVER PROG:RHDCRUSD HOLDS LTXNLOCK 00008008 000007D1        
DC001010 V67 T43 TXNID:4470 PROG:RHDCRUAL SUBSCHEMA:IDMSSECS MODE:IS                       
DC001009 V67 T43 TSKID:6 TASK:DRIVER PROG:RHDCRUSD HOLDS LTXNLOCK 00008008 000007D1        
DC001010 V67 T43 TXNID:4469 PROG:RHDCRUAL SUBSCHEMA:IDMSNWK8 MODE:IS                       
DC001003 V67 T43 TASK:RHDCNP3S PROG:IDMSDIRL STALLED WAITING FOR LTXNLOCK 00008008 000007D1
  DC027007 V67 T43 TASK:RHDCNP3S PROG:IDMSDIRL ABENDED WITH CODE D002

 

Resolution

There are two options to resolve this :

1. Using the DCMT VARY RUN UNIT command, terminate the involved predefined run units before starting JOB09 in CV mode.
2. Run JOB09 in local mode.

It is recommended to choose option 2, because JOB09 performs a lot of updates against the dictionary. All of these updates require journaling and locking. If the CV’s journals capacity is not sufficient, it is possible that all journals will become full after offloading which will cause the CV to hang. Additionally, the SYSLOCKS value defined in the SYSTEM statement must be large enough (minimum recommendation 100,000) to accommodate for all of the locks being held during execution of the different job steps of JOB09. Lock overflow can fill up Storage Pool 255 which also will cause the CV to hang.

Additional Information

The SYSDIRL dictionary over time is used to contain more and more system related source entities (dictionary schema and subschemas, REPORTS like Journal Reports, SREPORTs, Perfmon Reports, etc), and as such it is not a good idea to do away with the physically distinct SYSDIRL and put it all in SYSTEM. Broadcom recommends strongly to maintain a physically independent SYSDIRL dictionary.