Example of a loop detection and analysis
![The figure shows an example of a network with 3 FOPs, 1 LOP, 9 operations and 20 dependencies](image_8.gif)
In this network, which has both FOPs and LOPs, it is assumed that all the operations have the same IA date and time. The example shows a multiple dependency loop made up of four operations. The loop detection process detects a loop of type SOME NODES COULD NOT BE CHECKED, because five nodes could not be assigned an earliest start time (EAS) and therefore are identified as not checked. The loop analysis is performed to identify which dependencies can be the reasons of the loop and suggest how to solve it.
The reduction process, at its first iteration, identifies and lists all the loop operations, along with their dependencies. After an analysis of the loop operations, you are suggested to remove a dependency from the network (reason: CLOSEST TO LOOP ENTRY).
The reduction process starts for the second iteration. After the reduction, three operations are left in the network, meaning that there is another loop involving them. After an analysis of the loop operations, you are suggested to remove a dependency from the network (reason: CLOSEST TO LOOP ENTRY).
The reduction process starts the third iteration. At this stage, the reduction process leaves no operations in the network, meaning that the loop is resolved.
All the applications involved in the loops are listed ordered by the last update date and time, in descending order, 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
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
When a batch daily planning ends in error or takes too long, search for message EQQ3150E in the EQQMLOG and EQQLOOP data sets to check whether a loop condition occurred. If a loop condition occurred, detailed information is stored in the EQQLOOP data set.
According to the resolution actions suggested, check if the removed dependencies are the actual dependencies you can remove based on your application definitions. Check messages EQQ3157I and EQQ3158I to see if some application definitions were recently changed, because they might have caused the loop.