[an error occurred while processing this directive]

HP OpenVMS Systems

ask the wizard
Content starts here

Finding nodename from PID?

» close window

The Question is:

 
In a cluster is there a way to figure out the node name of any process
running on either machine? Are the first say 3 char. of the pid unique for
each node? If yes, will these 3 char. ever change?
 


The Answer is :

 
  If you want to identify the node on which a particular process is running,
  given its PID, then use the F$GETJPI lexical function with item "NODENAME"
  (requires GROUP or WORLD privilege for processes belonging to other users).
  For example:
 
    $ node = F$GETJPI(pid,"NODENAME")
 
  For full details on the current structure of the EPID, please see the
  Internals and Data Structures Manual.  Please also see the documentation
  for the F$GETJPI lexical and for the associated (underlying) sys$getjpi
  system service for further details and capabilities.
 
  Using sys$getjpi, sys$process_scan, and similar system service calls,
  wildcard access to all processes running on the system, and to processes
  running in the local cluster, is available.
 
  The internal format of the PID is not documented and is subject to change
  without notice.  The PID should always be treated as an opaque longword
  value, and no attempt to parse or process the contents should be made.
 
  The PID (or more correctly, the extended process identifier or EPID)
  presently contains a number of fields.  The low 5 to 13 bits of the
  longword are an index into the process table (the width of the field
  depends on the SYSGEN parameter MAXPROCESSCNT).  The remaining bits
  up to bit 20 are a sequence number, and are incremented each time a
  process slot is reused.  Bits 21 to 28 are an index into the cluster
  node table and bits 29 and 30 are a sequence number for the node index.
  Bit 31 is always 0.  Again, the internal format of the PID is subject to
  change without notice.
 

answer written or last revised on ( 22-JAN-1999 )

» close window