Here are the two ways to avoid endless loops in ACL programs:
1. Restrict the total number of statements
you restrict the number of statements executed in the ACL to the number specified after "MAXI". When you specify
there is no limit.
2. Set a Runaway Limit
Beside the MAXI-Option there is another way to avoid ACLs in uncontrolled loops can be influenced by parameter "ACL Runaway Limit" in the first panel of the SMRT.
The default of this parameter is 10000 and can be changed to a value between 200 and 20000. What does this number mean?
With this number you specify the maximum value a "counter for the runaway statement limit" can reach. For each ACL statement that does not need external intervention this counter is increased by one. Those statements are for example ADD, SUB, KEY, SEARCH, BRANCH, TABF, TABB, HOME, UDEFINE, VDEFINE. They all do not need intervention by the user or wait on data streams from the application. When such a statement has finished the next one is executed. But when a statement which hands over control to the user, the terminal or the application then the counter is set back to zero. Examples of those statements are ENTER, PF, PA, INPUT, PAUSE, SEND, WINP. This picture shows the values of the counter for a typical ACL. The counter is increases as long as ACL statements are executed which need no intervention. The first statement which need intervention, here it is WINP which waits for input from the application, reset the counter to zero.
If the Runaway Limit is reached, the ACL ends with this message