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.
- 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.
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.