Example of a loop detection and analysis

As an example, consider the network shown in Example of a network:
Figure 1. Example of a network

The figure shows an example of a network with 3 FOPs, 1 LOP, 9 operations and 20 dependencies

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.

After the loop detection process is completed, the following messages are issued in the EQQMLOG 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
During the loop analysis process, the following messages are 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

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.