![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
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.
|