HP OpenVMS Systems

ask the wizard
Content starts here

LOGOUT or Process Rundown Script?

» close window

The Question is:

 
It there a way of invoking a routine like the sylogin routine to run when a
 batch program exits?  We are trying to monitor the performance of batch jobs.
 Throught the sylogin routine I can capture the environment data of when the
 jobs starts, but current
ly without modifying all of my programs I do not have an easy way of capturing
 the environment data of when the job finishes.  Any thoughts?
 


The Answer is :

 
  There is no central logout script mechanism available within OpenVMS.
 
  Without details of the particular environment data sought, a specific
  answer is difficult -- if you are looking for basic process statistics,
  these can be configured and then acquired from the system accounting and
  security auditing databases.
 
  If your batch procedures consistently use a command such as LOGOUT
  to exit, you could (obviously) set up a symbol that invokes a DCL
  command procedure or similar.
 
  The LOGINOUT (LGI) callout routines can be used to trap phases of batch
  jobs within the context of LOGINOUT during each job step activation or
  final log out (LGI$ICR_JOBSTEP and LGI$ICR_LOGOUT, respectively).  This
  approach assumes, of course, that the LOGINOUT image is invoked.
 
  An example of how to write LGI callout code can be found in the OpenVMS
  Utilities Routines Manual.
 
  If you are not using the LOGOUT command, it is still possible to enforce
  a logout script on BATCH jobs by explicitly executing the batch
  procedure(s) from within the site-specific SYLOGIN procedure.  Some
  sample DCL is attached below.
 
  Kernel-mode process rundown handlers do exist, but these handlers are
  neither particularly easy nor particularly suited for this requirement,
  and these process rundown handlers are not documented for use.
 
  Existing discussions of the f$getqui lexical include the following
  topics: (813), (1240), (2159), (3951), (4546), (4568), (4903), (5188)
  (5471), (5567), (5651), (5793), (5982), (6315), (6877), etc.
 
 
 
$! EXECUTE_BATCH_JOB.COM
$!
$ SET NOVERIFY
$!
$! Execute from SYLOGIN.COM to allow control of logout from a batch job
$!
$! $ IF F$MODE().EQS."BATCH" THEN $ @dev:[dir]EXECUTE_BATCH_JOB
$!
$       entry = F$GETQUI("DISPLAY_JOB","ENTRY_NUMBER",,"THIS_JOB")
$       p1 = F$GETQUI("DISPLAY_ENTRY","PARAMETER_1",entry,"")
$       p2 = F$GETQUI("DISPLAY_ENTRY","PARAMETER_2",entry,"")
$       p3 = F$GETQUI("DISPLAY_ENTRY","PARAMETER_3",entry,"")
$       p4 = F$GETQUI("DISPLAY_ENTRY","PARAMETER_4",entry,"")
$       p5 = F$GETQUI("DISPLAY_ENTRY","PARAMETER_5",entry,"")
$       p6 = F$GETQUI("DISPLAY_ENTRY","PARAMETER_6",entry,"")
$       p7 = F$GETQUI("DISPLAY_ENTRY","PARAMETER_7",entry,"")
$       p8 = F$GETQUI("DISPLAY_ENTRY","PARAMETER_8",entry,"WILDCARD")
$ next_file:
$   proc = F$GETQUI("DISPLAY_FILE","FILE_SPECIFICATION",,)
$   IF proc .EQS. "" THEN GOTO no_more_files
$   SET VERIFY
$   @'proc' "''p1'" "''p2'" "''p3'" "''p4'" "''p5'" "''p6'" "''p7'" "''p8'"
$   SET NOVERIFY
$ GOTO next_file
$!
$ no_more_files:
$!
$! Place LOGOUT script here
$!
$ STOP/ID=0	! Need to STOP the process to prevent the system from
$		! executing the batch job via the normal mechanism
$		! Note the normal logout message will not be written
$		! SHOW PROCESS/ACCOUNT is a possible replacement
 
 
 

answer written or last revised on ( 15-AUG-2001 )

» close window