*DECK NVFSTIM 
USETEXT TEXTNVF 
USETEXT TXTAPSS 
  
PROC NVFSTIM; 
# TITLE NVFSTIM - STARTUP TIMEOUT # 
  
    BEGIN  # NVFSTIM #
  
# 
**  NVFSTIM - STARTUP TIMEOUT 
* 
*   M. GIBIAN    84/05/02 
* 
*   THIS PROCEDURE PROCESSES A TIMEOUT OF A REQUEST STARTABLE 
*   APPLICATION THAT WAS STARTED BY NVF BUT HAS NOT NETTED ON WITHIN
*   THE REQUIRED TIME INTERVAL. 
* 
*   PROC NVFSTIM
* 
*   ENTRY:  
*      TIMEOUT ASQ ENTRY IN *MSGBUF*
* 
*   EXIT: 
*      AST ENTRY FOR COPY OF REQUEST STARTABLE APPLICATION IS CLEARED 
* 
*   METHOD: 
*      SEARCH *AST* TABLE FOR A MATCH ON TIMER CANCEL NUMBER AND ABN
*      IN TIMEOUT MESSAGE.  IF PRESENT, CLEAR ENTRY.
* 
# 
  
    XREF
       BEGIN
       PROC SSTRTS;       # RELEASE TABLE SPACE  #
       END
  
    ITEM MATCH      B;    # FLAG MATCH FOUND DURING SEARCH   #
    ITEM NENTRY     I;    # NUMBER OF ENTRIES IN TABLE       #
    ITEM PORD       I;    # PRIMARY AST ENTRY INDEX          #
    ITEM SORD       I;    # SECONDARY AST ENTRY INDEX        #
  
# 
    SEARCH AST FOR TIMER CANCEL NUMBER
# 
    MATCH = FALSE;
    NENTRY = ASTLNGTH / ASTSIZ$;     # CALCULATE NUMBER OF ENTRIES #
    FOR SORD = 0 STEP 1 WHILE (NOT MATCH AND SORD LS NENTRY) DO 
       BEGIN
       IF (AST$TCAN[SORD] EQ ABHABN[0]) THEN
          BEGIN 
          MATCH = TRUE; 
  
#   LOCATE PRIMARY AST ENTRY FOR THIS APPLICATION     # 
  
          FOR PORD = 0 STEP 1 WHILE (PORD LS (ASTLNGTH/ASTSIZ$) AND 
             (AST$PANAM[PORD] NQ AST$SANAM[SORD])) DO 
             BEGIN
             END
  
          AST$SNPF[PORD] = FALSE; 
  
          IF AST$PANAM[SORD] NQ AST$SANAM[SORD] THEN
             BEGIN
  
#   RELEASE SECONDARY AST ENTRY FOR TIMED OUT APPLICATION # 
  
             SORD = SORD * ASTSIZ$; 
             SSTRTS(P<AST>,SORD,ASTSIZ$); 
             END
  
          END 
       END
    END  # NVFSTIM  # 
TERM
