*DECK DB$JLCL 
USETEXT JLPCMTX 
USETEXT CDCSCTX 
       PROC DB$JLCL(ARID,ARNAME,RDCNT,WRCNT,DLCNT,JBID,USID,VERSION); 
  BEGIN 
 #
* *   DB$JLCL                                    PAGE  1
* *   FORMAT "CLOSE" JOURNAL LOG RECORD 
* *   W P CEAGLIO                                DATE  1/12/76
* *   A W LO (REVISION)                          DATE 10/ 1/76
* * 
* DC  PURPOSE 
* 
*     FORMAT THE PERTINENT PORTION OF THE JOURNAL LOG RECORD
* 
* DC  ENTRY CONDITIONS
* 
*     PARAMETERS
* 
*           ARID             AREA ID
*           ARNAME           AREANAME 
*           RDCNT            NO. OF READ OPERATIONS 
*           WRCNT            NO. OF WRITE OPERATIONS
*           RWCNT            NO. OF REWRITE OPERATIONS
*           DLCNT            NO. OF DELETE OPERATIONS 
*           JBID             JOB ID (7-CHARACTERS)
*           USID             USER ID (10-CHARACTERS)
*           VERSION          REQUESTED DATABASE VERSION NAME
* 
*     SUMMARY OF SOURCE OF PARAMETERS 
* 
*           REQUEST TYPE     JOURNAL LOG PROCESSOR COMMON 
*           DIRECTIVE CODE   JOURNAL LOG PROCESSOR COMMON 
*           RECORD SIZE      JOURNAL LOG PROCESSOR COMMON 
*           AREA IDENTIFIER  PARAMETER PASSED FROM CALLING SEQUENCE 
*           AREA NAME        PARAMETER PASSED FROM CALLING SEQUENCE 
*           NUMBER READS     PARAMETER PASSED FROM CALLING SEQUENCE 
*           NUMBER WRITES    PARAMETER PASSED FROM CALLING SEQUENCE 
*           NUMBER REWRITES  PARAMETER PASSED FROM CALLING SEQUENCE 
*           NUMBER DELETES   PARAMETER PASSED FROM CALLING SEQUENCE 
*           JOB IDENTIFIER   PARAMETER PASSED FROM CALLING SEQUENCE 
*           USER IDENTIFIER  PARAMETER PASSED FROM CALLING SEQUENCE 
            VERSION          PARAMETER PASSED FROM CALLING SEQUENCE 
* 
* DC  EXIT CONDITIONS 
* 
*     NORMAL--A "CLOSE" RECORD HAS BEEN LOGGED
* 
*     ABNORMAL--A CRM ERROR OCCURRED IN WRITING TO THE LOG FILE 
* 
* DC  CALLING ROUTINES
* 
*     DB$RUPD    RECOVERY RESTORE UPDATE ROUTINE
* 
* DC  CALLED ROUTINES 
* 
*     DB$JLOG    JOURNAL LOG I/O INTERFACE
*     DB$CDIS    CONVERT BINARY TO DISPLAY
* 
* DC  NON-LOCAL VARIABLES 
* 
*     CDCS COMMON (CDCSCOMMN) 
*     JOURNAL LOG PROCESSOR COMMON (JLPCMDCLS)
* 
* DC  DESCRIPTION 
* 
*     1. COMPLETE THE REQUEST TYPE AND DIRECTIVE CODE ENTRIES IN THE
*        HEADER. SET THE NUMBER OF CHARACTERS OF PADDING TO ZERO. 
*     2. STORE AREA NAME IN LOG RECORD TRAILER. 
*     3. STORE THE NUMBER OF READ, WRITE, REWRITE, AND DELETE 
*        OPERATIONS IN THEIR CORRESPONDING SLOTS IN THE LOG RECORD
*        TRAILER. 
*     4. SET UP THE SIZE OF THE "CLOSE" RECORD (140 CHARACTERS) 
*     5. CALL DB$JLOG TO COMPLETE AND OUTPUT THE RECORD.
*     6. RETURN.
 #
      CONTROL EJECT;
  
# PARAMETERS FROM THE CALLING SEQUENCE                                 #
  
      ITEM ARID ;                       # AREA IDENTIFIER              #
      ITEM ARNAME       C(30);          # AREA NAME                    #
      ITEM JBID         C(7);           # JOB IDENTIFIER               #
      ITEM USID         C(10);          # USER IDENTIFIER              #
      ITEM VERSION      C(07);          # VERSION NAME                 #
      ITEM RDCNT    ;                   # NO. OF READ OPERATIONS       #
      ITEM WRCNT            ;           # NO. OF WRITE OPERATIONS      #
      ITEM RWCNT ;                      # NO. OF REWRITE OPERATIONS    #
      ITEM DLCNT  ;                     # NO. OF DELETE OPERATIONS     #
  
# LOCAL ITEMS                                                          #
  
      ITEM I;                           # SCRATCH                      #
      ITEM J;                           # SCRATCH                      #
  
# EXTERNAL REFERENCES                                                  #
  
      XREF PROC DB$JLOG;                # OUTPUT JOURNAL LOG RECORD    #
      XREF FUNC DB$CDIS C(10);          # CONVERT BINARY TO DISPLAY    #
      CONTROL EJECT;
  
  
# START OF "DB$JLCL" EXECUTABLE CODE                                   #
  
      IF NOT SASCJAFG [SALX]  THEN      # RETURN IF NO JOURNAL LOGGING #
        BEGIN 
        RETURN; 
        END 
  
# FORMAT PERTINENT ENTRIES IN THE LOG RECORD HEADER                    #
  
      JLHDTYPE [0] = DFJLRQCL;          # REQUEST TYPE = "CLOSE"       #
      JLHDDIRC [0] = DFJLDCZ;           # DIRECTIVE CODE = OTHER       #
      JLHDPAD  [0] = DFJLPAD0;          # PADDING = "0"                #
  
# FORMAT LOG RECORD TRAILER                                            #
  
  
      JLOPARNM [0] = ARNAME;            # STORE AREA NAME IN LOG RECORD#
      JLCLNRDS [0] = DB$CDIS(RDCNT,10,10,"0");
                                        # STORE NUMBER OF READS        #
      JLCLNWRS [0] = DB$CDIS(WRCNT,10,10,"0");
                                        # STORE NUMBER OF WRITES       #
      JLCLNRWS [0] = DB$CDIS(RWCNT,10,10,"0");
                                        # STORE NUMBER OF REWRITES     #
      JLCLNDLS [0] = DB$CDIS(DLCNT,10,10,"0");
                                        # STORE NUMBER OF DELETES      #
  
# COMPLETE AND OUTPUT LOG RECORD                                       #
      PARLEN = DFJLSZCL;                # SET SIZE OF "CLOSE" RECORD   #
      TRLRLEN = 0;
      DB$JLOG(ARID,JBID,USID,VERSION);
  
  END 
      TERM
