Analyzing problems reported by daily planning

When the daily planning process detects a severe problem, it does not create a new plan, but writes messages that describe the problem and sets a nonzero return code. Messages are written to the message-log data set defined by the EQQMLOG DD statement and to the daily plan printout data set defined by the SYSPRINT DD statement. In most cases, the problem is easily solved, such as when an operation refers to a deleted workstation definition. In the case of a dependency loop, however, the problem can be complex; you must check the messages carefully and correct the problem.

A dependency loop can occur in daily planning for several reasons. The most common causes are errors when defining input arrival times or dependencies. A chain of dependent operations, called a network, must have a beginning and an end. If there is no distinct beginning or end, a dependency loop is detected. Sometimes the loop can be small and easy to fix (for example if an operation is defined as both predecessor and successor). In other cases, the loop might involve thousands of operations.

You can detect a loop using a trial plan. To help you correct a dependency loop, the daily planning program analyzes the loop and reports only those operations directly involved in the loop rather than all operations in the network. HCL Workload Automation for Z analyzes the loop and reports on operations that are most likely to cause the loop:
  • The operation input arrival time is earlier than the predecessor operation input arrival time.
  • The operation is an entry to the loop; it is not in the loop, but a successor operation is in the loop.
  • Removal of a dependency has minimal impact on the network but removes the loop.

The criteria are weighted in the listed order. Any operation satisfying the first test is reported as a probable cause.

Complex loops that contain more than one looping path are reported as a single set of looping operation dependencies with more than one probable cause. Example of messages issued in the EQQLOOP data set shows examples of the messages issued by the daily planning programs to assist dependency loop resolution.
Figure 1. Example of messages issued in the EQQLOOP data set
EQQ3150E LOOP FOUND IN AN APPLICATION NETWORK:
EQQ3150I - LOOP TYPE                   =SOME NODES COULD NOT BE CHECKED
EQQ3150I - NETWORK ID                  =000000000002
EQQ3150I - TOTAL OPERATIONS            =000000000009
EQQ3150I - TOTAL DEPENDENCIES          =000000000020
EQQ3150I - NO. OF FOPs                 =000000000003
EQQ3150I - NO. OF LOPs                 =000000000001
EQQ3150I - NO. OF UNCHECKED NODES      =000000000005
EQQ3150I - FIRST OCCURRENCE            =LOOPA      051027 1023
EQQ3151I LOOP REDUCTION ITERATION 00001 REDUCED LOOP TO 000000004 OPERATIONS
EQQ3152I                          ADID     IADATE   IATM    WSD   OPNO  JOBNM
EQQ3153I LOOP OPERATION:         (LOOPC  ) 051027   1023    CPU1   006  JOBX
EQQ3154I PREDECESSOR OF:         (LOOPD  ) 051027   1023           007  
EQQ3155I SUCCESSOR OF:           (LOOPD  ) 051027   1023           008  
EQQ3153I LOOP OPERATION:         (LOOPD  ) 051027   1023    CPU1   008  JOBY
EQQ3154I PREDECESSOR OF:         (LOOPC  ) 051027   1023           006  
EQQ3154I PREDECESSOR OF:         (LOOPA  ) 051027   1023           002  
EQQ3155I SUCCESSOR OF:           (LOOPD  ) 051027   1023           007  
EQQ3153I LOOP OPERATION:         (LOOPD  ) 051027   1023    CPU1   007  JOBZ
EQQ3154I PREDECESSOR OF:         (LOOPD  ) 051027   1023           008  
EQQ3155I SUCCESSOR OF:           (LOOPA  ) 051027   1023           002  
EQQ3155I SUCCESSOR OF:           (LOOPC  ) 051027   1023           006  
EQQ3153I LOOP OPERATION:         (LOOPA  ) 051027   1023    CPU1   002  JOBT
EQQ3154I PREDECESSOR OF:         (LOOPD  ) 051027   1023           007  
EQQ3155I SUCCESSOR OF:           (LOOPD  ) 051027   1023           008  
EQQ3156I REMOVED DEPENDENCY:     (LOOPD  CPU1 0008 JOBY  051027  1023) 
EQQ3156I PREDECESSOR OF:         (LOOPA  CPU1 0002 JOBT  051027  1023) 
EQQ3156I REASON FOR REMOVAL:     CLOSEST TO LOOP ENTRY 
EQQ3151I LOOP REDUCTION ITERATION 00002 REDUCED LOOP TO 000000003 OPERATIONS
EQQ3156I REMOVED DEPENDENCY:     (LOOPC  CPU1 0006 JOBX  051027  1023) 
EQQ3156I PREDECESSOR OF:         (LOOPD  CPU1 0007 JOBZ  051027  1023) 
EQQ3156I REASON FOR REMOVAL:     CLOSEST TO LOOP ENTRY 
EQQ3151I LOOP REDUCTION ITERATION 00003 REDUCED LOOP TO 000000000 OPERATIONS
EQQ3157I                         ADID   VALIDTO   LASTUPD        USER
EQQ3158I LOOP ADID:              LOOPD  991231     051104 0107   USER1
EQQ3158I LOOP ADID:              LOOPA  991231     051027 0644   USER2
EQQ3158I LOOP ADID:              LOOPC  991231     051027 0530   USER3

For detailed information about how daily planning detects a loop condition and provides you with suggestions on how to resolve it, see Loop detection and analysis.